Введение
В данной статье приведено тестирование свечной модели CandleMax в программе Wealth-Lab. Я уже приводил описание и тестирование этой свечной модели на исторических данных по 32 наиболее ликвидным акциям МосБиржи с 22.09.1997 (начало торгов на ММВБ) и по 29.12.2018.
Вот эта статья:
Тестирование рабочей свечной модели на исторических данных
То тестирование было выполнено в Excel и вызвало ряд дополнительных вопросов, в частности некоторые читатели хотели увидеть эквити системы, а также получить больше статистической информации.
Скорее всего, эти пожелания так и остались бы без ответа, так как систему я не продаю, а для себя все давно уже решил и оттестировал, если бы не один комментарий к той моей статье. Этот комментарий был написан блогером JC_TRADER и содержал ссылку на тестирование моей системы в программе Wealth-Lab. Вот эта ссылка: https://jc-trader.livejournal.com/1628589.html
Пройдя по этой ссылке, я был просто обескуражен. По итогам проведенного JC_TRADER тестирования, система CandleMax позорно показала отношение прибыльных сделок к убыточным как 50.92% к 49.08% при отношении стоп-лосса к тэйк-профиту как 1:1. Соответственно, не могло быть и речи о том, чтобы использовать такую убогую систему, о чем и написали читатели блога JC_TRADER.
Разумеется, я не мог оставить без внимания результаты такого исследования. Тем более что я закодировал данную систему еще в 2015 году и, торгуя по ней, мой робот получил 136 прибыльных сделок против 91 убыточной. Значит, что-то было не так или в программе Wealth-Lab (что маловероятно) или в особенности тестирования. Разбор значительно облегчило то, что JC_TRADER привел пример своего скрипта для Wealth-Lab.
В данной статье я объясню, почему у JC_TRADER получились такие результаты, а также приведу результаты своего тестирования модели CandleMax в программе Wealth-Lab.
Анализ чужого кода
Программы Wealth-Lab у меня не было, так что мне для начала пришлось ее установить, настроить и разобраться в том, как же она работает. Это заняло некоторое время, т.к. я работаю по стандартному офисному графику и к тому же человек семейный, так что тестировать приходилось урывками в течение нескольких дней. Но это все лирика, давайте перейдем к конкретике.
На Рис. 1 приведен скрипт, который использовал JC_TRADER для тестирования в Wealth-Lab. Скрипт простой и содержит всего несколько строк кода. Казалось бы, где тут можно ошибиться? Но я программист и знаю не понаслышке, что даже в одной строке кода можно сделать несколько ошибок ))))
Рис. 1. Скрипт JC_TRADER.
В данном случае, ошибка всего одна. Плюс еще 4 замечания, которые нужно учесть, чтобы параметры тестирования были одинаковы.
Ошибка:
В строках 20 и 21 (см. Рис.1) вместо “bar+1” нужно написать просто “bar”. В противном случае, после покупки мы пропускаем следующий день и анализируем, начиная со второго дня. Таким образом, мы пропускаем самый “вкусный” день. Дело в том, что свечная модель CandleMax на дневном интервале дает импульс всего на 1-3 дня и именно в следующий после покупки день наиболее вероятно, что бумага будет продана по прибыли.
Замечания:
- Я проводил тестирование на 32 бумагах, а JC_TRADER взял список из 50 бумаг. Это не ошибка, конечно, но если использовать другой набор входных данных, то и результаты могут несколько отличаться.
- Мой интервал тестирования с 22.09.1997 по 29.12.2018. Соответственно, в строке 16 я написал “bar= 11” вместо “bar= 20”, чтобы не пропускать 9 дней торгов.
- Среднюю волатильность я считаю как обычное среднее арифметическое, т.е. использую SMA вместо ATR в строке 15. Это тоже не носит принципиальный характер, когда-то будет прибыльнее посчитать через SMA, когда-то через ATR, я не спорю и никому ничего не навязываю, но тестировал я так. Кстати, RSI я тоже считаю сам и без любых видов сглаживания, но это уже я оставил без изменения, все равно влияние этих факторов незначительно.
- Обратите внимание еще раз на строки 20 и 21 на Рис.1. Бывает ситуация, когда в один и тот же день по бумаге срабатывают сразу и стоп-лосс и тэйк-профит. Как же быть в таком случае? Если у вас есть только дневная свеча, то вы не можете определить, что было вначале. Грубо говоря, если поставить в скрипте Wealth-Lab на первое место стоп-лосс, то в таких случаях будет считаться, что у нас убыток, а если поставить на первое место тэйк-профит – то прибыль. JC_TRADER поставил на первое место стоп-лосс, что тоже несколько ухудшило общий результат. Я согласен, что ставить тэйк-профит на первое место тоже неправильно, т.к. иногда все-таки стоп-лосс срабатывает раньше, но, как показывает мой опыт тестирования, тэйк-профит все-таки срабатывает раньше примерно в 80% случаев. Разумеется, речь идет именно об этой модели. Т.е. сильный дневной импульс приводит к тому, что в ближайшее время рынок идет вверх и только потом разворачивается.
Результаты моего тестирования в Wealth-Lab
На Рис. 2. приведен мой скрипт для тестирования системы CandleMax в программе Wealth-Lab. Описание модели CandleMax, набор бумаг и параметры тестирования приведены здесь:
Тестирование рабочей свечной модели на исторических данных

Рис. 2. Мой скрипт.
На Рис. 3 вы можете увидеть статистическую информацию по всем сделкам системы. В частности, следующая информация представляется мне интересной:
Средняя прибыль: 0.65%
Соотношение прибыльных сделок к убыточным: 615 к 408 или 60.12% к 39.88%
Среднее время удержания позиции: 3.25 дней
Рис. 3. Результаты стратегии на бэктесте.
На Рис. 4 приведена статистика по каждой бумаге. Здесь вы можете увидеть, сколько сделок прошло по каждой бумаге, каким был процент прибыльных сделок, сколько дней в среднем удерживались позиции по каждой бумаге и т.д.

Рис. 4. Статистика по каждой бумаге.
На Рис. 5 вы можете увидеть эквити системы CandleMax с 22.09.1997 по 29.12.2018. Обратите внимание, что в 2008 году у системы не было сильной просадки. Правда, в кризис 1998 года просадка была.

Рис. 5. Эквити системы.
Заключение
Итак, по результатам проведенного тестирования мы видим, что модель CandleMax чаще давала верный сигнал для покупки (615 правильных сигналов против 408 ошибочных), что составляет 60.12% против 39.88%.
Торговую систему можно считать прибыльной и брать ее на вооружение, если она дает при тестировании на истории соотношение прибыльных сделок к убыточным не менее чем 60% к 40%. Ведь не стоит забывать, что при каждой покупке/продаже вы платите комиссию брокеру и биржевую комиссию, к тому же при покупке/продаже возможны гэпы и проскальзывания, которые также “съедают” часть прибыли.
Какие же выводы отсюда можно сделать? Выводов на самом деле несколько. Итак:
- Результаты тестирования модели CandleMax в Excel и в программе Wealth-Lab практически совпали. Напомню, при отношении стоп-лосса к тэйк-профиту как 1:1 отношение прибыльных сделок к убыточным составило в Excel: 60.3% к 39.7%, а в Wealth-Lab: 60.12% к 39.88%. Незначительное отличие в результатах можно объяснить, на мой взгляд, тем, что я рассчитываю RSI без различных видов сглаживания.
- Оптимальный размер стоп-лосса и тэйк-профита для системы CandleMax составляет одну среднедневную волатильность по бумаге за 10 торговых дней (2 торговые недели). При увеличении размера стоп-заявок прибыль растет, но важно понимать, что происходит это за счет того, что мы просто дольше удерживаем бумагу, ведь за время тестирования индекс МосБиржи вырос от 100 до 2500, т.е. в 25 раз. Импульс, который дает дневная свеча, действует всего 1-3 дня, а если поставить стопы на уровне, например 30% от цены покупки, то это уже будет просто подгонка под известный результат (рост индекса за 20 лет в 25 раз).
- Оптимальное отношение размера стоп-лосса к тэйк-профиту составляет для системы CandleMax 1:1. Изменение отношения стоп-лосса к тэйк-профиту на большие значения, например 1:3 просто приводит к тому, что стоп-лосс начинает срабатывать в 3 раза чаще тэйк-профита.
- Среднее время удержания позиции по системе CandleMax составляет всего 3 дня. Это короткая по времени спекулятивная стратегия, при использовании которой, ваши деньги в 90% случаев будут свободны для других торговых идей.
- Тестирование проводилось с учетом цены закрытия, на практике же мой торговый робот покупает за две минуты до закрытия. При этом в 90-95% случаев свечная модель не изменяется. В реальной торговле по этой системе соотношение прибыльных сделок к убыточным на сегодняшний день составляет у меня 136 прибыльных к 91 убыточной, что примерно соответствует полученным при тестировании результатам.
- Я настоятельно не рекомендую использовать при торговле заемные средства. Сам я выделяю под эту систему только часть своего депозита. К сожалению, движение цен на фондовом рынке не подчиняется распределению Бернулли. Имея выигрышную торговую систему и 136 прибыльных сделок против 91 убыточной, я на практике получил один раз 8 (!!!) подряд убыточных сделок.
- Во всех моих торговых системах, так или иначе, используется одна и та же идея: лучшие бумаги остаются лучшими. Так же и здесь. В данном случае я подтвердил гипотезу о том, что если бумага растет на повышенных объемах и закрывается на максимуме дня, то вероятность того, что она продолжит расти (останется лучшей) выше вероятности того, что она упадет.
Берегите свои деньги! Торгуйте грамотно!
Однако, какое ж море «шумных» процессов в башке запускает восприятие подобного материала
То есть, по сути может так оказаться что большинство прибыльных сделок на бэк-тестах было сделано в какой-то один-два ударных дня.