0
на подобных индикаторах только у меня 8 советников. смотрите в базе. если не найдете то что нужно, дайте ссылку на самый близкий вариант и я его подправлю.

также укажите входы выходы на скринах.
avatar

AM2

  • 26 сентября 2020, 09:21
+1
работает и на ене, только сигнал редкий:



и ваш вариант работает тот что я немного подправил:


//+------------------------------------------------------------------+
//|                                                        4MA11.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property strict

input double lots = 0.1;
extern double TP = 50;
extern double SL = 60;
input int hour1 = 8;
input int hour2 = 23;
input int PeriodMA1 = 10;
input int PeriodMA2 = 20;
input int PeriodMA3 = 30;
input int PeriodMA4 = 40;
input int Slip = 100;
input int MAGICMA = 123;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   if(Digits==3 || Digits==5)
     {
      TP = 10 * TP;
      SL = 10 * SL;
     }
   return (0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckForSell(double dStopLoss, double dTakeProfit)
  {
   if(Volume[0]>25)
      return;
   int res=OrderSend(Symbol(),OP_SELL,lots,Bid,Slip,dStopLoss,dTakeProfit,"",MAGICMA,0,Red);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckForBuy(double dStopLoss, double dTakeProfit)
  {
   if(Volume[0]>25)
      return;
   int res=OrderSend(Symbol(),OP_BUY,lots,Ask,Slip,dStopLoss,dTakeProfit,"",MAGICMA,0,Blue);
   return;
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ma1 = iMA(NULL,PERIOD_CURRENT,PeriodMA1,0,MODE_LWMA,PRICE_OPEN, 0);
   double ma2 = iMA(NULL,PERIOD_CURRENT,PeriodMA2,0,MODE_LWMA,PRICE_CLOSE,0);
   double ma3 = iMA(NULL,PERIOD_CURRENT,PeriodMA3,0,MODE_SMA, PRICE_CLOSE,0);
   double ma4 = iMA(NULL,PERIOD_CURRENT,PeriodMA4,0,MODE_SMA, PRICE_CLOSE,0);

   double ma1ma2 = ma1-ma2;
   double ma2ma1 = ma2-ma1;
   double ma3ma4 = ma3-ma4;
   double ma4ma3 = ma4-ma3;

   int CountSymbolPositions=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
         continue;
      if(OrderSymbol()==Symbol())
        {
         if((OrderType()==OP_SELL||OrderType()==OP_BUY) && OrderMagicNumber()==MAGICMA)
            CountSymbolPositions++;
        }
     }

   if((ma3ma4<0.0048) &&
      (ma3>ma1) &&
      (ma3>ma2) &&
      (Close[1]<Close[2]) &&
      (Close[2]<Open[2]) &&
      (CountSymbolPositions<1) &&
      (Hour()>hour1) &&
      (Hour()<hour2) &&
      (ma1ma2<0.0013) &&
      (ma1ma2>0.0004))
     {
      double dTakeProfit = Bid - (TP*_Point);
      double dStopLoss   = Ask + (SL*_Point);
      CheckForSell(dStopLoss, dTakeProfit);
     }

   if((ma4ma3<0.0048) &&
      (ma3<ma1) &&
      (ma3<ma2) &&
      (Close[1]>Close[2]) &&
      (Close[2]>Open[2]) &&
      (CountSymbolPositions<1) &&
      (Hour()>hour1) &&
      (Hour()<hour2)  &&
      (ma2ma1<0.0013) &&
      (ma2ma1>0.0004))
     {
      double dTakeProfit = Ask + (TP*_Point);
      double dStopLoss   = Bid - (SL*_Point);
      CheckForBuy(dStopLoss, dTakeProfit);
     }

  }
//+------------------------------------------------------------------+

avatar

AM2

  • 26 сентября 2020, 09:03
0
есть некоторое несоответствие данных. загрузил данные по символу заново, ошибки не стало:

avatar

AM2

  • 25 сентября 2020, 20:30
0
посмотрю чуть позже
avatar

AM2

  • 25 сентября 2020, 17:45
0
на 29-е
avatar

AM2

  • 25 сентября 2020, 17:45
0
скиньте весь код я посмотрю
avatar

AM2

  • 24 сентября 2020, 18:47
0
в чем суть индикатора? опишите его работу чтобы мне не заниматься расшифровкой чужого кода
avatar

AM2

  • 23 сентября 2020, 20:10
0
на 24-е
avatar

AM2

  • 23 сентября 2020, 19:55
0
Я прошу одно, но в очередной раз получаю совершенно противоположное


при величине TrailingStart в 300 п, срабатывает сейф, бу и трал.
дальше не ко мне.
avatar

AM2

  • 23 сентября 2020, 19:53
0
объединил все в одну функцию с 3-мя параметрами:


extern int TrailingStop  = 250;      // трал
extern int TrailingStep  = 20;       // шаг трала
extern int TrailingStart = 300;      // старт трала


при TrailingStart в 300, бу будет 300-(250+20)=30, срабатывает сейф и тралится с шагом 20 на расстоянии 250.

www.opentraders.ru/downloads/2773/
avatar

AM2

  • 22 сентября 2020, 20:11
0
сегодня еще смотреть буду
avatar

AM2

  • 22 сентября 2020, 18:20
0
поправил сигнал, буферы, добавил настройки: www.opentraders.ru/downloads/2788/

avatar

AM2

  • 20 сентября 2020, 12:44