Блог им. gemmaster

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Продолжение следует ... 

Где лось? Или почему алготрейдеры все таки сливают. Часть 2.
37 комментариев
Сливают не алготрейдеры, а кретины, которые считают себя алготрейдерами.)
МТ4-5 дают полную иллюзию.))
avatar
3Qu, я думал ты уже отдыхаешь...
Почему иллюзию? Я никогда не работал в МТ — любопытно.
avatar
3Qu, иллюзия это тестирование на свечных данных.
avatar
Andrei Shevelev, непониманием данных этот текст написан.
avatar
svgr, «непониманием данных этот текст написан.» Этот?
avatar
Andrei Shevelev, без юмора. Свеча — всего лишь упаковка нескольких тиков, сдвиньте входы и выходы на одну свечу вперёд после той, на которой получили сигнал при свечном тестировании. Получится фактически тестирование по тикам, но с запаздыванием на количество их в свечу или чуть более. Поэтому — не иллюзия.
Другое дело, что слабый эффект (предположительно положительный), на который тестировали, этим убьётся. А от сильного что-то да останется.
avatar
svgr, это примерно, как пытаться выправить отражение в кривом зеркале другим кривым зеркалом с поправкой на кривизну изначального зеркала относительно первого. Результат будет еще одно кривое изображение.
Можно тестировать на реальных тиках, каждый из которых имеет время с точностью до миллисекунды и информацию о ближайших бид и аск. Трудно придумать что-то точнее. Ну кроме реальной торговли.
avatar
Andrei Shevelev, 
могу вас расстроить. ваш тест не на реальных тиках, а на смоделированных.
Дмитрий Овчинников, не получится). Я знаю, что в стандартном тестере мт4 тики моделируются по свечам м1. У меня не стандартный тестер. И данные не с терминала закачаны.
avatar
Andrei Shevelev, 
ага, то есть данные гавно не понятно откуда, тестер гавно не стандартный, зато выводы вселенского масштаба. все как обычно. удаляюсь из темы, успехов :)
Дмитрий Овчинников, "гавно" к деньгам) 

«удаляюсь из темы, успехов :)»

Флаг в руки и ветра в жо..
avatar
Andrei Shevelev, основной критерий — соотношение потери точности при переходе от тиков к свечам и выигрышем во времени на тестирование. У меня в алгоритмах, к примеру, потеря несущественная, а времени много не надо, и могу делать по любым наборам данных.
avatar
svgr, «соотношение потери точности» Если потеря точности, точно контролируется, делается проверка этого, хотя бы по выборочным данным, то почему бы и нет.
Этот пост и следующий в принципе об этом, что такую «потерю точности» хорошо бы контролировать.
avatar
 Начало статьи понял, а что там форекс — не форекс уже не догнал.
Правильно ли понял ты тестишь ботов на форексе? Или?
avatar
Алексей, и тестю ) и использую. 
avatar
Andrei Shevelev, я на форексе никогда не торговал — думаю, ничего не упустил.
Но насколько понимаю, ты торгуешь против своего дилера, заявки только рыночные, проскальзывания и спреды могут быть суровыми, поэтому и нюансы есть.
Понятно на бирже тоже их хватает, может подскочит Активный инвестор и прояснит про подковерные игры — но это уже другая история.
avatar
Алексей, «ты торгуешь против своего дилера» форекс брокеры очень разнообразны, работают по разным схемам. Я торгую через брокеров выводящих сделки на поставщиков ликвидности, объединенных в ECN систему. 
З. Ы. Те форекс брокеры, что в основном на слуху действительно дилеры, работающие по кухонному принципу.  Но это не обязательно всегда плохо для трейдера.
avatar
Andrei Shevelev, я даже слова такого боюсь — поставщики ликвидности. Мне в нем сразу заинтересованность видится или нет?
avatar
Алексей, Да, нет же, они целиком и полностью альтруисты)). это как со страховой компанией — Вы им риск, они Вам ликвидность. Только торгуя (страхуясь) через ecn агрегатор, ваша страховая компания будет не в курсе, что именно Вам будут идти больше страховых выплат. Ведь общая масса «застрахованных» лиц все равно будет в минусе. Поэтому все всех устраивает.
avatar
Andrei Shevelev, ну так масс-сознание рулит!
avatar
Алексей, «заявки только рыночные, проскальзывания и спреды могут быть суровыми, поэтому и нюансы есть.» Об этом будет во второй части.

avatar
Andrei Shevelev, это примерно как низколиквидный фьюч на моське торговать — те же яй… а только вид сбоку.
avatar
Алексей, «те же яй… а только вид сбоку.» Вообще другие и с другой стороны.  И не яй… Вы на низколиквидных яй… фьючах на моське можете зайти на несколько миллионов, не выбрав весь стакан? А там можно даже не сдвинув цену.
avatar
Andrei Shevelev, честно скажу — не пробовал ни там (на низколиквидных), ни там (на форексе — причина выше). Про низколиквидные — я понимаю размер позы,  которая гипотетически (не было попадосов, чтоб проверит в натуре) способна быть закрыта достаточно быстро, без размазываний, ну или с минимальными.
«Всем всего хорошего, кто дочитал это пост до конца.» — вот не доверяю я таким утверждениям. Вы четко выше отметили понятие «толпа» — толпа -это ж не количество человек, это ж количество денег, которыми они ходЮт?
avatar
Губят людей не алгоритмы, а плечо. С плечом 50:1 и больше, рано или поздно сольет любой алгоритм. А без плеча (т. е. позиция по номиналу не больше депозита) на евродолларе никто из совершающих не более 1-й операции в день не сольет 100%, даже если будет стараться.
avatar
А. Г., согласен — плечи сами по себе опасны. Учитывая жадность и необходимость (??) сделать 100% в месяц — там и 50* пойдут в ход.
Но также и важна точка входа, чтобы не превышать риски или уменьшать размер позы в тех же целях.
avatar
А. Г., «Губят людей не алгоритмы, а плечо. С плечом 50:1 и больше, рано или поздно сольет любой алгоритм.» 
Рано или поздно мы все умрем, а торгуя на евродолларе без плеча мы умрем раньше от скуки. Никто же не заставляет использовать все плечо по максимуму на всю котлету. Это всего лишь инструмент.
avatar
А. Г., 50:1 это сразу примерно 1,5% хода до цены ликвидации. То есть 'не рано или поздно', а 'сегодня же'.) Или в течение пары дней, если угадал пару раз подряд.
avatar
svgr, «50:1 это сразу примерно 1,5% хода до цены ликвидации.» 
1.5% по евродоллару это 150 пунктов (по 4-му знаку после запятой). Дневной ATR (период 20) сейчас 84 пункта. У меня стоп по этому роботу (в посте) 18 пунктов. За полгода срабатывал на реальном счете 3 раза. Плечо выше чем 50:1. Депозит не умер, и даже в плюсе.  
avatar
Andrei Shevelev, а я по крипторынку написал. Там 5-10% хода в обе стороны практически каждые сутки.
avatar
svgr, рынки очень разные. То что подходит к форекс, мало применимо к крипте. Тем внимательней нужно относится к тестированию и оптимизации.
avatar
Регулярная сверка позиций и результатов бумажной торговли и реальной — неотъемлемый инструмент работы алго. 
Не следует манкировать выполнением домашней работы.
avatar
SergeyJu, Точняк.

«манкировать» — Фигасе. )) Пришлось даже погуглить, что означает). Думал матом меня кроете.)
avatar
он что, реально так сказал?
avatar
Андрей К, 
В начале ссылка на видео с тайм кодом. Вот прям так и сказал.
avatar
Andrei Shevelev, спасибо, глянул )
avatar
Я до начала реальной торговли строил два графика эквити по сделкам, а после начала реальной торговли добавил третий.
1. Торговля по историческим данным
2. Торговля на он-лайн данных в режиме эмуляции
3. Реальная торговля

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

Выводы были такие:
1. Если сделка есть в истории, и нет в реальности или наоборот — это баг в коде. Хорошо написанный код, оттестированный, без ошибок, работающий на стабильном хосте и со стабильной связью, показывает вход и выход в реальной торговле в те же моменты, что и на истории. Когда я отловил все баги, совпадение стало 100% по временной точке входа. Задержка могла быть в несколько секунд, но вход и выход в реальной или эмуляционной торговле был в те же свечи, что и на истории.
2. Конечно, эмуляционная и реальная торговли показывали проскальзывания относительно торговли на исторических данных. И это проскальзывание было специфично для инструмента. Для некоторых — большей частью в плюс, для некоторых — наоборот, в минус, а на некоторых его почти не было.
3. Поскольку было написано много кода и тестировать его долго и сложно, если пропускать всё через свою голову и анализировать каждую строчку, то я решил, что лучший способ тестирования — это убедиться, что сделки реальные и сделки на истории в режиме тестирования совпадают. Если алгоритм сложный, то это действительно самый лучший способ проверить и себя, и код, и робота.
avatar

теги блога Andrei Shevelev

....все тэги



UPDONW
Новый дизайн