Изучаем и пишем вместе на MQL5 - страница 36

 

Благодарю за столь обстоятельные ответы и приношу извинения за поспешность и невнимательность при изучении документации, ответы действительно содержались в описании функции OnCalculate.

Видимо я слишком быстро решил форсировать процесс получения опыта, и пропустил изучение описаний OnInit и OnCalculate. 

Yedelkin:

Отвечают ли эти строчки на Ваш вопрос?

MetaDriver:

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

// я бы предпочёл присвоить им соответствующие входные данные, но это суть дела особо не меняет.

некорректно поставил вопрос (видно что это же самое я писал в комментарии к строке, и понимал что присвоение нулевых значений в наличии). Перефразирую 

Profi_R:

вывел в распринтовку и вижу что значение отличные от 0 в ExtLineBuffer присваиваются с индекса limit-1 по индекс rates_total-1, а на графике индикатор отрисован на всем пространстве, хм, где же тогда происходит присвоение значения (отличные от нуля) буферу индикатора на промежутке от 0 до limit-1 ???

то, что они не могут быть рассчитаны и не имеют смысла понятно изначально. Глянул, на 0 баре значение простой средней (индикатора), приравнено максимальному значению цены (не всегда), поначалу решил что дело в количестве баров отображаемых на графике и хранящихся в истории, переключил эту опцию настроек в анлимитед, результат не изменился, индикатор на первых (слева) limit барах отрисован, и его значение отличается от 0.
 
Profi_R:

Благодарю за столь обстоятельные ответы и приношу извинения за поспешность и невнимательность при изучении документации, ответы действительно содержались в описании функции OnCalculate.

Видимо я слишком быстро решил форсировать процесс получения опыта, и пропустил изучение описаний OnInit и OnCalculate. 

ок.

Перефразирую 

то, что они не могут быть рассчитаны и не имеют смысла понятно изначально. Глянул, на 0 баре значение простой средней (индикатора), приравнено максимальному значению цены (не всегда), поначалу решил что дело в количестве баров отображаемых на графике и хранящихся в истории, переключил эту опцию настроек в анлимитед, результат не изменился, индикатор на первых (слева) limit барах отрисован, и его значение отличается от 0.

Проверил.  У меня тоже отображается так.  История в настройках стоит 100000 баров, проверять на анлимитед влом, я и так верю.  :)

Ответа на вопрос "как это возможно" у меня нет, лучше всего спросить у разработчиков (например в ветке"Ошибки, баги, вопросы".  Её разработчики посещают очень регулярно).

Уверен, что чудес никаких здесь не всплывёт, скорее всего терминал не совсем всю запрошенную историю отображает и крайние левые доступные (программно) бары просто остаются за кадром. :)

 
Profi_R:
то, что они не могут быть рассчитаны и не имеют смысла понятно изначально. Глянул, на 0 баре значение простой средней (индикатора), приравнено максимальному значению цены (не всегда), поначалу решил что дело в количестве баров отображаемых на графике и хранящихся в истории, переключил эту опцию настроек в анлимитед, результат не изменился, индикатор на первых (слева) limit барах отрисован, и его значение отличается от 0.
Методом научного тыка: в строчке for(i=0;i<limit-1;i++) ExtLineBuffer[i]=0.0;  заменить ноль на единицу и посмотреть, где именно она всплывает. Сравнить с ранее полученными результатами.
 
MetaDriver:

Уверен, что чудес никаких здесь не всплывёт, скорее всего терминал не совсем всю запрошенную историю отображает и крайние левые доступные (программно) бары просто остаются за кадром. :)

да, как оказалось, просчитывалась вся глубина истории (без привязки к отображению на графике), просто недостаточно включить глубину отображаемую на графике, необходимо либо перезапустить терминал, либо по новой открыть график, и только тогда эта опция вступает в силу. Теперь этот кусок кода стал полностью понятен.
Документация по MQL5: Операции с графиками / ChartOpen
Документация по MQL5: Операции с графиками / ChartOpen
  • www.mql5.com
Операции с графиками / ChartOpen - Документация по MQL5
 

Вообще, стоит начать со статей Как написать индикатор в MQL5 и Индикатор от индикатора в MQL5.

Кроме того, в соответствующем разделе форума есть специальная ветка, которая призвана ответить на подобные вопросы - Что нужно знать об индикаторах

 
Rosh:

Вообще, стоит начать со статей Как написать индикатор в MQL5 и Индикатор от индикатора в MQL5.

Кроме того, в соответствующем разделе форума есть специальная ветка, которая призвана ответить на подобные вопросы - Что нужно знать об индикаторах

))))) рад тебя видеть в здравии, да простят мне мой флейм. Спасибо, я учту )
 
Тоже рад твоему появлению на 5-ке :)
 
Добрый вечер! Исследую структуру  результата торгового запроса (MqlTradeResult). Написал так  Принты для этой структуры соответственно между  Print(999999999999999999);
 OrderSend(request,result);

      int Error=GetLastError(); ResetLastError();
        printf("Error %i ",Error);
      
        Print(i);
        
       Print(999999999999999999); 
        uint re= result.retcode;
         Print( "Код результата операции");
        Print( re);  
      // int re=
       ulong  ru= result.   deal;
        Print( "Тикет сделки, если она совершена");
       Print( ru); 
       
         ru= result.  order;
        Print( "Тикет ордера, если он выставлен");
        Print( ru);
        
         double    rd= result. volume;
         Print( "Объем сделки, подтверждённый брокером"); 
         Print( rd); 
       
          rd= result.  price;  
        Print( "Цена в сделке, подтверждённая брокером");  
       Print( rd);
      
           rd= result. bid;     
       Print( "Текущая рыночная цена предложения (цены реквота)"); 
         Print( rd); 
      
            rd= result. ask;   
        Print( "Текущая рыночная цена спроса (цены реквота)"); 
         Print( rd); 
      
          string    rs= result. comment;  
           Print( "Комментарий брокера к операции (по умолчанию заполняется расшифровкой)"); 
         Print( re);
      
         //    re= result.  request_id;   
       //    Print( "Идентификатор запроса, устанавливается терминалом при отправке "); 
       //  Print( re);
         
          
                   
      Print(999999999999999999); 
Для многих значений принт написал ноль, это же что такое!
 
Dimka-novitsek:
Добрый вечер! Исследую структуру  результата торгового запроса (MqlTradeResult). Написал так  Принты для этой структуры соответственно между  Print(999999999999999999); Для многих значений принт написал ноль, это же что такое!

 Вот эти строчки зачем пишем? Почему полученный результат не анализируем?

uint re= result.retcode;
         Print( "Код результата операции");
         Print( re);  

По поводу нулей: какие именно нули вызывают возмущение?

 
Спасибо! Текущая цена спроса и предложения-ноль. Тикет сделки . Тикет ордера. Щас, тут папа. 
Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - Документация по MQL5