Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1239

 
BarCloseB1 = iClose(nameSym,xPeriod,xshiftBar);
BarCloseB1Signal = iClose(nameSymSignal,xPeriod,xshiftBar)

Доброго времени суток!

узнаю при открытии нового часового бара значение закрытия по текущему инструменту и по другому (сигнальному для текущего). в тестере все нормально

а в реале значение по текущему интсрументу  соответствует, а по сигнальному инструменту берет значение предыдущего бара, то есть если    xshiftBar = 1, то по сигнальному берет  xshiftBar   =2, то есть на один больше  

 
Vitaly Muzichenko:

Снять можно только то, что заработано на данном ресурсе, а это продажа программ, сигналов и мощностей компьютера. Что введено, можно только потратить на данном ресурсе.

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

 
Yerkin Sagandykov:

Доброго времени суток!

узнаю при открытии нового часового бара значение закрытия по текущему инструменту и по другому (сигнальному для текущего). в тестере все нормально

а в реале значение по текущему интсрументу  соответствует, а по сигнальному инструменту берет значение предыдущего бара, то есть если    xshiftBar = 1, то по сигнальному берет  xshiftBar   =2, то есть на один больше  

Для проверки поставьте вместо переменных значения 1 и 2. Тогда поймёте где ошибка.

 
Alekseu Fedotov:

С помощью       iCustom

Спасибо, а скажите, пожалуйста, почему нарисованные уровни улетают вниз слишком быстро?
Файлы:
snake.mq4  16 kb
 
Alexey Viktorov:

Для проверки поставьте вместо переменных значения 1 и 2. Тогда поймёте где ошибка.

проблема не в значениях переменной по моему. просто у меня в коде улсовие перерасчета по наступлении нового часа. и получается что по текущему символу новый бар появляется и высчитывается значения бара =1, а по сигнальному символу получается новый бар еще не сформировался что ли и высчитывается значения для бар =2

 if  ( iTime(nameSym, LPeriod, 0 ) == counted_bar ) return; 
Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 
Yerkin Sagandykov:

проблема не в значениях переменной по моему. просто у меня в коде улсовие перерасчета по наступлении нового часа. и получается что по текущему символу новый бар появляется и высчитывается значения бара =1, а по сигнальному символу получается новый бар еще не сформировался что ли и высчитывается значения для бар =2

Вот чтобы было точно, а не «по моему» надо поставить конкретные значения, а потом можно с уверенностью говорить, что на сигнальном символе запаздывает наступление нового бара. И каким-то образом дождаться этого нового бара. Вариантов несколько, каким воспользоваться решайте сами.

 

Приветствую. Подскажите, пожалста. 

Нужно посчитать максимальную просадку по ордерам конкретного советника. 

Если считать по всем ордерам, то считаю так, и это сходится с результатами самого МТ:

      if(AccountEquity()>max_equity){
         max_equity=AccountEquity();
      }   
      if(max_drawdown_total<max_equity-AccountEquity()){
         max_drawdown_total=max_equity-AccountEquity();
      } 

Для одного советника считаю так:

      if(MoneyCount()>max_equity_1){
         max_equity_1=MoneyCount();
      }   
      if(max_drawdown_total_1<max_equity_1-MoneyCount()){
         max_drawdown_total_1=max_equity_1-MoneyCount();
      }

double MoneyCount(){
   double count=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
            count+=(OrderProfit()+OrderSwap()+OrderCommission()); //
         }   
      }
   }
   return count;
}

Предполагаю, в тестере результаты подсчетов должны быть одинаковы, но возникает разница (не сразу) чуть больше процента. Что я не так считаю?

 
Добрый день. Подскажите пожалуйста, какой язык предпочесть mql4 или 5. И почему в мт4 встроен метаэдитор 5, или он и для mql4 тоже?
 
Здравствуйте подскажите пожалуйста, как в коде отразить значения индикаторов, когда один наложен на другой, например на ATR наложен MA, возможно ли это в MT4?
 
ZahvatkiN:
Здравствуйте подскажите пожалуйста, как в коде отразить значения индикаторов, когда один наложен на другой, например на ATR наложен MA, возможно ли это в MT4?

Для MQL4 используйте iMAOnArray(), для MQL5 - при создании хэндла iMA указывайте не цену, по которой рассчитывается скользящая средняя, а хэндл ранее созданного ATR