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

 
Andrey F. Zelinsky #:

штатные примеры я беру за основу -- эту проверку считаю лишней -- и не включаю в свой код

себе то я выбрал уже давно вариант,

int start, bar;
//---- проверим прошлый расчет для пересчёта баров (смена графика, периода или компиляция)
   if(prev_calculated>rates_total || prev_calculated<=0)
     {
      //--- укажем бар первого расчет индикатора
      start=0; // "0" -> D'1970.01.01 00:00';
      //start=rates_total-3; // для тестов, первый расчет будет с последних 3 бара
     }
   else
      start=rates_total-1; // стартовый номер для расчёта новых баров

   for(bar=start; bar<rates_total && !IsStopped(); bar++)

и вверху проверка на новый бар, использую только закрытые

//--- проверка на новый бар
   if(prev_calculated==rates_total)
      return(rates_total);
 
lynxntech #:

себе то я выбрал уже давно вариант,

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

 
Andrey F. Zelinsky #:

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

2 числа сравнить не затратно

а

  if(prev_calculated==rates_total)
      return(rates_total);

тоже самое что 0 дойдет до цикла, иначе пересчет текущего бара на каждом тике, дергалка на графике.... я не использую [0] бар

 
lynxntech #:

а

  if(prev_calculated==rates_total)
      return(rates_total);

тоже самое что 0 дойдет до цикла, иначе пересчет текущего бара на каждом тике, дергалка на графике.... я не использую [0] бар

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


p.s. интересное решение -- потестирую -- возможно буду использовать, когда надо отбросить текущий бар

 
Alexey Viktorov #:
Это где можно такое посмотреть? Когда бывает так, чтобы посчитанных баров было больше чем есть на графике???

Там опечатка. Я хотел написать "rates_total = 101, а prev_calculated = 100".

Alexey Viktorov #:
Зачем заполнять массив пустым значением или нулём перед заполнением рабочими значениями? Ведь по любому будет перебор всех баров и весь буфер будет заполнен…

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

 
Vladislav Boyko #:

Там опечатка. Я хотел написать "rates_total = 101, а prev_calculated = 100".

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

Я говорил о таких индикаторах как ZZ и фракталы в том же числе.

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

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

Alexey Viktorov, 2024.10.08 09:46

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

Артём, я не сказал, что вообще не надо. Я понимаю такой подход в таких индикаторах как ZZ в которых не каждый бар имеет значение. Тут можно ещё посчитать что быстрей обрабатывается… Ведь при первом запуске перебираются в цикле все бары, проверяется надо-ли заполнить этот индекс буфера значением и только потом заполняется. Но ведь после проверки, если заполнять не надо, можно или заполнить пустым значением или просто перейти на следующий индекс, если массив инициализирован. В чём выгода в каком варианте? Да просто на любителя…

А взять такой индикатор как МА, то тут вообще инициализация массива абсолютная глупость. С моей точки зрения. Ведь в цикле каждая ячейка обязательно заполняется значением отличным от нуля. И плевать что в ячейке было перед заполнением, мусор или пустое значение.


Ведь при первом запуске по любому перебираем все бары подряд.

 
Serqey Nikitin #:

Мое мнение:

Задача сформулировано не точно...

Нет понимания, для чего весь этот огород?... - не раскрыта ИДЕЯ...

Вполне возможно, что Ваше видение проблемы - не наилучшее...  

Планируемый внешний вид индикатора «RSI color» примерно следующий. Время покажет, хорошее это решение или плохое.




 
Andrey F. Zelinsky #:
штатные примеры имеют статус "Документация" -- и являются официальной рекомендацией к использованию от компании-разработчика языка и терминала.

Штатный зигзаг в пятерке пофиксили или он такой-же багованный, как в 4ке?😄

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

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

Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite

Renat Fatkhullin, 2020.05.17 12:17

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

 
Vladislav Boyko #:

Штатный зигзаг в пятерке пофиксили или он такой-же багованный, как в 4ке?😄

не считаю, что термин "баг" применим к Зиг-Загу (любому свинговому индикатору, не только терминальному).

есть некая логика отработки свингов -- отработка свингов имеет особенности -- и не все свинги логика отрабатывает так, как кому-то надо -- называть это "багом" не корректно -- разве что, если нет нужной отработки, которая прописана в ТЗ.

 
Andrey F. Zelinsky #:
не считаю, что термин "баг" применим к Зиг-Загу (любому свинговому индикатору, не только терминальному).

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

Я ради шутки вспомнил про стандартный зигзаг. Работает как работает. Не нравится - напиши свой.