Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1214

 

Подскажите в чем причина открытия позиции сразу после запуска советника?

Условия на открытие позиции не выполняется, а позиция открывается

 if(
      (MovingAverage1[0]<MovingAverage2[0]) &&
      (MovingAverage1[1]>MovingAverage2[1])
   )
     {
      if(PositionsTotal()==0)
         trade.Sell(0.1);
     }

   if(
      (MovingAverage1[0]>MovingAverage2[0]) &&
      (MovingAverage1[1]<MovingAverage2[1])
   )
     {
      if(PositionsTotal()==1)
         trade.PositionClose(_Symbol);
        }

 
Pineapple88:

Подскажите в чем причина открытия позиции сразу после запуска советника?

Условия на открытие позиции не выполняется, а позиция открывается

Где и как получены значения средних? Получены-ли они вообще? Если эти значения получены нормально, то обратили-ли вы внимание на индексацию в массивах средних?

 
Alexey Viktorov:

Где и как получены значения средних? Получены-ли они вообще? Если эти значения получены нормально, то обратили-ли вы внимание на индексацию в массивах средних?

Вот код

 {

   double MovingAverage1[], MovingAverage2[]; //задаем два массиса для МА

   int MovingAverageIndic1 = iMA(_Symbol,0,20,0,MODE_EMA,PRICE_CLOSE);
   int MovingAverageIndic2 = iMA(_Symbol,0,200,0,MODE_EMA,PRICE_CLOSE);

   ArraySetAsSeries(MovingAverage1,true);
   ArraySetAsSeries(MovingAverage2,true);

   CopyBuffer(MovingAverageIndic1,0,0,3,MovingAverage1);
   CopyBuffer(MovingAverageIndic2,0,0,3,MovingAverage2);

   if(
      (MovingAverage1[0]<MovingAverage2[0]) &&
      (MovingAverage1[1]>MovingAverage2[1])
   )
     {
      if(PositionsTotal()==0)
         trade.Sell(0.1);
     }

   if(
      (MovingAverage1[0]>MovingAverage2[0]) &&
      (MovingAverage1[1]<MovingAverage2[1])
   )
     {
      if(PositionsTotal()==1)
         trade.PositionClose(_Symbol);
     }

  }
 
Pineapple88:

Вот код

Хендл индикатора НУЖНО СОЗДАТЬ ОДИН РАЗ. Делается это в OnInit. Пример создания: iMA

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
//|                                                     Demo_iMA.mq5 | //|                        Copyright 2011, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Перечисление способов создания хэндла                            |  Creation             type=Call_iMA;                ...
 
Pineapple88:

Подскажите в чем причина открытия позиции сразу после запуска советника?

Условия на открытие позиции не выполняется, а позиция открывается

В таких случаев лучше всего использовать Print. Это уже точно покажет условия выполняется или не выполняется.

...
if(PositionsTotal()==0)
 {
  Print(" MovingAverage1[0]: ",MovingAverage1[0]," MovingAverage2[0]: ",MovingAverage2[0]);
  trade.Sell(0.1);
 }
...
 
Vladimir Karputov:

Когда нужно проверять 'MinDist(30 пипсов)' и 'OpenDev(10 пипсов)' - на каждом тике и всё же только в момент рождения нового бара?

Надо проверять в каждом Тике!  

но для тестирования возможно ли сделать два варианта, и переключатель для тестера в параметрах? может есть готовый пример в CODEBASE

 
Milhail Novgorodcev:

Надо проверять в каждом Тике!  

но для тестирования возможно ли сделать два варианта, и переключатель для тестера в параметрах? может есть готовый пример в CODEBASE

Если проверять на каждом тике, тогда нужно уточнять КАК и ГДЕ проверять параметр 'MinDist(30 пипсов)'. 

Например проверять хотите на текущем баре? Или всё-же на каком-то количестве баров или просто искать последний момент когда было 'MinDist(30 пипсов)' ?

 

Здравствуйте товарищи!

В визуальном тестере стратегий при прогоне советника индикатор MACD, используемый в советнике, то отображается то нет, причем для советника из стандартных примеров тоже самое. Это неизличимый баг тестера, или что?

 
Кто подскажет.Прислали папку с советником по почте на mql5.А установить в терминал не получается.Как это зделать?Где найти информацию чтобы это зделать?
 
kokines:
Кто подскажет.Прислали папку с советником по почте на mql5.А установить в терминал не получается.Как это сделать?Где найти информацию чтобы это сделать?

Может вам папку с исходниками выслали тогда через MetaEditor компилировать нужно.