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

smc autotrader momentum.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

SMC Autotrader Momentum — торговый советник для MetaTrader 4, анализирующий соотношение текущей и 20-баровой цен закрытия для принятия решений о входе и выходе из позиций. При закрытии текущей свечи выше 20-й свечи открывается длинная позиция, при обратном условии — короткая. Советник также закрывает открытые позиции при развороте ценового соотношения.

В качестве параметров задаются объём лота, начальный стоп-лосс, тейк-профит и значение трейлинг-стопа. Перед открытием новой позиции проверяется свободный маржинальный баланс и наличие открытых ордеров по данному символу. Код трейлинг-стопа и проверки истории в текущей версии отключён условными операторами и не активен.

Советник рассчитывает значения индикаторов ATR (период 10) и скользящей средней (период 24, SMA, по цене закрытия), однако в видимой логике они не используются при принятии решений о входе. Торговые операции выполняются через стандартные функции торгового API MetaTrader 4.

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

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

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

extern double TakeProfit = 50;
extern double Lots = 8;
extern double InitialStop = 10;
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);  
     }

   MinDist = MarketInfo(Symbol(), MODE_STOPLEVEL);
   Spread = (Ask - Bid);

   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);

   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(Close[0] < Close[20])
                 {                                 

                   OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet); 
                 }
             }

           OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 

           if(OrderType() == OP_SELL && OrderSymbol() ==Symbol()) // check for symbol
             {
               if(Close[0] > Close[20])
                 {   

                   OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet); 
                 }
             }
         }  // for loop return
     }   // close 1st if 

   if(0 == 1)  // This is used to turn the trailing stop on & off
     {
       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*TrailingStop))
                 {
                   OrderModify(OrderTicket(), OrderOpenPrice(), Bid-Point*TrailingStop, 
                               OrderTakeProfit(), 0, White);
                   return(0);}
                 }
             }

           total = OrdersTotal();

           if(total > 0)
             { 
               for(cnt = 0; cnt < total; cnt++)
                 {
                   OrderSelect(cnt, SELECT_BY_POS, MODE_T

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

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

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

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

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

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

Стоимость полного кода
275,40₽ ≈ $3.37