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

SMC Autotrader Momentum

smc ma 3bar.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник для MetaTrader 4, работающий на таймфрейме текущего графика. Использует скользящие средние (SMMA по медианной цене) и индикатор средне-истинного диапазона для анализа ценовых данных. Советник определяет сигналы на вход в длинную или короткую позицию на основе анализа трёхбарных ценовых паттернов и взаимного расположения цены с Moving Average. Реализует механизмы фиксации прибыли и трейлинг-стопа через модификацию существующих ордеров, а также проверку свободного маржи перед открытием новой позиции.

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

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

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

extern double TakeProfit = 50;
 extern double LockProfit = 3;
 extern double Lots = 0.1;
 extern double InitialStop = 30;
 extern double TrailingStop = 10;

 datetime BarTime;
 double BUYat;
 double SELLat;

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

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

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

 if(BarTime == Time[0]) {return(0);}

 BarTime = Time[0];

 MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
 Spread=(Ask-Bid);
 double ATR = iATR(NULL,0,10,1);

double MAP1 = iMA(NULL,0,8,5,MODE_SMMA,PRICE_MEDIAN,1);
double MAP2 = iMA(NULL,0,8,5,MODE_SMMA,PRICE_MEDIAN,2);

bool BUY = false;
bool SELL = false;
if (Close[0] > High[1] &&
    Low[1] < MAP1 && High[1] > MAP1 &&
    Close[2] > Open[2] &&
    Close[3] > Open[3]
    ) BUY = true;

if (Close[0] < Low[1] &&
    High[1] > MAP1 && Low[1] < MAP1 &&
    Close[2] < Open[2] &&
    Close[3] < Open[3]
    ) SELL = true;

if(0==0)  //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()
     &&
     OrderStopLoss() == 0
     &&
     Bid > OrderOpenPrice()+ ((MinDist+2+ATR)*Point)
     )
     {OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(MinDist+ATR*Point),OrderTakeProfit(),0,White);
           return(0);}
 }}
  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
    {
     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if(OrderType()==OP_SELL && OrderSymbol()==Symbol()
     &&
     OrderStopLoss() == 0
     &&
     Ask < OrderOpenPrice()- ((MinDist+2+ATR)*Point)
     )
     {OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(MinDist+ATR*Point),OrderTakeProfit(),0,Yellow);
          return(0);}
 }}
} // end switch bracket

  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(0==1)
      {                                 
       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(0==1)
      {   
       OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 

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

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

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

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

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

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

Стоимость полного кода
376,60₽ ≈ $4.60