Загадка с профилировкой эксперта - как не превысить 15 минутный лимит Чемпионата - страница 2

 

marketeer:

Вот каким образом инидкатор становится узким местом - хотелось бы услышать поподробнее. У меня используется один индикатор, но считывание из него данных включено в те 1.5 минуты тайминга, которые я у себя намерил.


Важно все, имеет значение:

1. Как считает индюк данные и сколько в нем буферов (насколько "тяжелая" логика);

2. Какая глубина расчета используется и необходима;

3 Частота рефрешинга индюков (определенные индюки можно пересчитывать на каждом тике;определенные по таймеру;а некоторые и вовсе по событию).

 
DC2008:

1. Индикатор надо включить прямо в код эксперта и использовать в расчёте только последние бары. Быстродействие индикаторов на примере МА исследовано здесь.

2. Не надо на каждом тике выполнять ненужные расчёты. Вы же ордера не на каждом тике выставляете или закрываете? 

1. Индикатор сделан по "стандарту" - рассчитываются только последние бары, не попавшие в рассчитанные за предыдущий вызов OnCalculate. Перетаскивать в эксперт - геморрой, мне не понятно, почему нельзя добиться эффективной работы, используя штатный, рекомендуемый производителем, подход.

2. Советник побаровый. Синхронизация по инструментам в начале каждого бара происходит на нескольких тиках и отнимает секунды (в общем прогоне, а не на каждом баре).

 
TheXpert:
А расчет нет. Выводи и его тоже. Он не в советнике.

Сделал. Тестирую на двух неделях для скорости. Такие результаты: общее затраченное время 1 минута 6 секунд, работа эксперта - 13 секунд, расчет индикатора - 17 секунд. Итого - 30 секунд в моем коде, меньше половины. Вот такие дела ;-////

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
DC2008:

1. Индикатор надо включить прямо в код эксперта и использовать в расчёте только последние бары. Быстродействие индикаторов на примере МА исследовано здесь.

2. Не надо на каждом тике выполнять ненужные расчёты. Вы же ордера не на каждом тике выставляете или закрываете? 

Да! Однозначно! У меня на вызовах пользовательских индикаторов эксперт тридцать минут тестировался, а после запаковки индикаторного кода в эксперта тест прошёл за 12 минут.
 
GODZILLA:
Да! Однозначно! У меня на вызовах пользовательских индикаторов эксперт тридцать минут тестировался, а после запаковки индикаторного кода в эксперта тест прошёл за 12 минут.
DC2008:

Научитесь наконец писать индикаторы.

 
TheXpert:

Научитесь наконец писать индикаторы.

Это кому?
 
TheXpert:
Обоим.
На самом деле факт, что вызов индюка имеет накладные расходы, и их можно исключить переносом расчета в эксперт. Но это изврат.
 
TheXpert:
Обоим.
Ну тогда всё понятно, я это уже слышал! Когда говорят о конкретных фактах, можно человека и выслушать, а "умные советы" ни о чём, покрытые слоем плесени, от эдакого маститого "бренда" - это уже за гранью логики здравого смысла.
 
TheXpert:

Научитесь наконец писать индикаторы.

Вы ещё программистов MQ поучите писать индикаторы. Быстродействие того или иного подхода доказано в статье, если лень читать - то оно падает в 20раз.
 
GODZILLA:
Ну тогда всё понятно, я это уже слышал! Когда говорят о конкретных фактах, можно человека и выслушать, а "умные советы" ни о чём, покрытые слоем плесени, от эдакого маститого "бренда" - это уже за гранью логики здравого смысла.
Уважаемый, у этой темы уже борода до пола. Иногда заглядывайте на форум, и на том форуме и на этом уже обсуждадлось с конкретными фактами и подтверждениями. В том числе, на этом форуме высказывалось мнение разработчиков терминала по этому вопросу. Попытки расчета индикаторов в эксперте  - подход тупиковый и обречённый.
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
Причина обращения: