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

[Удален]  
Vladimir Karputov:

Где полный код? Непонятно, что именно Вы делает в OnCalculate. Как пример - используйте справку DRAW_CANDLES.

И что это за свеча с отрицательными ценами?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MQ5::Вопрос по свечному индикатору.

Сергей Таболин, 2020.08.05 18:17

Эдгар, спасибо, но это мне понятно. Не понятно почему нет тиков ранее 2019 года?


Теперь вопрос основной -

Почему не рисуются свечи в индикаторе?  Где я не прав?

Источник в открытом доступе ))))

Это просто инициализация для начала отсчёта. Цены считаются правильно.
Файлы:
newCandles.mq5  21 kb
 
Сергей Таболин:
Это просто инициализация для начала отсчёта. Цены считаются правильно.

В отладке пройдитесь и проверьте, в каких случаях Ваше условие будет выполняться?


[Удален]  
Vladimir Karputov:

В отладке пройдитесь и проверьте, в каких случаях Ваше условие будет выполняться?


Я понимаю, что это, возможно, не правильно. Но!

Это работает. Условие выполняется при запуске индикатора. Один раз. Цены принтуются. Далее считаются тики. Тоже принтуются.

2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.05 21:31:16 >>> Свеча 03623 >> open = 105.638 hihg = 105.675 low = 105.473 close = 105.473 > Сформирована за 07539 тиков.
2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.06 03:14:33 >>> Свеча 03624 >> open = 105.473 hihg = 105.635 low = 105.395 close = 105.635 > Сформирована за 19034 тика.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  2020.08.06 10:54:42 >>> Свеча 03625 >> open = 105.635 hihg = 105.695 low = 105.471 close = 105.471 > Сформирована за 08861 тик.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  ~~~~ Предварительный расчёт индикатора закончен.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00872 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00873 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00874 Бар 03626

Но меня интересует почему свечи не отрисовываются?

 
Сергей Таболин:

Я понимаю, что это, возможно, не правильно. Но!

Это работает. Условие выполняется при запуске индикатора. Один раз. Цены принтуются. Далее считаются тики. Тоже принтуются.

Но меня интересует почему свечи не отрисовываются?

Сначала научитесь строить индикатор на базе DRAW_CANDLES. При этом нужно думать, что такое свеча с индексом '0'. 

То есть пока к тикам даже близко подходить нельзя.


Чтобы нарисовать свечу, нужно ВСЕ четыре буфера заполнять. Вы этого не делаете - пропускаете и newCandles_Close и ....

 
Vladimir Karputov:

В отладке пройдитесь и проверьте, в каких случаях Ваше условие будет выполняться?


rates_total - prev_calculates очень даже действенная конструкция.

  • Если равно нулю - значит расчёт на текущем баре по тику
  • Если равно 1 - значит новый бар и рассчитываться будут два бара - прошлый и текущий
  • Если больше 1 - значит либо первый запуск, либо изменение в исторических данных
Мы же limit рассчитываем. А в цикле от limit до больше, либо равно нулю рассчитываем данные индикатора. Ну и сам посчитай чему limit равен при расчёте limit = rates_total - prev_calculates.
 
Artyom Trishkin:

rates_total - prev_calculates очень даже действенная конструкция.

  • Если равно нулю - значит расчёт на текущем баре по тику
  • Если равно 1 - значит новый бар и рассчитываться будут два бара - прошлый и текущий
  • Если больше 1 - значит либо первый запуск, либо изменение в исторических данных
Мы же limit рассчитываем. А в цикле от limit до больше, либо равно нулю рассчитываем данные индикатора. Ну и сам посчитай чему limit равен при расчёте limit = rates_total - prev_calculates.

Код посмотри. 

Потом комментируй.

 
Vladimir Karputov:

Код посмотри. 

Потом комментируй.

К чему грубости? Я тебе не грубил же.

Я ответил в каких случаях процитированная тобой строчка и её условие будет выполняться:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Vladimir Karputov, 2020.08.06 13:03

В отладке пройдитесь и проверьте, в каких случаях Ваше условие будет выполняться?


И даже дополнил ответ тремя её возможными состояниями, и что делается в таком случае:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Artyom Trishkin, 2020.08.06 15:17

rates_total - prev_calculates очень даже действенная конструкция.

  • Если равно нулю - значит расчёт на текущем баре по тику
  • Если равно 1 - значит новый бар и рассчитываться будут два бара - прошлый и текущий
  • Если больше 1 - значит либо первый запуск, либо изменение в исторических данных
Мы же limit рассчитываем. А в цикле от limit до больше, либо равно нулю рассчитываем данные индикатора. Ну и сам посчитай чему limit равен при расчёте limit = rates_total - prev_calculates.

Причём самому для обработки ничего делать не нужно - именно такой расчёт будет запускать цикл от нужного в каждый из трёх состояний значения.

 
Artyom Trishkin:

К чему грубости? Я тебе не грубил же.

Я ответил в каких случаях процитированная тобой строчка и её условие будет выполняться:

И даже дополнил ответ тремя её возможными состояниями, и что делается в таком случае:

Причём самому для обработки ничего делать не нужно - именно такой расчёт будет запускать цикл от нужного в каждый из трёх состояний значения.

Возьми код и пройдись в отладке. Дальше подсказуй сам - только теперь доведи дело до конца и растолкуй как минимум три ошибки.

 
Vladimir Karputov:

Возьми код и пройдись в отладке. Дальше подсказуй сам - только теперь доведи дело до конца и растолкуй как минимум три ошибки.

Нет. Мне некогда. Я ответил только на ту строчку, которую ты цитировал - в ней нет ошибки. А дальше (я глянул код краем глаза) пусть сам попробует разобраться (ошибки есть, и они наповерхности).

Примеров с такими конструкциями здесь на форуме и его сервисах предостаточно.

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

Victor Nikolaev
Victor Nikolaev
  • www.mql5.com
Профиль трейдера
 
Artyom Trishkin:

Нет. Мне некогда. Я ответил только на ту строчку, которую ты цитировал - в ней нет ошибки. А дальше (я глянул код краем глаза) пусть сам попробует разобраться (ошибки есть, и они наповерхности).

Примеров с такими конструкциями здесь на форуме и его сервисах предостаточно.

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

Ты лучше не с мобилки читай форум, а с компьютера. И читай ВСЕ сообщений, а не избранное. Не хочешь помогать - лучше вообще не встревай в разговор.