Могли бы вы рассказать о случае, когда участник форума оказался полезным в вашей работе, и можете ли вы описать это подробно? - страница 6

 
Artyom Trishkin #:
Ну это уже придирки к простой и надëжной схеме. После обрыва связи и еë восстановления спустя энное количество баров, гораздо быстрее всë пересчитать заново, чем углубляться в поиск того, сколько чего пропущено. 

а не придирки, а разбор схемы.

очевидно, что твоя схема не отрабатывает ситуацию D

замена твоего

if(limit > 1)

на

if(prev_calculated == 0)

-- приводит к отработке ситуации D


p.s. поэтому и интересно -- из каких соображений в твоей схеме выбросили отработку ситуации D -- сознательно по какой-то причине, или случайно "так получилось".

 

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

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

 
Artyom Trishkin #:

Значит - не делал сложных индикаторов. Можешь считать от текущих данных как в советнике. Но индикатор должен рассчитываться от начала истории. Если нужно сделать просто, и сделать правильно рассчитывающий индикатор.

Артём ты не прав. Кто запрещает считать от нуля до  rates_total-1;??? И никаких переворачиваний не надо.

 
Artyom Trishkin #:
После обрыва связи и еë восстановления спустя энное количество баров, гораздо быстрее всë пересчитать заново, чем углубляться в поиск того, сколько чего пропущено. 

не надо "углубляться в поиск того, сколько чего пропущено".

для этого используется 1) цикл:

for(int i=limit; i>=0 && !IsStopped(); i--)

и 2) методика вычисления limit -- она как раз и нужна, чтобы не "углубляться в поиск того, сколько чего пропущено".

здесь limit как раз и равен номеру бара, на котором расчёт остановился.

в твоей схеме -- весь этот механизм не просто упрощён -- он необоснованно ликвидирован.

 
Alexey Viktorov #:

Артём ты не прав. Кто запрещает считать от нуля до  rates_total-1;??? И никаких переворачиваний не надо.

Мне дать ссылку на мой пост, где я пояснял почему так лучше? Это тут не далеко, если не по диагонали читать конечно.

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

 
Andrey F. Zelinsky #:
в твоей схеме -- весь этот механизм не просто упрощён -- он необоснованно ликвидирован.

Покажи свою схему.

 
Artyom Trishkin #:

Покажи свою схему.

пояснил её два раза -- вот второй раз:

-- только это не моя схема -- а доведение твоей схемы до полноценного варианта.
 
Artyom Trishkin #:

Мне дать ссылку на мой пост, где я пояснял почему так лучше? 

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

 
Artyom Trishkin #:

Мне дать ссылку на мой пост, где я пояснял почему так лучше? Это тут не далеко, если не по диагонали читать конечно.

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

Артём, посмотри внимательно и скажи чем отличается такая схема

  int limit = prev_calculated == 0 ? 0 : rates_total-1;
  for(int i = limit; i < rates_total && !IsStopped(); i++)
   {

от твоей. По любому пересчёт идёт от левого края, самого старого бара к текущему бару.

Если это первый запуск индикатора, то пересчёт идёт от самого старого, нулевого бара к самому новому. На следующем тике будет пересчёт только самого свежего, rates_total-1 бара.

Преимущество такого оформления в том, что такие индикаторы как ZZ в которых при перехае\перелоу предыдущее не нулевое значение надо обнулить, индекс этого бара остаётся неизменным от запуска индикатора до его удаления с графика. А в mql4 надо номер этого бара найти в дополнительном цикле.

Если хочешь дальше подискутировать на эту тему, то звони… назначь время и поговорим. 

 
Alexey Viktorov #:

Артём, посмотри внимательно и скажи чем отличается такая схема

от твоей. По любому пересчёт идёт от левого края, самого старого бара к текущему бару.

Если это первый запуск индикатора, то пересчёт идёт от самого старого, нулевого бара к самому новому. На следующем тике будет пересчёт только самого свежего, rates_total-1 бара.

Преимущество такого оформления в том, что такие индикаторы как ZZ в которых при перехае\перелоу предыдущее не нулевое значение надо обнулить, индекс этого бара остаётся неизменным от запуска индикатора до его удаления с графика. А в mql4 надо номер этого бара найти в дополнительном цикле.

Если хочешь дальше подискутировать на эту тему, то звони… назначь время и поговорим. 

зачем уводить с форума, это не спор, а обсуждения, как показывает исследование, тут многие толком не знает как точно надо оформлять этот расчет, в какой индикатор не загляни - вариантов очень много, какой из них верный?