Перейти к содержанию

[Дневник трейдера] Где лось? Или почему алготрейдеры все таки сливают.


Рекомендуемые сообщения

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)

Часть 1.

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 1.
 

По мотивам ответов на вопросы известного (как минимум мне) алготрейдера из Краснодара Алексея Вана.

https://www.youtube.com/watch?v=QY3uP0ZDz4c&t=641s

"Тесты есть тесты, реал есть реал, это разные совершенно сущности. И они порой не соприкасаются. ... У нас практически все один в один идет, но процентов 10% сделок действительно отличаются. То не откроются, то откроются ... Просто мне эта метрика не интересна, сравнивать сидеть тестер с реалом. ..."

 

Цель: понять какой смысл в сверке тестера с реалом.

 

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

 

На основании теста мы ставим робота на реал, но дальше нам почему то не интересно, а может наш тест вообще не имеет никакого отношения к реальности. Разные сущности? 10%? Один "незапланированный" лось может убить весь депозит. Вы торгуете трендовыми роботами? Одна сделка может сделать прибыль за год. А если именно она не откроется? В тесте будет, а на реале нет. Не интересно?

 

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

 

Ок Хорошо (импортозамещение). Попробуем позаниматься такими проверками. Ведь лично мое, крайне скромное ИМХО, что если тесты не соответствуют реалу, либо мы не в курсе, что есть разница, какая она, и почему, то все тесты вместе с алгоритмами можно выбросить на помойку. А мы по итогу, много лет очень высокоинтеллектуально и с очень умным видом впустую удовлетворяем свой мозг.

 

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

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 1.
 
 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 1.
 

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

Через полгода получаем результат (период и теста, и реала один и тот же, у нас машина времени)):

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 1.
 
 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 1.
 

Как-то прям сильно скромнее. В этом месте от товарищей, которые начинали сливать на форексе, а теперь уже с более умным видом продолжают сливать в других местах слышится гул: "Фууэ, форекс лохотрон". Ну, да - да. Форекс лохотрон, а на биржах просто "разные сущности")).

 

Изменено пользователем eBaykal
  • Лайк 2
  • Лол 2
  • Огонь! 2
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано

Забавно читается. Продолжение будет?

 

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

И в этом случае графики, ожидаемо, выглядят примерно так, как на картинке.

Хотя стопы, конечно, заметно крупнее.

 

Еще можно было бы заподозрить контрольные точки.

Я в одной из веток этого форума на старте моего забега по его изучению задавал вопрос: как закодировать в советнике вход по контрольным точкам fcplm

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

 

Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)

Часть 2.

 

щщ

 

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

 

1. Все это лохотрон. Пойду на завод.

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

3. Этот робот слил, поставлю другой, у меня еще есть, что сливать.

4. Куплю очень дорогой обучающий курс по программированию роботов, потому, что у меня очень большие запасы времени и денег, чтобы учиться, программировать, и (со значительной, но уже не 100% долей вероятности) ... сливать.

5. Разобраться, где брать точные тиковые данные на торгуемые инструменты. Добиться максимально возможного соответствия тестов реальности, учитывать возможные проскальзывания и все издержки в тестах. Только в таком случае тестирование роботов / торговых стратегий будет иметь смысл.

 

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

 

Разобрались, как скачать нужные котировки именно того брокера у которого мы торгуем. Правильно выставили все комиссии и свопы. Пара EURUSD, лот фиксированные 0.1, потому что при таком лоте на всех парах, где вторым идет символ USD 1 пункт (по четвертом знаку после запятой) равен одному доллару. Так удобней сравнивать тесты между собой и с реалом.

Делаем тест с 1.08.2022 по 30.01.2023.

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

И сравниваем результат теста с мониторингом реального счета за тот же период.

 
 
image.png.243b610c87ea87779a2fd856fc0a9d18.png

 

В первую очередь делаем общее сравнение по двум показателям: количество сделок и чистая прибыль в пипсах. На скринах они подчеркнуты красным.

 

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

 

Теперь уже глазками высматриваем какие из сделок тестера отсутствуют на реале. Или наоборот. Удивительно, но есть и наоборот. В перспективе, я так полагаю, не очень сложно автоматизировать этот процесс.

9 сделок было на тесте, но не было на реале. 4 сделки было на реале, но не случилось на тесте.

Сначала разберемся с лишними сделками на тесте:

 
 
Сделка 31 августа.
 
Сделка 31 августа.

 

На реале соответственно ее нет. Но можно посмотреть логи терминала, что же происходило в это время.

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

1. В 00:00:10.272 Робот отправил на сервер брокера лимитный ордер ровно по той цене, которая у нас была и по тесту. 1.00145

2. В 00:00:10. 491 приходит отчет от брокера об открытии лимитного ордера даже на 1 пипс (5 знак после запятой) выше. На 1.00146

3. В 01:00:01.147 мой несработавший лимитный ордер удаляется роботом согласно его логике.

 

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

 

По тестеру сделка была прибыльной. Ага! Брокер тырит мою прибыль! А убыток оставляет мне. И вообще форекс - лохотрон.

 

Идем гневно писать об этом по всем форумам. То есть, если серьезно, мы нашли ситуацию, которая уменьшает нашу прибыль и которая, раз уж она случилась, вполне может и повторяться. Разве не интересно с этим разобраться? Если мы с таким не сталкивались, то выявив такую ситуацию, вполне естественно обратиться к брокеру за разъяснениями:

 

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

 

2. Лимитный ордер на форекс имеет свои дополнительные особенности. При его установке он есть только на сервере у брокера. Когда цена доходит до его уровня, он отправляется на сервер поставщика ликвидности, который первым дал активировавшую его цену. За те миллисекунды, пока ордер будет идти до него, цена может сходить даже ниже, а потом уйти выше уже к моменту его прихода, и поставщик его не исполнит.

 

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

То есть ордер был отправлен брокером поставщику, но тот его не исполнил, отправил обратно реджект.

 

Мы выявили первую причину потери сделок на реале.

 

Причина 1: цена дошла до уровня нашего лимитного ордера, но либо до него не дошла очередь на исполнение у поставщика, либо пока ордер шел до него, цена успела уйти обратно. Таких сделок в рассматриваемый период выявлено 3.

 

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

 

Например я выключаю этого робота во время перехода с летнего времени на зимнее и обратно. Америка и Европа осуществляют переход не одновременно, с интервалом в 1 - 2 недели. В этом роботе я не отладил нормальный учет этого момента, поэтому на всякий случай его отключаю в этот интервал.

 

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

 

Если этого не помнить по прошествии времени это можно проверить по логам терминала и это будет выглядеть так:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

И так:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

Или так:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

 

И просто считаем и анализируем сделки робота в тестере в выпавший с реала период. Таких сделок оказалось 6.

 

Итак, причина 2: в широком смысле - ручное вмешательство или сбои инфраструктуры.

 

Итого мы нашли 9 потерянных сделок, которые присутствуют в тесте, то есть должны были случится по логике робота, но не случились на реале. А также выявили причины их отсутствия. Интересно?

 

Еще интересней, то что в тестере у нас в этот период 59 сделок. Минус 9 потерянных, получается 50. Но в реальной торговле у нас случилось 54 сделки. При том, что руками я не торгую категорически. А в анализ сделки других роботов попасть не могли. Целых 4 лишних сделки.

 
 
Сделка в реале.
 
Сделка в реале.
 
 
Дырка в тестере
 
Дырка в тестере

 

И опять надо лезть в логи терминала:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

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

 

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

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

Сравниваем по времени со сделкой на реальном счете. Совпадение вплоть до секунды, то есть это оно. ordersend error 130. Ошибка в коде, которая иногда почему то показывает себя в тестере, но никак не проявляла себя при реальной торговле. Таких сделок у нас за полгода в тестере одна из 59. Так, не в значай, мы не глядя в код мы обнаружили там ошибку, сравнивая тест с реалом.

 

И еще у нас остаются 3 сделки, которые присутствуют на реале, но отсутствуют в тестере. Снова лезем в лог терминала с реальным счетом, видим такую картину:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

Робот устанавливает отложенный ордер на покупку по цене 1.07913, но брокер устанавливает его на 1 пипс (5 знак после запятой) хуже, 1.07914.

 

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

 

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

 

Как я писал ранее мне гораздо удобнее сравнивать прибыль/убыток в пунктах (4 знак после запятой). По тесту прибыль в пунктах 47.2. Все отсутствующие на реале, но присутствующие на тесте сделки прибыльные. Значит наша прибыль на реале должна быть меньше. Логично же?

 

Но на реальном счете прибыль составила:

 
 
image.png.113624c307105912fd69ec6c854d705e.png

 

62.9 пунктов (4 знак после запятой) ??? То есть на, без малого, 16 пунктов больше. Интересно же разобраться почему?

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

В правой колонке комментарии. В квадратных скобках первым идет проскальзывание при открытии ордера, вторым при закрытии ордера. Плюс означает, что на данную величину ордер был исполнен лучше (для трейдера)), чем было указано в лимитном ордере. И это опять же чудесное свойство лимитных ордеров (не у всех брокеров) на форекс. Также как на централизованных биржах он не может исполниться хуже цены указанной в нем, но на форекс, в отличии от бирж, в случае ecn/stp/ndd вывода ордера на поставщиков, он может быть исполнен лучше.

 

И таких положительных проскальзываний у нас набралось за полгода на почти 16 пунктов (по 4 знаку).

 

Итак ... нахрена, то есть выводы зачем все это было нужно в данном конкретном случае?

 

1. Разобрались почему исчезает часть сделок на реале по сравнению с тестером. Если робот пробует исполнять сделки в ролловер около 24-00 по Москве, то они могут быть не исполнены совсем. Можно улучшить ситуацию поставив время начала торговли, скажем с 24-02. Конкретно в тестах статьи этих бы сделок не было. Это улучшило бы соответствие тестов реалу. Возможно у роботов для бирж могут быть подобные инфраструктурные нюансы. Скажем, время сразу после открытия или перед закрытием торгов.

 

2. Разобрались с особенностями исполнения лимитных ордеров у конкретного брокера. Убедились, что выбор открывать и закрывать ордера только лимитными ордерами является правильным и даже увеличивает нашу прибыль на реале по сравнению с тестером. Мне кажется, что эту фичу можно было бы реализовать и в биржевых роботах.

 

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

 

4. Нашли баг в коде, не влазя в код.

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

 

Главный вывод, это то что у нас и в тестере, и на реале, торгует один и тот же робот, а не две "разные сущности".

Изменено пользователем eBaykal
  • Лайк 8
  • Огонь! 2
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано

не надо торговать в ролловер и 99% всех расхождений реала и теста пропадет при условии торговли адекватным роботом

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)
1 час назад, eBaykal сказал:

 

Спойлер

Часть 2.

 

щщ

 

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

 

1. Все это лохотрон. Пойду на завод.

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

3. Этот робот слил, поставлю другой, у меня еще есть, что сливать.

4. Куплю очень дорогой обучающий курс по программированию роботов, потому, что у меня очень большие запасы времени и денег, чтобы учиться, программировать, и (со значительной, но уже не 100% долей вероятности) ... сливать.

5. Разобраться, где брать точные тиковые данные на торгуемые инструменты. Добиться максимально возможного соответствия тестов реальности, учитывать возможные проскальзывания и все издержки в тестах. Только в таком случае тестирование роботов / торговых стратегий будет иметь смысл.

 

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

 

Разобрались, как скачать нужные котировки именно того брокера у которого мы торгуем. Правильно выставили все комиссии и свопы. Пара EURUSD, лот фиксированные 0.1, потому что при таком лоте на всех парах, где вторым идет символ USD 1 пункт (по четвертом знаку после запятой) равен одному доллару. Так удобней сравнивать тесты между собой и с реалом.

Делаем тест с 1.08.2022 по 30.01.2023.

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

И сравниваем результат теста с мониторингом реального счета за тот же период.

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

В первую очередь делаем общее сравнение по двум показателям: количество сделок и чистая прибыль в пипсах. На скринах они подчеркнуты красным.

 

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

 

Теперь уже глазками высматриваем какие из сделок тестера отсутствуют на реале. Или наоборот. Удивительно, но есть и наоборот. В перспективе, я так полагаю, не очень сложно автоматизировать этот процесс.

9 сделок было на тесте, но не было на реале. 4 сделки было на реале, но не случилось на тесте.

Сначала разберемся с лишними сделками на тесте:

 
 
Сделка 31 августа.
 
Сделка 31 августа.

 

На реале соответственно ее нет. Но можно посмотреть логи терминала, что же происходило в это время.

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

1. В 00:00:10.272 Робот отправил на сервер брокера лимитный ордер ровно по той цене, которая у нас была и по тесту. 1.00145

2. В 00:00:10. 491 приходит отчет от брокера об открытии лимитного ордера даже на 1 пипс (5 знак после запятой) выше. На 1.00146

3. В 01:00:01.147 мой несработавший лимитный ордер удаляется роботом согласно его логике.

 

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

 

По тестеру сделка была прибыльной. Ага! Брокер тырит мою прибыль! А убыток оставляет мне. И вообще форекс - лохотрон.

 

Идем гневно писать об этом по всем форумам. То есть, если серьезно, мы нашли ситуацию, которая уменьшает нашу прибыль и которая, раз уж она случилась, вполне может и повторяться. Разве не интересно с этим разобраться? Если мы с таким не сталкивались, то выявив такую ситуацию, вполне естественно обратиться к брокеру за разъяснениями:

 

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

 

2. Лимитный ордер на форекс имеет свои дополнительные особенности. При его установке он есть только на сервере у брокера. Когда цена доходит до его уровня, он отправляется на сервер поставщика ликвидности, который первым дал активировавшую его цену. За те миллисекунды, пока ордер будет идти до него, цена может сходить даже ниже, а потом уйти выше уже к моменту его прихода, и поставщик его не исполнит.

 

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

То есть ордер был отправлен брокером поставщику, но тот его не исполнил, отправил обратно реджект.

 

Мы выявили первую причину потери сделок на реале.

 

Причина 1: цена дошла до уровня нашего лимитного ордера, но либо до него не дошла очередь на исполнение у поставщика, либо пока ордер шел до него, цена успела уйти обратно. Таких сделок в рассматриваемый период выявлено 3.

 

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

 

Например я выключаю этого робота во время перехода с летнего времени на зимнее и обратно. Америка и Европа осуществляют переход не одновременно, с интервалом в 1 - 2 недели. В этом роботе я не отладил нормальный учет этого момента, поэтому на всякий случай его отключаю в этот интервал.

 

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

 

Если этого не помнить по прошествии времени это можно проверить по логам терминала и это будет выглядеть так:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

И так:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

Или так:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

 

И просто считаем и анализируем сделки робота в тестере в выпавший с реала период. Таких сделок оказалось 6.

 

Итак, причина 2: в широком смысле - ручное вмешательство или сбои инфраструктуры.

 

Итого мы нашли 9 потерянных сделок, которые присутствуют в тесте, то есть должны были случится по логике робота, но не случились на реале. А также выявили причины их отсутствия. Интересно?

 

Еще интересней, то что в тестере у нас в этот период 59 сделок. Минус 9 потерянных, получается 50. Но в реальной торговле у нас случилось 54 сделки. При том, что руками я не торгую категорически. А в анализ сделки других роботов попасть не могли. Целых 4 лишних сделки.

 
 
Сделка в реале.
 
Сделка в реале.
 
 
Дырка в тестере
 
Дырка в тестере

 

И опять надо лезть в логи терминала:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

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

 

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

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

Сравниваем по времени со сделкой на реальном счете. Совпадение вплоть до секунды, то есть это оно. ordersend error 130. Ошибка в коде, которая иногда почему то показывает себя в тестере, но никак не проявляла себя при реальной торговле. Таких сделок у нас за полгода в тестере одна из 59. Так, не в значай, мы не глядя в код мы обнаружили там ошибку, сравнивая тест с реалом.

 

И еще у нас остаются 3 сделки, которые присутствуют на реале, но отсутствуют в тестере. Снова лезем в лог терминала с реальным счетом, видим такую картину:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

Робот устанавливает отложенный ордер на покупку по цене 1.07913, но брокер устанавливает его на 1 пипс (5 знак после запятой) хуже, 1.07914.

 

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

 

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

 

Как я писал ранее мне гораздо удобнее сравнивать прибыль/убыток в пунктах (4 знак после запятой). По тесту прибыль в пунктах 47.2. Все отсутствующие на реале, но присутствующие на тесте сделки прибыльные. Значит наша прибыль на реале должна быть меньше. Логично же?

 

Но на реальном счете прибыль составила:

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

67.1 пунктов (4 знак после запятой) ??? То есть на, без малого, 20 пунктов больше. Интересно же разобраться почему?

 
 
Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
 

В правой колонке комментарии. В квадратных скобках первым идет проскальзывание при открытии ордера, вторым при закрытии ордера. Плюс означает, что на данную величину ордер был исполнен лучше (для трейдера)), чем было указано в лимитном ордере. И это опять же чудесное свойство лимитных ордеров (не у всех брокеров) на форекс. Также как на централизованных биржах он не может исполниться хуже цены указанной в нем, но на форекс, в отличии от бирж, в случае ecn/stp/ndd вывода ордера на поставщиков, он может быть исполнен лучше.

 

И таких положительных проскальзываний у нас набралось за полгода на почти 20 пунктов (по 4 знаку).

 

Итак ... нахрена, то есть выводы зачем все это было нужно в данном конкретном случае?

 

1. Разобрались почему исчезает часть сделок на реале по сравнению с тестером. Если робот пробует исполнять сделки в ролловер около 24-00 по Москве, то они могут быть не исполнены совсем. Можно улучшить ситуацию поставив время начала торговли, скажем с 24-02. Конкретно в тестах статьи этих бы сделок не было. Это улучшило бы соответствие тестов реалу. Возможно у роботов для бирж могут быть подобные инфраструктурные нюансы. Скажем, время сразу после открытия или перед закрытием торгов.

 

2. Разобрались с особенностями исполнения лимитных ордеров у конкретного брокера. Убедились, что выбор открывать и закрывать ордера только лимитными ордерами является правильным и даже увеличивает нашу прибыль на реале по сравнению с тестером. Мне кажется, что эту фичу можно было бы реализовать и в биржевых роботах.

 

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

 

4. Нашли баг в коде, не влазя в код.

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

 

Главный вывод, это то что у нас и в тестере, и на реале, торгует один и тот же робот, а не две "разные сущности".

 

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

Изменено пользователем Rann
Надо
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)
1 час назад, Lozovoy сказал:

не надо торговать в ролловер и 99% всех расхождений реала и теста пропадет при условии торговли адекватным роботом

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

Изменено пользователем Rann
  • Лайк 4
  • Огонь! 2
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано
16 часов назад, eBaykal сказал:

59 в тесте против 54 на реале

56 же на реале, судя по скриншоту?

 

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)
7 часов назад, Rigal сказал:

56 же на реале, судя по скриншоту?

 

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

 

Поправил. Старые скриншоты были с пользовательского анализа с неправильной конечной датой. Пара лишних сделок забралась.

Если кто-то вдруг увидит ошибки сообщайте. Буду очень благодарен. 

Изменено пользователем eBaykal
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)
1 час назад, ArtemkaRu сказал:

Правда тест идет фиксированным спредом 40 пунктов. Как можно протестить с учетом реального спреда в ролловер?

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

В МТ5 и вовсе по умолчанию доступна история тиков вашего брокера с момента запуска им МТ5. Обычно довольно дырявая, к сожалению.

Изменено пользователем Rigal
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано
16 часов назад, ArtemkaRu сказал:

Триальная версия ТДС не доступна при регистрации из РФ. Вполне возможно, что и платная тоже будет недоступна. Я, как вариант, проверил ночной советник следующим способом, лимитный ордер просто снимается перед самым ролловером, минут за 5, поскольку вероятность его срабатывания после ролловера резко уменьшается ввиду повышения спреда. Такой результат тестирования будет вполне объективным.

не будет. Кроме открытия у вас есть еще и закрытие.

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

Тестирование ночников в штатном тестере стратегий с любым спредом - это самообман.

Попросите кого-нибудь прогнать тот же алгоритм в ТДС и удивитесь.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано
47 минут назад, ArtemkaRu сказал:

Тест ночного советника, где все лимитные ордера снимаются перед ролловером, то есть срабатывающих после 00:00 ордеров в тестах нет. Первый вариант тест постоянным лотом 0.1. Второй вариант тест лотом 20%. То есть при начальном депозите 1000, сделки открываются лотом 0.2.  Третий вариант тест лотом 10%. Последняя оптимизация проводилась в 2021г.  Тест с начала 2020 года, то есть период чуть больше 3х лет.

 

2023-02-23_154639.thumb.jpg.ca285a68726b4a34df5657feda2443ff.jpg2023-02-23_154627.thumb.jpg.5e525974910e30bc9e74df05c860d8b8.jpg

2023-02-23_155607.jpg

2023-02-23_155551.jpg

2023-02-23_160457.jpg

2023-02-23_160511.jpg

Вы, конечно, можете продолжать - но информативность этого монолога для участников форума нулевая.

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

Во-вторых, кривая совершенно типична для ночника в тестере стратегий МТ4. Тот же генерик выдаст похожую. Можно куда более интересную наоптить.

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

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано (изменено)

Моя практика подсказывает, что диверсификация все же имеет смысл, особенно если парк советников регулярно пополняется/вычищается.

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

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

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

Итак, поехали:

Robotron: не сезон ему вообще, но у него бывали в прошлом периоды очень удачных забегов, держу

Спойлер

image.png.b4e45099d4d2c9661ea98ba5b6dca04e.png

image.png.a1ddd9bcf3fa17e7d267fab17c9109b3.png

Waiting Night: не идеально тоже, держится на плаву, в прошлом куда интереснее бывал результат

Спойлер

image.png.e59e0199715ce9cd26b0947b030d3719.png

image.png.1b9622d1eb79277b937f68b783eaf9bc.png

ESP: весьма себе позитивненько

Спойлер

image.png.4b1459f587dce5887813cb7f1815e3da.png

image.png.09069ccdce1dae890d1736c80cbb3c17.png

Night Hunter: был у него очень позитивный забег, а с ноября приходится преимущественно терпеть

Спойлер

image.png.3401fd25bc85e05b8517fa3a9e1db4a8.png

image.png.7201bebb5ebdd4f7df66af0fbab8ba40.png

Red Hawk: ну очень похоже на Night Hunter, вид сбоку. При этом предыдущий год у него был почти безупречен, а прибыли и убытки по парам выглядят совсем иначе

Спойлер

image.png.923e4a43b61469b358c032a613eb9577.png

image.png.877a95f6f37d2d2307f7bf617592e455.png

Night Vision: не фонтан, в плюсе, тоже совсем иное распределение прибылей и убытков по парам

Спойлер

image.png.016c0815a858c548093a483859f58cdf.png

image.png.7df89042f9c2aa9c1097b70b5ca057e8.png

 

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

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

 

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

Это подход, позволяющий максимизировать шанс оказаться в прибыли на длинной дистанции.

Если хочется разогнать - тут нужно ставить на зеро и педаль риска в пол :) 

Изменено пользователем Rigal
  • Лайк 4
  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневник трейдера] Где лось? Или почему алгот… Опубликовано

А только лонги почему-то, я смотрю?

Это потому, что свечки по биду строятся?

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...