Лига Торговых Систем. Продолжаем работу. - страница 24

 
Georgiy Merts:

Друзья, ну что вы так прямо переживаете за рекламу... Вместо "Альпари" народ пишет "известный ДЦ на А". Или вместо Инсты - "известный ДЦ на И" - ну, смешно же !  Зачем впадать в паранойю ?  Вопрос был совершенно конкретный, и если ответ на него считать за "рекламу" - ну я уж прям не знаю, тут чуть ли не в каждом посте тогда надо видеть рекламу...

Давайте оставаться в рамках разумного, все вполне интуитивно могут отличить рекламу от объяснений.

Почитал я про  TDS. И очень удивлен. Заявлены следующие фичи:

1.Отсутствие ограничения на размер файла 2Gb.
2.Возможность одновременного тестирования в нескольких копиях терминала.
3.Возможность импортировать тиковые данные от разных брокеров.
4.Имитация проскальзывания при тестировании.
5.Тестирование с реальным спредом.

Безусловно, все это полезно, но зачем для всего этого сторонние программы, если в МетаТрейдере - все это имеется ?   

Плюс - работа с тиками для позиционной ТС, удерживающей позиции более суток - просто не имеет смысла. Я сравнивал тестирование в режиме 1M OHLC и в режиме "реальные тики" - разница крайне невелика. Смысл терять огромное время на тиковом тестировании, если для позиционных ТС вполне достаточно куда более быстрого режима 1М OHLC ?

Тестирование также проходит через тестер MT4.

Только вот котировки не кривые-косые, закачанные терминалом у метаквотов, а реальные от Дукаса или от вашего брокера.

По фичам:

1.Отсутствие ограничения на размер файла 2Gb. - повторю, что те котиры, на которых Вы тестируете с рельностью имеют очень мало общего.

2. Возможность одновременного тестирования в нескольких копиях терминала. - имеется в виду работа именно с котировками, полученными через TDS.

3. Возможность импортировать тиковые данные от разных брокеров. - такой встроенной возможности в MT4 нет и никогда не было.

4.Имитация проскальзывания при тестировании. - тоже нет и не было и никогда не будет.

5.Тестирование с реальным спредом.- аналогично пункту 4.

"Плюс - работа с тиками для позиционной ТС, удерживающей позиции более суток - просто не имеет смысла. Я сравнивал тестирование в режиме 1M OHLC и в режиме "реальные тики" - разница крайне невелика. Смысл терять огромное время на тиковом тестировании, если для позиционных ТС вполне достаточно куда более быстрого режима 1М OHLC ?"

- это разница, которая крайне невелика, именно та разница, которая отличает сливную стратегию от прибыльной )))

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

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

 
Boris Gulikov:

Тестирование также проходит через тестер MT4.

Только вот котировки не кривые-косые, закачанные терминалом у метаквотов, а реальные от Дукаса или от вашего брокера.

По фичам:

...................

Аааа... Ты используешь старую версию... МТ4... Тогда все ясно. 

Не... Четвертый метатрейдер - это не наш путь. Мы - тестируем только в МТ5, уже несколько лет.  А рабочие версии - компилируем для МТ4.

1. Котиры, на которых я тестирую - ТОЧНО те, что были реально. Особенно, если использовать режим "все тики на основе реальных". Но, как я убедился - это излишне. Для позиционных ТС - вполне нормален режим 1М ОХЛС.

2. У меня МТ5 тестируется сразу в 24 потока - используются все ядра локальной домашней сети.

3. В МТ5 - запросто можно импортировать котировки любого провайдера (нравятся ДукаКопи - импортируй, все возможно). Но меня вполне устраивают альпаришные.

4. В МТ5 - очень хорошая иммитация проскальзывания. Но для позиционной ТС - проскальзывание не имеет значения. Ну, проскользит десяток-другой пунктов иногда... Это менее 10% от среднего ТП или СЛ... Чего за этим скольжением гоняться ?

5. В МТ5 - тестирование проводится именно для реального спреда. Надо включить режим "все тики на основе реальных". Но опять же, для Лиги ТС, с ее позиционными стратегиями - все тики дают практически ту же картиру, что и режим "четыре тика в минуту" (1M OHLC). Разница возникает, как я уже говорил, если у ДЦ невменяемый спред - но не за счет этого самого спреда, а за счет того, что цены Аск получаются совсем другие, и сделки в результате отличаются.

И, опять же - это у тебя, возможно, в на тиках данные совсем другие. У меня - разница крайне невелика. Куда больше влияет разница в спреде.

Мой вердикт, который ты только подтверждаешь использованием TDS: МТ4 - устаревшая платформа, не подходящая для тестирования. Только МТ5 !!!


Да, ну и смотри сам - как же мне соглашаться с тем, что TDS - нужная вещь, если МТ5 имеет все, что предоставляет она исходно, плюс позволяет кой-какие вещи, которые TDS, как я понимаю, не позволяет (скажем, использование параллельного тестирования на разных ядрах, или тестирования нескольких символов одновременно) ? Я преимуществ не вижу. Для МТ4 - да, TDS представляет большие дополнительные возможности (и в МТ4, и правда, генерация тиков серьезно отличается от реала). Но, МТ4 - это давно устаревшая платформа, и я ее использую лишь только потому, что счет в ДЦ у меня на МТ4.

 
Georgiy Merts:

Ээээ... Не понял. С чего бы это "такой советник не лезет в тестер" ??? А где же я его, по-твоему (давай на "ты") тестирую ?

Идея Лиги ТС - была предложена мной два года назад, и народ крайне скептически ее воспринял.  Общий шаблон и первые ТС Лиги были написаны год назад, у меня тогда был старый компьютер, и я предложил народу присоединиться к тестированию. В прошлой ветке по Лиге ТС я описывал, как это делается, и два человека мне помогали в тестировании... У них ведь был самый обычный тестер МетаТрейдера !

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

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

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

Другое дело, если бы твою Лигу можно было запускать в тестере, например как обычный мультивалютный советник в MT5.

На сколько я понял, не смотря на работу на счете МТ4, код совместим и с МТ5 и думаю если сделать встроенный оптимизатор блоков, то это вполне можно будет гонять в тестере, а если так, то в сравнении с текущим режимом тестирования, это может сэкономить годы:)

 
Ivan Negreshniy:

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

Другое дело, если бы твою Лигу можно было запускать в тестере, например как обычный мультивалютный советник в MT5.

На сколько я понял, не смотря на работу на счете МТ4, код совместим и с МТ5 и думаю если сделать встроенный оптимизатор блоков, то это вполне можно будет гонять в тестере, а если так, то в сравнении с текущим режимом тестирования, это может сэкономить годы:)

Да, все верно.

Код лиги - мультиплатформенный, она без изменений компилируется на МТ4 и на МТ5. 

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

//+------------------------------------------------------------------+ //|                                                        TS_090817 | //|                                     Copyright 2017, George March | //+------------------------------------------------------------------+ /* Советник на основе фабрик, сделанный 090817 - оболочка для МТ5. */ #property description "TS_090817" #include <MyLib\DebugOrRelease\DebugSupport.mqh> #include <MyLib\Common\CurSymEnum.mq5> #include <MyLib\Factories\ForTrade\EURUSD\EURUSD_FactoriesIncludes.mqh> // Объявляем фабрики частей эксперта. // ЕМА сопровождение CTrendDTS_EURUSD_01_EPF epfFact_0(NULL); CTrendSAR_EURUSD_01_EPF epfFact_1(NULL); CTrendSP_EURUSD_01_EPF epfFact_2(NULL); CFlatSP_EURUSD_01_EPF epfFact_3(NULL); CFlatSAR_EURUSD_01_EPF epfFact_4(NULL); CFlatRTS_EURUSD_01_EPF epfFact_5(NULL); CTrendRTS_EURUSD_01_EPF epfFact_6(NULL); CFlatDTS_EURUSD_01_EPF epfFact_7(NULL);

// PriceChannel сопровождение CTrendDTS_EURUSD_PrCh_EPF epfFact_8(NULL); CTrendSAR_EURUSD_PrCh_EPF epfFact_9(NULL); CTrendSP_EURUSD_PrCh_EPF epfFact_10(NULL); CFlatSP_EURUSD_PrCh_EPF epfFact_11(NULL); CFlatSAR_EURUSD_PrCh_EPF epfFact_12(NULL); CFlatRTS_EURUSD_PrCh_EPF epfFact_13(NULL); CTrendRTS_EURUSD_PrCh_EPF epfFact_14(NULL); CFlatDTS_EURUSD_PrCh_EPF epfFact_15(NULL);

// ZZPendings сопровождение CTrendDTS_EURUSD_ZZPnd_EPF epfFact_16(NULL); CTrendSAR_EURUSD_ZZPnd_EPF epfFact_17(NULL); CTrendSP_EURUSD_ZZPnd_EPF epfFact_18(NULL); CFlatSP_EURUSD_ZZPnd_EPF epfFact_19(NULL); CFlatSAR_EURUSD_ZZPnd_EPF epfFact_20(NULL); CFlatRTS_EURUSD_ZZPnd_EPF epfFact_21(NULL); CTrendRTS_EURUSD_ZZPnd_EPF epfFact_22(NULL); CFlatDTS_EURUSD_ZZPnd_EPF epfFact_23(NULL); // Файл шаблона советника #include <MyLib\TSTemplate\ExpertAdvisorT.mq5>

Все.

В данном случае - это код всех ТС по евродоллару, работающих сразу вместе, с минимальным лотом.

Можно объявить и другие ТС, по другим символам. Все компилируется - и тестируй.

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

 
Georgiy Merts:

Ээээ... Не понял. С чего бы это "такой советник не лезет в тестер" ??? А где же я его, по-твоему (давай на "ты") тестирую ?

Идея Лиги ТС - была предложена мной два года назад, и народ крайне скептически ее воспринял.  Общий шаблон и первые ТС Лиги были написаны год назад, у меня тогда был старый компьютер, и я предложил народу присоединиться к тестированию. В прошлой ветке по Лиге ТС я описывал, как это делается, и два человека мне помогали в тестировании... У них ведь был самый обычный тестер МетаТрейдера !

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

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

На каком ТФ-ме строится канал и торгует робот на фунто-баксе?

 
Roman Shiredchenko:

На каком ТФ-ме строится канал и торгует робот на фунто-баксе?

М15

 
Georgiy Merts:

М15

спасибо

 
Georgiy Merts:

Да, все верно.

Код лиги - мультиплатформенный, она без изменений компилируется на МТ4 и на МТ5. 

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

Все.

В данном случае - это код всех ТС по евродоллару, работающих сразу вместе, с минимальным лотом.

Можно объявить и другие ТС, по другим символам. Все компилируется - и тестируй.

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

Структура модульная и в принципе переоптимизация отдельной стратегии в процессе теста должна работать.

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

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

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

 
Ivan Negreshniy:

Структура модульная и в принципе переоптимизация отдельной стратегии в процессе теста должна работать.

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

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

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

Реальная динамическая компиляция - это врядли возможно в МетаТрейдере.

У меня она "полудинамическая". То есть, показала какая-то ТС контрольные параметры - я ее переоптимизирую, нахожу параметры, которые показывают хорошие результаты на протяжении последних двух лет (год - бек, год - форвард), закладываю изменения в класс ТС (вот тут как раз и работает "динамичность" компиляции), после чего все перекомпилирую - и отправляю на работу.

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

 
Georgiy Merts:

Реальная динамическая компиляция - это врядли возможно в МетаТрейдере.

У меня она "полудинамическая". То есть, показала какая-то ТС контрольные параметры - я ее переоптимизирую, нахожу параметры, которые показывают хорошие результаты на протяжении последних двух лет (год - бек, год - форвард), закладываю изменения в класс ТС (вот тут как раз и работает "динамичность" компиляции), после чего все перекомпилирую - и отправляю на работу.

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

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

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