Блог им. gemmaster
По мотивам ответов на вопросы известного (как минимум мне) алготрейдера из Краснодара Алексея Вана.
«Тесты есть тесты, реал есть реал, это разные совершенно сущности. И они порой не соприкасаются.… У нас практически все один в один идет, но процентов 10% сделок действительно отличаются. То не откроются, то откроются… Просто мне эта метрика не интересна, сравнивать сидеть тестер с реалом. ...»
Цель: понять какой смысл в сверке тестера с реалом.
Логика алготрейдинга, как я ее понимаю: читаем книжки, пялимся на графики, анализируем статистику, ковыряемся ... плюем в потолок. В итоге у нас появляется гипотеза, что некий алгоритм открытия и закрытия сделок на конкретных инструментах должен нам приносить прибыль. Мы забиваем этот алгоритм в код и делаем тест на исторических данных. Этот тест является проверкой нашей гипотезы и на основании его принимаем решения применять ли этот алгоритм на реале.
На основании теста мы ставим робота на реал, но дальше нам почему то не интересно, а может наш тест вообще не имеет никакого отношения к реальности. Разные сущности? 10%? Один «незапланированный» лось может убить весь депозит. Вы торгуете трендовыми роботами? Одна сделка может сделать прибыль за год. А если именно она не откроется? В тесте будет, а на реале нет. Не интересно?
На минуточку, если бы астрономам и математикам XIX века было бы не интересно сверять тесты с реалом не был бы открыт Нептун.
Ок Хорошо (импортозамещение). Попробуем позаниматься такими проверками. Ведь лично мое, крайне скромное ИМХО, что если тесты не соответствуют реалу, либо мы не в курсе, что есть разница, какая она, и почему, то все тесты вместе с алгоритмами можно выбросить на помойку. А мы по итогу, много лет очень высокоинтеллектуально и с очень умным видом впустую удовлетворяем свой мозг.
Вот появился у нас робот. Для начала нам вообще по фиг, мы просто не в курсе, что надо заморачиваться по тестированию. Вопрос просто не стоит такой, что реал может отличаться от теста и тестируем робота со ста баксов на наших любимых свечных данных (мы же считаем, что этого достаточно, а искать тиковые данные нам просто в лом):
И это за полгода. Делаем лэндинг и впариваем его пенсионерам, и домохозяйкам по штуке баксов за копию. Ставим его на свои личный реал и начинаем выбирать яхту, и недвижимость в Дубаях.
Через полгода получаем результат (период и теста, и реала один и тот же, у нас машина времени)):
Как-то прям сильно скромнее. В этом месте от товарищей, которые начинали сливать на форексе, а теперь уже с более умным видом продолжают сливать в других местах слышится гул: «Фууэ, форекс лохотрон». Ну, да — да. Форекс лохотрон, а на биржах просто «разные сущности»)).
Первый вывод: результаты тестов робота могут очень сильно отличаться от его работы на реале, хорошо бы разобраться почему есть различия и в какую они сторону, чтобы потом мучительно не сожалеть о потраченных годах на создание роботов прибыльных только в тестере.
Продолжение следует ...
МТ4-5 дают полную иллюзию.))
Почему иллюзию? Я никогда не работал в МТ — любопытно.
Другое дело, что слабый эффект (предположительно положительный), на который тестировали, этим убьётся. А от сильного что-то да останется.
Можно тестировать на реальных тиках, каждый из которых имеет время с точностью до миллисекунды и информацию о ближайших бид и аск. Трудно придумать что-то точнее. Ну кроме реальной торговли.
могу вас расстроить. ваш тест не на реальных тиках, а на смоделированных.
ага, то есть данные гавно не понятно откуда, тестер гавно не стандартный, зато выводы вселенского масштаба. все как обычно. удаляюсь из темы, успехов :)
«удаляюсь из темы, успехов :)»
Флаг в руки и ветра в жо..
Этот пост и следующий в принципе об этом, что такую «потерю точности» хорошо бы контролировать.
Правильно ли понял ты тестишь ботов на форексе? Или?
Но насколько понимаю, ты торгуешь против своего дилера, заявки только рыночные, проскальзывания и спреды могут быть суровыми, поэтому и нюансы есть.
Понятно на бирже тоже их хватает, может подскочит Активный инвестор и прояснит про подковерные игры — но это уже другая история.
З. Ы. Те форекс брокеры, что в основном на слуху действительно дилеры, работающие по кухонному принципу. Но это не обязательно всегда плохо для трейдера.
«Всем всего хорошего, кто дочитал это пост до конца.» — вот не доверяю я таким утверждениям. Вы четко выше отметили понятие «толпа» — толпа -это ж не количество человек, это ж количество денег, которыми они ходЮт?
Но также и важна точка входа, чтобы не превышать риски или уменьшать размер позы в тех же целях.
Рано или поздно мы все умрем, а торгуя на евродолларе без плеча мы умрем раньше от скуки. Никто же не заставляет использовать все плечо по максимуму на всю котлету. Это всего лишь инструмент.
1.5% по евродоллару это 150 пунктов (по 4-му знаку после запятой). Дневной ATR (период 20) сейчас 84 пункта. У меня стоп по этому роботу (в посте) 18 пунктов. За полгода срабатывал на реальном счете 3 раза. Плечо выше чем 50:1. Депозит не умер, и даже в плюсе.
Не следует манкировать выполнением домашней работы.
«манкировать» — Фигасе. )) Пришлось даже погуглить, что означает). Думал матом меня кроете.)
В начале ссылка на видео с тайм кодом. Вот прям так и сказал.
1. Торговля по историческим данным
2. Торговля на он-лайн данных в режиме эмуляции
3. Реальная торговля
После начала реальной торговли этот инструмент позволил легко сравнивать, как ведёт себя торговый движок на истории и в реальности.
Выводы были такие:
1. Если сделка есть в истории, и нет в реальности или наоборот — это баг в коде. Хорошо написанный код, оттестированный, без ошибок, работающий на стабильном хосте и со стабильной связью, показывает вход и выход в реальной торговле в те же моменты, что и на истории. Когда я отловил все баги, совпадение стало 100% по временной точке входа. Задержка могла быть в несколько секунд, но вход и выход в реальной или эмуляционной торговле был в те же свечи, что и на истории.
2. Конечно, эмуляционная и реальная торговли показывали проскальзывания относительно торговли на исторических данных. И это проскальзывание было специфично для инструмента. Для некоторых — большей частью в плюс, для некоторых — наоборот, в минус, а на некоторых его почти не было.
3. Поскольку было написано много кода и тестировать его долго и сложно, если пропускать всё через свою голову и анализировать каждую строчку, то я решил, что лучший способ тестирования — это убедиться, что сделки реальные и сделки на истории в режиме тестирования совпадают. Если алгоритм сложный, то это действительно самый лучший способ проверить и себя, и код, и робота.