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

 
Alexey Viktorov:

Затык в организации кода. Я попытался посмотреть, но написано так, что мозг не воспринимает такое. А как объяснить в чём ошибки не знаю.

Могу только посоветовать начать с начала и по порядку.

  1. начать с того, что выделить каждую N-ную свечу.
  2. затем поставить условие для выбора какую свечу выделять.
И в конце-то концов научиться пользоваться отладчиком.

Чтобы тут не расписывать, я дал полные комментарии в своей ветке. Посмотрите, если не затруднит...

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

Чтобы тут не расписывать, я дал полные комментарии в своей ветке. Посмотрите, если не затруднит...

Сергей, у меня нет желания вникать в код. Ведь это как в той поговорке «Увязнет коготок всей птичке пропасть». Только начало

   if(rates_total - prev_calculated > 1)
   {
      if(prev_calculated == 0)
      {

Когда prev_calculated == 0 разве может быть rates_total - prev_calculated < 1???

 
Alexey Viktorov:

Сергей, у меня нет желания вникать в код. Ведь это как в той поговорке «Увязнет коготок всей птичке пропасть». Только начало

Когда prev_calculated == 0 разве может быть rates_total - prev_calculated < 1???

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

 
Artyom Trishkin:

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

Артём повнимательней. Если нет посчитанных баров!!! Тогда получается на графике нет вообще баров!!! А чего тогда считать??? Это, наверное, могло быть в МТ3 и такие перестраховки тянутся оттуда.

 
Alexey Viktorov:

Сергей, у меня нет желания вникать в код. Ведь это как в той поговорке «Увязнет коготок всей птичке пропасть». Только начало

Когда prev_calculated == 0 разве может быть rates_total - prev_calculated < 1???

Ну на нет и суда нет )))

Но вообще то Вы меня удивили... Я не знаток индикаторов, но из документации я точно знаю, что при запуске prev_calculated = 0 а далее сколько посчитано. Всего данных 100, посчитанных 100 100-100=0...

Но даже и не в этом дело! У меня условие не < а > ! Разница очевидная! И я именно так определяю момент запуска индикатора. Может это и не правильно по всем канонам, но это работает! Вопрос стоит - почему при заполнении (корректном!) индикаторных буферов свечи не отрисовываются?

Ткните носом! 

 
Alexey Viktorov:

Артём повнимательней. Если нет посчитанных баров!!! Тогда получается на графике нет вообще баров!!! А чего тогда считать??? Это, наверное, могло быть в МТ3 и такие перестраховки тянутся оттуда.

Ты ж задал чёткий вопрос:

разве может быть rates_total - prev_calculated < 1???

и получил такой же абсолютно чёткий ответ: в 99.99% случаев :)

Цифру процентов сам придумал :)

 
Artyom Trishkin:

Ты ж задал чёткий вопрос:

и получил такой же абсолютно чёткий ответ: в 99.99% случаев :)

Цифру процентов сам придумал :)

А первая часть строки и вопроса в целом?

 

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

Всего данных 100, посчитанных 100 100-100=0...

Прочтите мои ответы Артёму. Их всего два.

 
Сергей Таболин:Вопрос стоит - почему при заполнении (корректном!) индикаторных буферов свечи не отрисовываются?

Ткните носом! 

Вы уверены что заполнение корректно?

Я вам предложил начать с выделения баров через N-ное количество, или хотя-бы одного последнего закрытого. Вы это попробовали? Отрисовывается? Вам не интересно добиться успеха собственными мозгами? Вы просите ткнуть носом……… предлагаете кому-то показать на сколько он умнее……… Я точно этого делать не буду.

 
Alexey Viktorov:

Вы уверены что заполнение корректно?

Я вам предложил начать с выделения баров через N-ное количество, или хотя-бы одного последнего закрытого. Вы это попробовали? Отрисовывается? Вам не интересно добиться успеха собственными мозгами? Вы просите ткнуть носом……… предлагаете кому-то показать на сколько он умнее……… Я точно этого делать не буду.

Алексей, мне интересно ))) Но я не вижу ошибку! А учиться - не зазорно. И если кто-то умнее или опытнее, то и в этом ничего плохого не вижу.

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

2020.08.08 10:38:51.184 newCandles (USDJPY,H1)  ~~~~ Предварительный расчёт индикатора.
2020.08.08 10:38:51.343 newCandles (USDJPY,H1)  2019.01.02 06:00:00 >>> Свеча 00000 >> open = 109.419 hihg = 109.462 low = 105.388 close = 105.388 > Сформирована за 122162 тика.
2020.08.08 10:38:51.785 newCandles (USDJPY,H1)  2019.01.03 00:41:15 >>> Свеча 00001 >> open = 105.388 hihg = 109.388 low = 105.268 close = 109.388 > Сформирована за 1336258 тиков.
2020.08.08 10:38:55.673 newCandles (USDJPY,H1)  2019.01.17 21:50:34 >>> Свеча 00002 >> open = 109.388 hihg = 112.398 low = 105.388 close = 105.388 > Сформирована за 11546466 тиков.
2020.08.08 10:38:57.434 newCandles (USDJPY,H1)  2019.08.09 18:57:55 >>> Свеча 00003 >> open = 105.388 hihg = 109.388 low = 104.453 close = 109.388 > Сформирована за 5400916 тиков.
2020.08.08 10:38:59.257 newCandles (USDJPY,H1)  2019.11.07 17:57:24 >>> Свеча 00004 >> open = 109.388 hihg = 112.225 low = 105.384 close = 105.384 > Сформирована за 5555641 тик.
2020.08.08 10:38:59.391 newCandles (USDJPY,H1)  2020.03.06 11:47:26 >>> Свеча 00005 >> open = 105.384 hihg = 105.732 low = 101.377 close = 101.377 > Сформирована за 272724 тика.
2020.08.08 10:38:59.488 newCandles (USDJPY,H1)  2020.03.09 15:37:48 >>> Свеча 00006 >> open = 101.377 hihg = 105.378 low = 101.187 close = 105.378 > Сформирована за 314847 тиков.
2020.08.08 10:39:00.400 newCandles (USDJPY,H1)  2020.03.10 21:05:27 >>> Свеча 00007 >> open = 105.378 hihg = 109.385 low = 103.094 close = 109.385 > Сформирована за 2045775 тиков.
2020.08.08 10:39:03.802 newCandles (USDJPY,H1)  2020.03.19 04:13:11 >>> Свеча 00008 >> open = 109.385 hihg = 111.711 low = 105.385 close = 105.385 > Сформирована за 10250092 тика.
2020.08.08 10:39:03.974 newCandles (USDJPY,H1)  ~~~~ Предварительный расчёт индикатора закончен.

Все цены для свечей посчитаны и распринтованы из индикаторных буферов. Всё же корректно. А отрисовки как не было, так и нет. И я не понимаю почему...