Обсуждение статьи "Пользовательский тестер стратегий на основе быстрых математических вычислений" - страница 2

 
 А мне понравилось, хотя бы потому, что по математическим вычислениям ни одной статьи и в справке мало что написано по этой теме.
 
fxsaber:

Хорошая статья для старта! Замечания

  • Фактически предлагается использовать собственный торговый API. Что почти сводит на нет разработку. Смысл в своем тестере внутри MT5 имеет, когда торговый API для своего тестера совпадает со штатным. Иначе получается, что с той же пользой можно использовать какой-нибудь уже готовый тестер конкурентов или тот же R.
  • С механизмом кастомных символов не совсем понятно, для чего может понадобится такой тестер.
  • Байтовые манипуляции хотелось бы видеть в универсальном виде.
  • Не хватает сравнения скорости своего тестера и штатного.
  • Свой тестер целесообразно использовать еще и для такого

Автору Спасибо!

ЗЫ Почему FrameNext используется без while?

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

 

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

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

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Vasiliy Sokolov:

Ну а как Вы будете пользоваться облаком MetaTrader на Питоне? Даже как Вы питон-скрипт хотите запустить на МТ?


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

ну то есть основной то смысл это что бы эксперты сами себя оптимизировать умели, если я правильно понял.. а не просто быстро
CreateProcess function (Windows)
  • msdn.microsoft.com
Creates a new process and its primary thread. The new process runs in the security context of the calling process. If the calling process is impersonating another user, the new process uses the token for the calling process, not the impersonation token. To run the new process in the security context of the user represented by the impersonation...
 
Maxim Dmitrievsky:

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

ну то есть основной то смысл это что бы эксперты сами себя оптимизировать умели, если я правильно понял.. а не просто быстро

Это немного другая тема.

 
Vasiliy Sokolov:

Это немного другая тема.


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

 
Vasiliy Sokolov:

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

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

С моей стороны нет на эту темы высказывания, потому что реализовал такое в КБ когда-то.

 
Vasiliy Sokolov:

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

Вы не поняли меня. Вы предлагаете ТС для теста писать на своем торговом API специально для этого. А это равносильно использованию других тестерных решений.

Ну и пункт с кастомными символами проигнорили, как и сравнение скоростей в цифрах.

 
Vasiliy Sokolov:

На сколько я понимаю, данные не потеряются, т.к. сбор статистики происходит другим экземпляром программы.

Потеряются, потому что этот самый другой экземпляр программы не выполнит OnTesterDeinit.

 
Vasiliy Sokolov:

Не понял. Что такое универсальный вид?

Через шаблоны. В КБ такое выкладывал.

В OnTesterPass передается последний прогон, который и загружает FrameNext. While в данном случае не нужен.

OnTesterPass - это всего лишь реакция на событие записи в mqd-файл очередного фрейма.

FrameNext - считывание фрейма из mqd-файла с текущей позиции и перенос этой позиции на следующий фрейм.


Соответственно, если FrameNext хоть в одном из OnTesterPass не вызвать, то все последующие OnTesterPass+FrameNext будут получать не пришедший проход, а предыдущий.

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