Зачем тестировать торговые стратегии на истории?
Зачем тестировать торговые стратегии на истории?
Итак, в обсуждении одной из моих прошлых публикаций справедливо заметили, что «зарабатывать можно только в будущем, а в прошлом уже нельзя, оно уже прошло», поставив тем самым под сомнение полезность того, чем занимаюсь я, и тестированием торговых стратегий на истории в частности.
Мы уже обсудили вопрос, зачем нужно учиться. Теперь поговорим собственно о тестировании.
Пройдя какой-либо учебный курс начинающий трейдер научился применять элементарные приемы и существующие инструменты к анализу динамики рынка и делать из результатов этого анализа некие практические выводы.
Но кто сказал, что инструменты, которыми мы пользуемся, хороши и полностью соответствуют стоящим перед нами задачам. Даже если кто-то и сказал это, почему мы должны принимать на веру чужие слова, ставя на это собственные деньги?
Он что, мамой поклялся? Но даже если и поклялся, что с того?
Поэтому следует идти дальше, и проверить, насколько эффективны существующие стандартные инструменты анализа рынка в практике реального трейдинга в том виде. в котором мы собираемся их использовать, и как их можно и нужно модифицировать, чтобы повысить эффективность и прибыльность торговли.
Следует отметить, что в большинстве случаев такое исследование возможно при системной торговле на основе формализуемых алгоритмов проведения сделок покупки и продажи финансового инструмента, т.е. на основе так называемых механических торговых систем (МТС) или систем автоматической торговли — торговых роботов.
Что такое формализуемые алгоритмы? Это алгоритмы, которые могут быть записаны в виде некоторых математических выражений. В результате формализации получаем математическую модель торговой стратегии, в рамках которой полностью определен процесс принятия торговых решений и которая доступна объективному исследованию без всякой примеси субъективных факторов и предпочтений. Такая торговая стратегия может тестироваться совершенно объективным образом, без вмешательства человека, но она должна содержать точные правила для входов и для выходов из рынка:
— когда и по какой цене входить в рынок;
— когда и по какой цене выходить из рынка с убытком;
— когда и по какой цене выходить из рынка с прибылью.
Имея такие правила можно провести моделирование торговли на исторических данных, отражающих изменение динамики цен на некотором историческом периоде в рамках системной торговли.
Самое лучшее таких системах – возможность тестирования. При этом плохую систему можно отбросить или скорректировать, а хорошую – улучшить. Трейдер, получивший достоверную информацию о поведении торговой стратегии на базе прошлого материала, будет чувствовать себя более уверенно и сумеет успешно действовать и в будущем.
Но как все это сделать, каким образом? Очень просто — запрограммировать и посчитать.
При слове «запрограммировать» у 90% аудитории делается кислое выражение лица. Я вхожу в эти 90%, поэтому долой программирование в традиционном понимании этого термина. Есть почти забытая программа Метасток, ориентированная на пользователей-непрограммистов и требующая минимума специальных навыков, не выходящих по сложности за выполнение элементарных расчетов с помощью EXEL, а если быть более точным, то еще проще. Ну или все-таки программировать в более сложных системах.
Можно рассматривать торговые стратегии как на основе классических методов технического анализа, так и оригинальные, созданные с помощью пользовательских индикаторов. которые в Метасток тоже делаются на раз-два. Главное. что можно исследовать торговые стратегии на любых индикаторах и их комплексах, главное, чтобы вы знали, как это индикатор устроен и могли записать для него формальное математическое выражение (или взять готовое).
Разработка надежных прибыльных торговых систем – сложная задача, которая если и поддается практическому решению, то с существенными ограничениями. Сколько бы мы ни экспериментировали с модификацией параметров систем и с развитием их торговых моделей, мы всегда будем находится рядом с ненадежными системами, ибо так устроен рынок.
Чем полезен тест?
Тест, отличие от субъективной интуитивной уверенности в правильности выбранной торговой стратегии дает объективный результат от ее использования. Пусть и на истории.
Вы сразу можете проверить, разработан у вас «священный грааль» торговых систем или все преимущества стратегии существуют только в воспаленном мозгу разработчика.
Хорошая система должна работать при всех типах трендов, поскольку заранее никогда не известно, когда рынок поменяет направление тренда. Ценами на рынке управляют человеческие ожидания, и нереально, чтобы механическая система последовательно прогнозировала изменения в этих ожиданиях.
И что делать с результатами.
Чаще всего результат бывает откровенно плох, несмотря на кажущиеся достоинства используемого метода.
Ведь как чаще всего появляется метод?
Трейдер смотрит на график, и в мозгу у него зажигается лампочка: а что если так?
На графике он видит, что все должно быть отлично. И видит потому, что подсознательно выделяет только те моменты.где стратегия должна давать прибыль. И на уровне того же подсознания отбрасывает другие. те где прибыли не было бы.
Тест объективен. Он прошерстит правила на всем отрезке исследуемой истории и покажет истинную цену торговой стратегии.
Чаще всего стратегию можно сразу выбросить на помойку.
Но если вы получили хороший результат, то тоже не следует предаваться избыточному оптимизму. Все может измениться в ближайшем будущем. может даже завтра. Но по крайней мере у вас есть потенциально прибыльная стратегия в отличие от массы безоговорочно убыточных.
Для примера рассмотрим, как это делается в простейшем случае в Метасток.
Откроем в Метасток график какого либо инструмента, для определенности EURUSD дневного масштаба, и настроим отображение элементов графика в виде японских свечей.
График EURUSD с отображением в виде японских свечей
С чего начинается построение торговой системы? Как мы помним, с торговой идеи, с того, что мы начинаем отвечать на вопрос: «А что если…?».
График у нас чист, никаких аналитических линий и индикаторов на нем нет, глазу не за что зацепиться, кроме самого графика. С графика и начнем.
И вот у нас появилась идея.
При восходящем тренде цена рынка в среднем растет, при нисходящем — падает.
В качестве признака роста примем следующее:
— если цена закрытия текущей свечи выше цены закрытия предыдущей, то это и будет признаком восходящего тренда;
— если цена закрытия текущей свечи ниже цены закрытия предыдущей, то это будет признаком нисходящего тренда.
Это и будет нашей торговой идеей.
И еще одно замечание.
Мы будем тестировать систему, которая торгует в двух направлениях, и на покупку и на продажу инструмента. И наша система будет всегда находиться в рынке, т.е. условие закрытия позиции на покупку инструмента будет одновременно являться условием для открытия позиции на продажу, и наоборот.
Записываем правила, запускаем тест.
Отображение результатов сделок — график эквити.
Наша торговая идея явно несовершенна. В глазах рябит от обилия сделок, Но на отдельных участках рынка идет профит, на других убыток.
Наблюдается явная переторговля.
В целом торговая система потенциально способна выделять тренды, поскольку размер прибыльной сделки, как средний, так и максимальный, больше размера убыточной сделки. Однако количество убыточных сделок нивелирует этот плюс и в результате приводит к минусу.
С теми факторами, которые мешают получить результирующий профит, нужно разбираться отдельно, анализируя прибыльные и убыточные участки графика эквити.
Наша цель – модифицировать эту простейшую торговую систему таким образом, чтобы:
— колебания и небольшие откаты не приводили к преждевременному выходу из сделки на тренде и не уменьшали совокупную прибыль;
— уменьшить количество сделок.
Какие факторы нам могут помочь в этом?
Первое, что приходит на ум, это тот факт, что при тренде цена в среднем, несмотря на откаты, возрастает. Поэтому, чтобы устранить влияние откатов, можно сравнивать текущую цену закрытия не с ценой закрытия предыдущего интервала, а с ценой, которая была N интервалов назад (фактически эту операцию выполняет классический индикатор Момент (momentum) ). В этом случае незначительные по уровню откаты не будут приводить к выходу из позиции.
Запускаем тест, и получаем результат, в котором данные упорядочены по размеру задержки N — переменная opt1.
Итак, наша интуитивная стратегия со сравнением цен закрытия двух соседних свечей дала наихудший результат, несмотря на то, что на графике мы «видели» победу.
В причины вдаваться не будем, это предмет других публикаций. Просто примем как факт, что при N=2 прибыльность системы резко возрастает.
И вот результирующий тест
Выбираем верхнюю строчку в списке и нажимаем клавишу «Plot on Chart».
Получаем график эквити с обозначенными сигналами входов и выходов из рынка, который приведен на рисунке
Результат явно лучше, чем у предыдущей системы.
Во-первых, главное отличие то, что текущая стратегия дает в результате торговли прибыль, а не убыток.
Во-вторых, кривая эквити более плавная, и хотя большую часть времени на протяжении интервала тестирования стратегия не приносит прибыли, но и значительных просадок тоже не наблюдается.
Таким образом, в результате нескольких простых телодвижений мы отбросили гениальную и заведомо убыточную идею и создали потенциально работоспособную стратегию. Добавление к ней некоторых дополнительных условий дает вполне рабочий алгоритм, обеспечивающий в долгосрочной перспективе путь небольшую, но стабильную прибыль.
Тестируем ручные системы
Как тестировать советники (ЕА) мы уже разбирали. А как же быть со стратегиями для ручной торговли? Просто отмотать график назад и искать входы неудобно, да и показания некоторых индикаторов смещаются, по сравнению с моментом, когда появился сигнал. Как же быть? К счастью, есть специальные программы, и одну из них мы с вами сегодня рассмотрим в видео-обзоре ниже.
Установка советника Simple Forex Tester
0. Скачать и установить терминал Metatrader 4
1. Копируем содержимое папки 1 в папку с установленной программой Metatrader 4, соглашаемся на замену файлов при совпадении имен.
2. Копируем содержимое папки 2 в каталог данных терминала.
Как туда попасть?
Чтобы попасть в каталог данных, в терминале нажимаем Файл -> Открыть каталог данных
3. Перезапускаем терминал.
4. Открываем терминал Metatrader 4, заходим Сервис->Настройки
Выбираем вкладку Советники и проставляем галочки как на рисунке ниже. Жмем ОК .
5. Запускаем тестер стратегий и следуем инструкциям из видео.
Скачать Forex Tester
Искать на сайте
Ссылки
Разделы
Рекомендую
Вы новичок? Скачайте бесплатный видеокурс!
О Сайте
Наша цель – обучать простых людей торговле на валютном рынке Forex, а также предоставить все необходимые для успешной работы инструменты.
Советую ознакомиться
Торговые сигналы
Анализ японских свечей на 16.06.2022
Ежедневный анализ Форекс на 15.06.2022
Аналитический обзор трендовых инструментов на 14.06.2022
Торговые рекомендации на 13.06.2022
Посты с форума
Популярные акции
Внимание! Торговля на валютном рынке Форекс (Forex) сопряжена с финансовыми рисками и подходит не всем инвесторам. Сайт tlap.com не предоставляет услуги торговли на финансовых рынках, носит исключительно информационный характер и не несет ответственности за последствия принимаемых вами торговых решений, либо работу программного обеспечения. Начиная работать на валютных рынках, убедитесь, что вы осознаете риски, с которыми сопряжена торговля с использованием кредитного плеча, и что вы имеете достаточный уровень подготовки. Данный ресурс управляется компанией TLAPFX LTD — регистрационный номер 24245 IBC 2017, адрес управления: Suite 305, Griffith Corporate Centre, P.O. Box 1510, Beachmont, Kingstown, St. Vincent and the Grenadines .
TLAPFX LTD не имеет представительств компании на территории Российской Федерации.
Основы трейдинга
Тестирование торговых стратегий на исторических данных
Прежде чем использовать любую биржевую стратегию, не помешает её протестировать. А как это сделать ? Самый простой способ – попробовать по ней торговать, но это означает большой риск потерять свои деньги. Намного лучше использовать тестирование на исторических данных, потому что такой вариант даёт возможность оценить преимущества и недостатки стратегии, ничем при этом не рискуя, да ещё и оптимизировать стратегию, увеличив её эффективность.
Что даёт тестирование стратегий на исторических данных
• Самое главное – тестирование позволяет отсеять те стратегии, которые не принесут дохода, а наоборот, приведут к убыткам.
• Также у трейдера появляется возможность оптимизировать свою стратегию, настроить её таким образом, чтобы она приносила максимальную прибыль при минимальном риске.
Как правило, начинают именно с оптимизации: трейдер пытается настроить параметры индикаторов и другие элементы, чтобы система давала минимум ложных сигналов и не пропускала прибыльные. Если сделать это не удаётся, либо если соотношение прибыль/убытки очень маленькое, тогда стратегия забраковывается и ищется другая, более соответствующая запросам трейдера.
Как проводится тестирование стратегий на исторических данных
Специалисты советуют не торопиться и проверить стратегию на очень длительном периоде. Например, если вы торгуете на пятиминутных барах, не помешает проверить историю за полгода-год. Правда, чем дальше от текущего момента (что в прошлое, что в будущее), тем больше меняется сам рынок и его тенденции, так что слишком далеко уходить не стоит. Больше всего стоит ориентироваться на результаты, которые мы видим на последних нескольких тысячах свечей.
Как проводится тестирование ?
• Ищем те моменты, когда наша система дала бы сигнал на покупку/продажу.
• Смотрим, куда после этого пошла цена.
• Определяем первичную эффективность нашей системы (соотношение сделок, которые завершились бы прибылью/убытками).
Далее делаем следующее:
1. Определяем оптимальные параметры для индикаторов. Если индикаторы немного запаздывают с сигналами, то уменьшаем период скользящих средних, если много ложных сигналов, то увеличиваем.
Как правило, увеличение периодов позволяет свести к минимуму ложные сигналы и сделать выигрышной даже ту стратегию, которая изначально при тестировании показала себя провальной. Но важно, чтобы отсеивание ложных сигналов не приводило к тому, что сигналы вообще пропадут или их станет крайне мало.
2. Тестируем стратегию с новыми параметрами.
Эти действия следует повторять, пока мы не увидим, что стратегия превратилась в прибыльную. После этого ею можно пользоваться при реальной торговле. Но не забываем периодически разрабатывать новые стратегии для того, чтобы найти ещё более эффективные и иметь возможность создать свой портфель стратегий.
Источник https://smart-lab.ru/blog/591598.php
Источник https://tlap.com/testiruem-ruchnyie-sistemyi/
Источник https://quantpro.ru/archives/3419