Блог им. LevNNN

Пример разбора трех вариантов тестирования алгоритма на исторических данных OHLC

    • 11 февраля 2021, 20:06
    • |
    • LevNNN
  • Еще

Всем добрый вечер!

В последнее время на форуме было опубликовано несколько статей по поводу тестирования алгоритмических стратегий, приблизительно следующего содержания — «На тестах все хорошо и алгоритм дает прибыль +100%, в реальной жизни все плохо — и алгоритм дает убытки -100%».В этом посте я попытаюсь вставить свои «пять копеек», почему так случается. С торговлей на бирже знаком с 1994 года. Не скажу, что весь этот опыт был удачный, скорее совсем наоборот и поэтому с 2016 года занимаюсь разработкой алгоритмических стратегий, ну или по простому — пишу торговый собственный робот. В реальных торгах участвую, но только с помощью собственного робота. Разработка роботов — это не бизнес, а скорее хобби, пишу для себя. Торгую на ММВБ через Quik. Робот написан на C#, для тестирования использовал данные с сайтов finam и pitrading (покупал).
Так как я сам разработчик кода, то мне легко внести небольшие коррекции в свой же алгоритм и провести небольшой эксперимент. Я взял исторические минутные данные (OHLC) по трем инструментам — Apple, AUD/USD и XAUG/ USD за последние 4 года и рассмотрел три варианта заключения сделок при тестировании:

Вариант Average. Мы заключаем сделки ( продажа или покупка) по средней цене — (Open + High + Low + Close) / 4;

Вариант Best. Мы покупаем всегда по Low, а продаем по High.

Вариант Worst. Мы покупаем всегда по High, а продаем по Low.

Интуитивно понятно, что вариант Best должен дать самую хорошую доходность, а вариант Worst — худшую. Так и получилось. Результаты тестирования я свел в таблицу и получилось следующее :

Apple      Average  Best      Worst     Market
2017       28.03     38.7      16.62     46.32
2018       5.79       43.29    -33.52   -7.26
2019       61.32     97.87    23.63     85.87
2020       84.07     174.05   -7.23     70.68


AUD/USD Average Best      Worst     Market
2017       3.5         8.65      -2.08     7.98
2018       3.2         5.61      -3.68     -9.68
2019       12.84     16.24    10.69    -0.37
2020       29.34     47.56    8.71       9.86

XUG/USD Average Best      Worst     Market
2017        4.07      30.22    -10.2     6.36
2018        0.87      8.63      -8.2       -5.31
2019        8.64      27.5      -7.94     15.18
2020        85.25    252.56   -99.21   48.28

В таблице отражены доходности в процентах, положительно значение соответствует прибыли, отрицательное — убыткам. Для справки я также привел как изменялся рынок ( колонка Market) за отчетный год. При тестирование предполагалось, что Вы отдадите комиссию в размере 0.05% брокеру с каждой сделки.

Результаты в принципе получились ожидаемые. Алгоритм Best всегда лучше Average, и соответственно Worst хуже всех. Понятно, что в реальной жизни Вам никогда не удастся заключать сделки по алгоритму Best. Но я думаю, что Вы не настолько неудачны, чтобы заключать сделки по худшей цене, как в алгоритме Worst. При алгоритме Worst лучше всего ведет себя австралийский доллар — в целом алгоритм остается прибыльным даже при самом худшем сценарии, на серебре при алгоритме Worst Вы разоритесь, а на Best озолотитесь.

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

Всем удачи в торгах!

761 | ★2
13 комментариев
Правильное тестирование только вариант worst.
я все тестирую только так, если при самом худшем раскладе ТС плюсует, значит плюс будет по любому, т.к. даже хронический неудачник не способен всегда покупать по максимальной цене и продавать по минимальной.
avatar
про pitrading не знал
что есть такое

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

т.е ты как бы подглядываешь в будущее
avatar
ves2010, поэтому делай так
заявки тестишь по цене опен
а затем считаешь к=количество свечей без теней/общее количество свечей

число проблемных сделок= всего сделок*k
ухудшение результата тестов= число проблемных сделок* средний размер свечи

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

но это тоже сложно… обычно уже торгуешь ботом хотяб пол года и видишь что как исполняется просто сравнивая расчетную и реальную эквити и просто считаешь проскальзывание
avatar
Наверное мне следовало более  подробно рассказать про алгоритм, чтобы убедить, что никакого заглядывания в будущее нет.  Пока очень кратко  про алгоритм -  я предварительно  строю  таблицу сделок,   а потом проверяю -  попадает эта цена в интервал или нет. Т.е.   есть какой то инструмент, который сейчас торгуется по 100 руб.  И я говорю алгоритму, что  буду покупать по 90, а продавать по 110.
При тестирование на истории я проверяю -  попадет моя цена в интервал OHLC  или нет. А если попадает, то я  должен выбрать по какой цене я совершаю сделку. Как то так, если очень кратко.  
И в этом посте я просто показал, как будет зависеть результативность алгоритма  от выбора цены внутри свечи OHLC.
avatar
LevNNN, да уж, подробностей для серьезного обсуждения маловато.
Впечатление, что это ни о чём — по той причине, что способов применения средней цены миллионы, а вы базируетесь на каком-то одном собственном представлении этой темы.
И впечатление, что о других способах вы даже не подозреваете.

В этом ваша главная беда, вам бы поучиться трейдингу…
с вашим огромным опытом (на год больше моего).
Хотя бы Элдера почитайте, «киношки» его посмотрите.
avatar
VladMih, Это моя первая проба пера, так что уж сильно не критикуйте!)  Я пишу робота — мне это интересно, это скорее «хобби».  Буду дальше продолжать делиться результатами. Это еще далеко не все, что я хотел сказать.  Книжки Элдера наверное хороший совет для новичков. Но мне это не зачем,  у меня свой взгляд на  всю биржевую торговлю!) Хотя признаюсь, что лет 15 назад что -то у Элдера читал, но не впечатлило.
Я ставлю своей задачей — создать торгового робота,  который будет давать  стабильный плюс и ищу закономерности на этом рынке. 
avatar
LevNNN, правильно, 15 лет назад я тоже не сильно впечатлился Элдером, хотя признал уже тогда, что «в этом что-то есть». Сейчас уважаю его больше, чем 15 лет назад, а вы остались на том же уровне развития.

Еще и инфантильный страх конструктивной критики — это говорит о том, что вам здесь писать разве что ради того, чтобы кто-то посоветовал что-нибудь по коду. В других смыслах вам посты здесь на пользу не пойдут. По крайней мере от меня вы критики больше не увидите. Читайте тех «невби», которые будут вас хвалить.

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

Пишу не в обиду, а как доктор.
На доктора ведь не обижаются за диагноз? Впрочем… всяко бывает.
avatar
VladMih, Я не обижаюсь, на Вас ,  я просто пытаюсь понять, что я донес не так до читателей. Я рассказываю про своего робота — Вы мне советуете почитать Элдера. Зачем! Мне это не интересно. Мне интересно разработать что-то свое.  И хочу просто рассказать читателям о том, чем я занимаюсь.  Если Вы хотите сказать, что всем чем я занимаюсь — это «полная фигня», я с Вами спорить не буду — это Ваше право, но звучит это бездоказательно. 

Наверное было бы интересно и продуктивно,  подумать о том, как создать что — то принципиально новое и это пообсуждать?!
 
P.S. Да Вы, правы я не торгую руками, можете не называть меня трей
дером. За меня торгует робот, который я сам разработал.

Сегодня был удачный день  и оба инструмента, которыми я торговал сегодня -  сработали в плюс 145 тыс. р. на дневной и 57 тыс р. на вечерней. Могу привести доказательства!)

avatar
LevNNN, VladMih, а давайте подумаем — почему крупные конторы, вроде инвестиционных фондов с их обширными ресурсами и возможностью привлекать самых талантливых специалистов, до сих пор не создали таких вот роботов, стабильно торгующих в плюс? В чем ваше преимущество перед ними?
avatar
LevNNN, не читайте элдеров, они не умеют торговать, они просто околорыночники.
avatar
Да, кстати,  если кто — хочет узнать  больше подробностей про робот — пишите в личку, расскажу более подробно.  Я открыт для обсуждений.
avatar
 При моделировании обычной трендовой торговли обычно закладывают два вида транзакционных издержек. Суммарную комиссию брокера и биржи, а также проскальзывание. Проскальзывание для 1 лота можно взять в 1 средний спред между бид и офер. Чем больше объем, тем больше проскальзывание.
Сделки считают по цене принятия решения. 
Ваши усреднения опасны, могут вводить в заблуждение. А уж тем более — расчет по самой благоприятной цене.
avatar
SergeyJu,  Про проскальзывание — это отдельная большая тема, скорее всего я расскажу про   то как я пытаюсь решить эту проблему в отдельном  посте.  
Никого не хотел вводить в заблуждение. поэтому сразу скажу, что рассчитывать надо на самый худший вариант — Worst.  Если он дает стабильный минус,  то вступать в  «бой» не надо. У меня есть алгоритмы, которые дает  стабильный плюс даже  при  алгоритме Worst, но об этом я расскажу чуть позже.

avatar

Читайте на SMART-LAB:
Фото
Группа «Аэрофлот» опубликовала операционные результаты за 2025 год
Друзья, начинаем наш год на Smart-Lab с подведения операционных итогов за 2025 год. ✈️ Группа «Аэрофлот» успешно выполнила цель по поддержанию...
Фото
Не оливье единым: итоги 2025 года и новая иерархия на рынке готовых салатов
Российский рынок готовых салатов в 2025 году продемонстрировал смену лидера: традиционный фаворит «Оливье» уступил первое место «Сельди под...
Рынок США: Обзор и прогноз на 14 января. Инвесторы ждут вердикт по тарифам
Сегодня Верховный суд США может объявить решение относительно законности большинства установленных президентом Дональдом Трампом импортных пошлин....
Фото
Хэдхантер. Ситуация на рынке труда в декабре идет ко дну - хуже не было никогда
Вышла статистика рынка труда за декабрь 2025 года, которую Хедхантер публикует ежемесячно, что же там интересного: Динамика...

теги блога LevNNN

....все тэги



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