Небольшая заметка о тестирование торговых роботов
Для торговли на международном рынке Forex используются различные торговые стратегии, различающиеся по сроку от открытия до закрытия ордеров, по торговле одновременно с использованием только одного или нескольких открытых ордеров, работой одновременно с одним или несколькими торговыми инструментами и т.д. Торговые стратегии разработаны для ручной торговли, частично автоматизированной торговли (например, трейдер только открывает ордера, а сопровождение ордеров и их закрытие осуществляется специальной программой), полностью автоматизированной (автотрейдинг) торговли. Торговые стратегии могут быть реализованы в виде специализированного программного обеспечения (ПО) для торговой платформы, предоставляемой дилинговым центром (ДЦ), работающим с ним трейдерам. В настоящее время большой популярностью у трейдеров, торгующих на рынке Forex, пользуются торговые платформы Metatrader версий 4 (MT4) и 5 (MT5). Следует отметить, что существуют и другие торговые платформы, в том числе с более удобным и расширенным функционалом для тестирования торговых стратегий, например, TSLab (www.tslab.ru) платформа для создания и запуска механических торговых систем. Однако, если трейдер по тем или иным причинам предпочитает работать с конкретным ДЦ, предоставляющим только платформы МТ4 (metatrader4.com) и/или МТ5 (metatrader5.com), то выбор ПО ограничен только тем инструментарием, который поддерживается терминалами данных торговых платформ.
Терминалы МТ4 и МТ5 включают в себя ПО Тестер стратегий, который можно использовать для тестирования и оптимизации торговых роботов, а также для тестирования стратегий ручной торговли, если использовать режим визуализации тестирования фиктивного торгового робота – “заглушки” (например, void OnTick() {return;}), позволявшего работать с графиком отображения изменения финансового инструмента.
«Текущее значение котировок может существенно отличаться от ее рыночной оценки, т.е. от оценки, отражающей рыночные представления о ее стоимости. Это вызвано наличием статистических флуктуаций, обусловленных большим числом полностью или частично неконтролируемых факторов«[1].
Вопрос построения методически грамотной системы оптимизации торговых стратегий сложный, так как динамика изменения котировок торговых инструментов зависит не только от системной составляющей х1, но и от случайной (хаотичной, не поддающейся прогнозированию) составляющей х2. Доля составляющих х1 и х2 может изменяться во времени значительно, а оценка влияния в режиме реального времени представляет собой сложную задачу, для которой точное решение невозможно, а возможна только вероятностная оценка. Следует учитывать, что под действием фундаментальных факторов со временем меняется характер поведения рынка в целом. Ранее выявленные закономерности перестают действовать полностью или значительно ослабевают. Задача оптимизации состоит в нахождении коэффициентов p1,p2,…,pn, дающих наиболее точные значений для функции f(t, p1,p2,…,pn), прогнозирующей во времени t динамику изменения значений котировок торгового инструмента. Могут учитываются такие параметры, как закрытие ордера при достижении значения заданного уровня прибыли или при достижении максимально допустимой величины убытка и т.д. (параметры z1,z2,…,zn). Решение задачи подбором наилучших значений параметров p1,p2,…,pn и z1,z2,…,zn путем их варьирования с выполнением оценки получаемых значений функции f на практике, как правило, не дает положительного результата, т.к. имеет место не оптимизация, а “подгонка под историю”.
Объясняется это двумя факторами:
1) недостаточность объема обработанных значений котировок используемого торгового инструмента (архивные данные котировок можно загрузить, например, по ссылкам http://www.forextester.com/data/datasources или http://www.finam.ru/analysis/quotes/) или
2) избыточностью объема анализируемых данных – например, весь массив данных может рассматриваться, как объединение двух массивов, которые содержащих котировки финансового инструмента для состояния рынка “один” и “два”, соответственно. Если рынок в настоящее время находится в состоянии “два”, то использование для оптимизации данных состояния “один”, приведет к тому, что будут найдены значения параметров p1,p2,…,pn и z1,z2,…,zn, не позволяющие получать прибыль от торговли или величина прибыли будет существенно меньшей, чем могла бы быть.
С учётом сказанного видится целесообразным или использовать экспертные оценки, позволяющие выявлять глобальные долгосрочные состояния рынка, когда сохраняются в общем и целом существующие тенденции развития рынка или, с учетом того, что получить такие оценки достаточно сложно как по объективным, так и по субъективным причинам, ввести переменную r или функцию r(t), позволяющую по-разному учитывать влияние новых и старых (т.е. тех, когда вероятно был другой характер рынка) данных. Более значимыми считаются недавно полученные данные. На основе сказанного можно сделать предположение, что для оценки и оптимизации торговых стратегий нет необходимости использовать весь архив исторических данных по анализируемому финансовому инструменту, данные для ретроспективного анализа могут быть ограничены периодом за несколько прошедших лет. Второе – вытекающая необходимость постоянного выполнения оптимизации параметров настроек используемых торговых роботов. Пример одной из возможных схем оптимизации. Выбирается стартовая точка, например, за 12 месяцев до текущей даты, затем выполняется оптимизация параметров торгового робота для 3-х последующих месяцев, оценивается прибыль (убыток) при торговле для 4-го месяца с оптимизированными параметрами, затем оптимизируется интервал следующих 3-х месяцев и оценивается прибыль (убыток) для следующего месяца и т.д. Если значения параметров, найденные для разных периодов 3-х месяцев, различаются не сильно, также, как и размер получаемой прибыли, то это может свидетельствовать о том, что оптимизация была выполнена корректно, в противном случае необходимо выполнить дополнительный анализ данных и, вероятно, пересмотреть используемую торговую стратегию.
Список использованной литературы:
- Имитационное моделирование хаотического процесса на основе критерия полезности. Ананченко И.В., Мусаев А.А. В сборнике: Седьмая всероссийская научно-практическая конференция «Имитационное моделирование. Теория и практика» (ИММОД-2015). 2015. С. 142-147.