Рациональные приемы (предложения) ускорения оптимизатора

 
Есть ТС, которые торгуют только в определенные интервалы. Например, только по средам или по сильным новостям из календаря. В остальное время они ничего не делают.

Ускоряю бэктест таких ТС через прописывание в самом начале OnTick проверки условия на нулевое количество ордеров. Однако, все равно при огромном количестве тестерных тиков, на каждом тике делается вызов OnTick с этой проверкой, которая на самом деле, по логике, и не нужна.

Целесообразно ли ввести функцию?
// Переводит по возможности следующий в тестере тики, начиная с даты NextDate
// Возвращает TRUE - будет перевод. FALSE - невозможно (висят ордера или iCustom-индикаторы).
bool TesterToDate( datetime NextDate );

На MT4 созданием кастомной истории с вырезанием из нее "ненужных" кусков задача ускорения расчетов не решается. На MT5 - тем более.

В общем, хочется более рационального использования бэктестинга. Если есть подводные камни такого решения - сообщите. По-моему, простое и эффективное решение должно получиться. Аналогов не встречал, к сожалению.
 

В конце каждого прохода оптимизатора происходит навязчивое вычисление многих статистических показателей тестирования. Резонно ли иметь механизм четкого выбора показателей для расчета в оптимизаторе?

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

 
Поделитесь списком мат. функкций для тестирования производиельности численного вычисления их минмакса. Кое-что уже нашел. Хочу через OnTester проверить производительность ГА MT4 vs MT5. Да и с другими алгоритмами оптимизации сравнить.
Генетические алгоритмы - Тестовые функции
  • qai.narod.ru
Итак вы написали свой собственный ГА и теперь вам хочется знать насколько он хорош. Ниже приведены некоторые тестовые функции для ГА, которые я нашел в сети на странице Лазаускаса, адрес не помню, но помню, что вышел туда с личной страницы В.Спирса. Также я находил тестовые функции, которые предлагает Де Йонг (один из студентов Холланда...
 
zaskok:
Есть ТС, которые торгуют только в определенные интервалы. Например, только по средам или по сильным новостям из календаря. В остальное время они ничего не делают.

Ускоряю бэктест таких ТС через прописывание в самом начале OnTick проверки условия на нулевое количество ордеров. Однако, все равно при огромном количестве тестерных тиков, на каждом тике делается вызов OnTick с этой проверкой, которая на самом деле, по логике, и не нужна.

Наверное предлагаю то же самое.  OnTick всё равно будет вызыватся на каждом тике. А что бы этого не происходило нужно разобраться можно ли в процессе тестирования изменять настройки даты от и до програмно.

void OnTick(){ if (IsTesting()){//код находится в тестере стратегий // здесь вставить проверку условия при которое ТС рассчитана и далее по алгоритму в случае TRUE }

}

 
Единственная значимая возможность ускорить вычисления, это перейти в режим "Быстрый метод на основе сформировавшихся баров". Логика ТС должна явно соответствовать этому режиму. Это самый точный и быстрый режим тестирования. Все остальное - разговоры о пустом.
 
C-4:
Единственная значимая возможность ускорить вычисления, это перейти в режим "Быстрый метод на основе сформировавшихся баров". Логика ТС должна явно соответствовать этому режиму. Это самый точный и быстрый режим тестирования. Все остальное - разговоры о пустом.
Не хочу показаться грубым, но риторический вопрос сразу возник: это Вы зачем и кому написали?
Если есть, что сказать по теме - велкам.

Ни кодобазы, ни статей и каких-либо толковых публикаций не делал, но опыт по теме все же имеется.

Без ложной скромности, топикстартер выделывал с MT4-тестером множество жутких извращений с полным осознанием, что и зачем. Короче, в теме бэктестинга (не только MT) очень хорошо разбираюсь и с практической и с теоретической точек зрения.

Простые предложения ускорения высказаны. Интересно услышать мнение разработчиков  и ребят, которые занимаются оптимизацией ТС с боевыми идеями в них.
 
zaskok:
Не хочу показаться грубым, но риторический вопрос сразу возник: это Вы зачем и кому написали?
Если есть, что сказать по теме - велкам.

Ни кодобазы, ни статей и каких-либо толковых публикаций не делал, но опыт по теме все же имеется.

Без ложной скромности, топикстартер выделывал с MT4-тестером множество жутких извращений с полным осознанием, что и зачем. Короче, в теме бэктестинга (не только MT) очень хорошо разбираюсь и с практической и с теоретической точек зрения.

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

Здесь с опытом ни одни Вы. Еще раз говорю что самый эффективный способ увеличить производительность находиться в области построения самой ТС, а не в области оптимизации тестера. Как бы оптимизировано вы не гнали тики, прогонка баров будет быстрее (и точнее).

Откуда уверенность у вашей ТС, что до NextData она не получит сигнала на вход в рынок?

// Переводит по возможности следующий в тестере тики, начиная с даты NextDate
// Возвращает TRUE - будет перевод. FALSE - невозможно (висят ордера или iCustom-индикаторы).
bool TesterToDate( datetime NextDate );
Как быть с прикрепленными индикаторами? Ведь они должны рассчитываться непрерывно.
 

C-4:

Откуда уверенность у вашей ТС, что до NextData она не получит сигнала на вход в рынок?

Вы как будто прочли только название топика. Посмотрите внимательно первый пост, там полностью содержится ответ на Ваш вопрос. Если повторить, то есть очень много ТС, которые знают, когда они точно никаких торговых сигналов получать не будут. Например, ночные скальперы, так любимые Привалом. Они не получат никаких входных сигналов днем по определению. И бары пропускать или тики - неважно. Главное, чтобы они именно пропускались тогда, когда это разумно делать: автор ТС знает и вставляет это условие в свою ТС.

Как быть с прикрепленными индикаторами? Ведь они должны рассчитываться непрерывно.

Поэтому и написал FALSE - невозможно (висят ордера или iCustom-индикаторы). Так что здесь никаких проблем.
 
zaskok:
Есть ТС, которые торгуют только в определенные интервалы. Например, только по средам или по сильным новостям из календаря. В остальное время они ничего не делают.

Целесообразно ли ввести функцию?

    Ускорение оптимизации для меня актуально. Поддерживаю введение функции  bool TesterToDate( datetime NextDate ).  Для ускорения оптимизации можно не пользоваться встроенным тестером а написать свой на основе массивов-таймсерий.  Правда торговые функции в тестируемом коде нужно будет заменить на иной способ подсчета прибылей(убытков). Для ТС торгующим по средам результаты должны быть близкими, а время  работы написанного тестера-оптимизатора должно быть  в 5 раз меньше(т.к считаются только среды) штатного тестера.
 

Как по мне, то объект исследования не должен управлять экспериментом над самим собой.  

 
zaskok:
Без ложной скромности, топикстартер выделывал с MT4-тестером множество жутких извращений с полным осознанием, что и зачем. Короче, в теме бэктестинга (не только MT) очень хорошо разбираюсь и с практической и с теоретической точек зрения.
Много сэкономить удалось-то? Тема напоминает экономщиков, которые в своих программах int заменяют на char - с целью экономии памяти.
Причина обращения: