Михаил Понамаренко
Михаил Понамаренко личный блог
30 октября 2019, 11:07

Почему я ушёл от бектестинга и стал виртуальным трейдером

Почти 7 лет (из 14-ти) не пользуюсь бектестингом. Семь лет назад, я полтора года тестировал системы в бектесте и на реальном рынке одновременно. Результаты оказались неожиданными. Моя система, с бектестовой прибыльностью = 1.2, превратилась в убыточную = 0.85. При этом система продолжала быть прибыльной на бектесте. Я сравнивал результаты бектеста и реальной торговли и отмечал, что я делал неправильно. Делюсь многолетним опытом.

— Если мы заложили комиссии правильно, это только часть издержек. Основная часть убытка спред. Откройте любой инструмент, купите и сразу продайте его по рыночным ценам. Увидите, что позиция оказалась убыточна. А большая доля убытка из-за спреда.

— Если закладывать 2-3 спреда в издержки и результаты будут более реалистичными. Но, всё ещё, могут остаться оптимистичными. Точно об этом знать мы не сможем.

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

Реальный рынок. У Вас цель войти на пробой в покупку. Кто-то из участников выкинул большой объём на покупку в стакан и перенёс его за 1мс на 10 пт. выше вашего условия на вход. Ваш робот среагировал на этот сигнал и через 600мс. заявка оказалась на рынке. Робот вошёл на 10 пт. (на 6 спредов) хуже, а тестер вошёл по цене условия.

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

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

Проскальзывание – если у Вас большой объём (>1), то результаты будут ещё хуже. Например, вы работаете 10-ю лотами. Цель войти на пробое цены 100,10.

Представьте стакан:

Тип     Цена   К-во

Аск 100,20    8

Аск 100,15    1

Аск 100,12    2

Аск 100,10    3

Бид …

Мы вошли в покупку по цене: (100,10*3+100,12*2+100,15*1+100,20*4) / 10 = 100,149

Если бы мы торговали 1 контрактом, то смогли бы войти по 100.10-100.12, среднее 100.11

Заметили разницу: 100.11 vs 100,149?.. А у тестера будет 100.10!

Чем больше собственный торговый объём, тем больше нужно закладывать спредов в издержки.

 

Какие альтернативы?

Тестировать на демо-счетах.

— Котировки на демо-счетах сильно отличаются от реальных. У меня есть контртрендовые роботы, которые стабильно зарабатывают 5-10% от ГО в день на демо-счёте, но стабильно сливают на реальном счёте.

— На демо-счёте Ваше присутствие никого не волнует. Если Вы выставили заявку на демо, её никто не будет фронтранить (выставляться впереди), если Вы на реальном рынке – ждите конкурентов в стакане, которые будут стараться обойти вашу заявку.

Тестировать на реальном рынке с виртуальными позициями. Пожалуй, лучший способ тестирования. Почти все системы становятся убыточными. Реально спускает с небес после тестеров типа MetaTrader, TS LAB, AmiBroker, WelthLab и т.д. Вы входите именно по тем ценам, которые даёт рынок. Все тормоза брокера, робота — Ваши, т.к. это тот же робот, со всеми недостатками и рыночными ценами. Тормознутый, ленивый и совершенно бестолковый в моменты сильных движений на рынке. Недостаток только в том, что здесь отсутствует эффект присутствия на рынке. Если Вы, к примеру, активно используете фронтранниг или выкидываете другие фокусы в стакане, то такие системы не подлежат тестированию без реального рынка от слова «совсем».

Не спешите зарабатывать, точнее сливать. Сделайте аналогичную виртуальную систему, которая будет выкидывать Ваши сделки не на рынок, а в файл. Такую «песочницу» можно сделать на базе вашей любимой системы технического анализа (я не помогу, если думаете, что это намёк). Вы можете продолжать пользоваться бэктестом, это может помочь найти прибыльные торговые системы. Но тестировать их нужно ВИРТУАЛЬНО, прежде, чем выпускать на реальный рынок. Уважаемые коллеги трейдеры, этот совет много стоит (реальных Ваших съэкономленных рублей). Я перестал сливать и ищу прибыльные торговые системы бесплатно, хотя ранее успел слить до 70т.р.

73 Комментария
  • TihiyDon
    30 октября 2019, 11:37
    И систему span тоже не учитываем…
  • Aleksey Smirnoff
    30 октября 2019, 11:43
    У меня самодельный тестер, использует тиковые данные и стакан. Может легко учесть проскальзывание, потому как видит встречные цены-объёмы. Да и вообще, на 99% тесты соответствуют реальной торговле.
    Вместо «виртуальной торговли» лучше запустить минимально возможный сайз, больше ясности принесёт
  • chizhan
    30 октября 2019, 11:50
    ну наконец то омерику открыл 
  • MetaQuotes Software
    30 октября 2019, 11:56

    Попробуйте использовать в MetaTrader 5 режим «Задержки» в мс, что дает очень близкий к реальности результат со всеми проскальзываниями.



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

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

    Достаточно поставить 50-100 мс задержки, чтобы увидеть как меняется результат вплоть до убытков. Это быстро отрезвляет и дает возможность сделать более робастого робота.

    Тестер у MetaTrader 5 постоянно развивается и вот как выглядит выбор вариантов сейчас:

    На видное место вынесен раздел «Стресс-тест с задержками», чтобы показать трейдерам правильное направление исследований.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн