Ускоряем iCustom() - страница 3

 
))ну почему- не все еще спорные моменты и функции разобраны по косточкам))))))
 
George-on-Don:
))ну почему- не все еще спорные моменты и функции разобраны по косточкам))))))
Согласен.
 

Возможно смысл и есть в том что бы не вызвать индикаторы по iCustom()

и основной - это быстродействие

просто если на скорую руку проверить - попробовать - то почему бы и не вызывать :)

и если есть результат - то перенести в код эксперта - лучше в библиотеку

 
Народ, а реально проверить это никто не пытался ? Сделать несложный кастом. А потом точно то же попытаться перенести в тело вызывающего советника.
Ренат, кстати думаю неплохо было бы раскрыть какие-то подробности внутреннего мира исполняющей среды. Например как работает всё тот же злополучный кастом ? Как вызваются функции ? Как происходит импорт из dll ? Для меня например всё это сплошные загадки. Было время, когда мне казалось что ex4 это хитро зашифрованный машинный код, просто по непринужденности импорта из dll. Теперь разумеется я так не считаю. Думаю такое знание многим помогло бы писать более эффективные программы.
 
YuraZ писал (а):

Возможно смысл и есть в том что бы не вызвать индикаторы по iCustom()

и основной - это быстродействие

просто если на скорую руку проверить - попробовать - то почему бы и не вызывать :)

и если есть результат - то перенести в код эксперта - лучше в библиотеку

Есть такой индюк "CoeffofLine_true" называется , он при оптимизации тормозит - дальше некуда, я из советника прописал ему не 300 баров при расчете , а 30 - стал шевелиться значительно шустрее.
 
eugenk1:
Например как работает всё тот же злополучный кастом ? Как вызваются функции ? Как происходит импорт из dll ?
По стоимости вызовов:
  • кастом индикатор по стоимости вызова аналогичен обычным индикатор iXXX, но при первом вызове происходит подгрузка индикатора с задержкой
  • собственные (описанные в MQL4 файле) функции внутри MQL4 вызываются вообще максимально быстро
  • импорт из DLL работает очень быстро, только при первом вызове задержка с подгрузкой DLL
Все корректно написанные (с правильным применением IndicatorCounted) кастомные индикаторы считаются очень быстро в экономичном режиме, для них эмулируется коррекный механизм подкачки и обновления данных как на графиках.
 
Renat писал (а):
eugenk1 писал (а):
Например как работает всё тот же злополучный кастом ? Как вызваются функции ? Как происходит импорт из dll ?
По стоимости вызовов:
  • кастом индикатор по стоимости вызова аналогичен обычным индикатор iXXX, но при первом вызове происходит подгрузка индикатора с задержкой
  • собственные (описанные в MQL4 файле) функции внутри MQL4 вызываются вообще максимально быстро
  • импорт из DLL работает очень быстро, только при первом вызове задержка с подгрузкой DLL
Все корректно написанные (с правильным применением IndicatorCounted) кастомные индикаторы считаются очень быстро в экономичном режиме, для них эмулируется коррекный механизм подкачки и обновления данных как на графиках.

Прочитал на форуме вот эту статью 'Многократный пересчет нулевого бара в некоторых индикаторах' и подумал о том , что к индикаторам которые публикуются в Code Base  неплохо было предъявлять выше приведенные требования.
 
Трудно сказать - те кто понимают эту тонкость и сами могут это выявить.
 
Rosh:
Трудно сказать - те кто понимают эту тонкость и сами могут это выявить.

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

ИМХО, полезно в индикаторе иметь флажок типа LastBarOnly - если он установлен, то пересчитывается только последний (текущий) бар; если сброшен, то количество пересчитываемых баров определяется с помощью IndicatorCounted() (также и для недопущения лакировки истории полезно).

Причина обращения: