← К каталогу
Исходный код · ID 566

SMC Autotrader Momentum

smc trader kurt.mq4

Похожие материалы по тегам

2 to 1 strategy with signals.pineTradingView · 3 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 3 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 3 общих теговtrading criteria.mq4MQL4 / MetaTrader 4 · 3 общих теговthe predator.mq4MQL4 / MetaTrader 4 · 3 общих теговrisk reward ratio.mq4MQL4 / MetaTrader 4 · 3 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Советник SMC Autotrader Momentum предназначен для платформы MetaTrader 4 и автоматизирует торговлю на основе комбинации технических индикаторов. Открытие позиций LONG и SHORT определяется сравнением экспоненциальных скользящих средних (EMA с периодами 5 и 8), значений RSI и MACD. Перед открытием нового ордера проверяется наличие свободной маржи и отсутствие открытых позиций по данному символу.

В работе советника также рассчитываются средний истинный диапазон ATR и простая скользящая средняя SMA. При недостаточном количестве баров (менее 100) выполнение приостанавливается. Параметры TakeProfit, InitialStop и Lots задаются пользователем и применяются при отправке ордеров через стандартный API MetaTrader 4. Блоки трейлинг-стопа и проверки истории в текущем коде отключены условной конструкцией и не активны.

Настройки программы

НастройкаОписание
TakeProfit Тейк-профит — Уровень фиксации прибыли для новых ордеров, задаётся в пунктах и используется при отправке сделки.
Lots Объём лота — Объём лота для открытия позиции, задаётся числовым значением.
InitialStop Начальный стоп-лосс — Начальный стоп-лосс для новых ордеров, задаётся в пунктах и используется при отправке сделки.
TrailingStop Трейлинг-стоп — Параметр трейлинг-стопа в пунктах; в текущей версии кода логика трейлинг-стопа отключена условной конструкцией и не выполняется.
Получить полный код

Поиск по коду файла

extern double TakeProfit = 50;
 extern double Lots = 0.1;
 extern double InitialStop = 30;
 extern double TrailingStop = 20;

int init()
{
      // код доступен только после оплаты
   }

int start()
  {
      // код доступен только после оплаты
   }
   int cnt,total,ticket,MinDist,tmp;
   double Spread;
   double ATR;
   double StopMA;
   double SetupHigh, SetupLow;

  if(Bars<100){
     Print("bars less than 100");
     return(0);  
  }

 ATR =iATR(NULL,0,10,0); // BE CAREFUL OF EFFECTING THE AUTO TRAIL STOPS
 StopMA=iMA(NULL,0,24,0,MODE_SMA,PRICE_CLOSE,0);
 MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
 Spread=(Ask-Bid);

 double MA1P1,MA1P2,MA2P1,MA2P2;
 MA1P1= iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);
 MA1P2= iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,2);
 MA2P1= iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,1);
 MA2P2= iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,2);

 int MACDMA1,MACDMA2,MACDMA3;
 MACDMA1=12;
 MACDMA2=26;
 MACDMA3=9;
 double MACDP1,MACDP2,MACDSP1,MACDSP2;
 MACDP1  = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_MAIN,1);
 MACDP2  = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_MAIN,2);
 MACDSP1 = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_SIGNAL,1);
 MACDSP2 = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_SIGNAL,2);

 double RSIvalP1,RSIvalP2;
 RSIvalP1 = iRSI(NULL,0,12,PRICE_CLOSE,1);
 RSIvalP2 = iRSI(NULL,0,12,PRICE_CLOSE,2);

  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
   {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
     {
     if(Ask < Bid)
      {                                 
       OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close LONG position
     }}

    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // check for symbol
     {
     if(Ask < Bid)
      {   
       OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close SHORT position
     }}
    }  // for loop return
    }   // close 1st if 

if(0==1)
 {
  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
    {
     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if(OrderType()==OP_BUY && OrderSymbol()==Symbol()
     &&
     Bid-OrderOpenPrice()> (Point*TrailingStop)
     &&
     OrderStopLoss()<Bid-(Point*Trailin

Показано первые 50% кода (символов: 3575)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
357,50₽ ≈ $4.37