Тестирование на исторических данных. Имитация работы торгового робота на языке Lua.

Отображение графиков в TSLab.

Оптимизация параметров торгового алгоритма.

Анализ результатов торгов. Запись сделок и параметров в файлы.

Ознакомительная часть видео

Полное видео доступно после оплаты

Хорошо, есть у нас какой-то торговый алгоритм. А что он может? Сколько денег сможет сделать? Мы же все здесь ради получения прибыли. Какова вероятность его сделок? Какое соотношение прибыли к убыткам?  

Вот тут начинается очень интересное тестирование алгоритмов на исторических данных и непосредственно их отбор.  

Сначала немного рассуждений, в общем, о тестировании. 

Моя позиция следующая, прежде чем приступить к торговле по определенному алгоритму, необходимо понять, что от него ожидать. Во-первых, в самом начале отсечь никуда не годные алгоритмы, которые в принципе не способны приносить прибыль. Далее, определить алгоритмы, которые могут приносить прибыль и уже работать над ними В процессе тестирования на исторических данных каждый раз открываются подробности, о которых не возможно было предположить заранее. Просматривая сделки, уровни входа-выхода, динамику изменения торгового счета можно подготовиться к различным ситуациям, возникающим в процессе реальной торговли. Мы можем увидеть, например, что, вот столько сделок может быть убыточных подряд, вот такая просадка по счету может быть но, несмотря на это, вот за такое время счет восстанавливается и растет дальше. И когда робот уже запущен в реальные торги и случается какое-то благоприятное или неблагоприятное событие мы уже знаем, ага это я уже видел, похожее было тогда-то и тогда-то. Конечно, кто-то из Вас подумает, Ха, да это просто подгонка под исторические данные, возможно, отчасти это утверждение верно, а возможно и нет. Никто не знает, что будет завтра ни один алгоритм неспособен предсказать будущее, это в принципе не возможно. Самое замечательно, что нам и не нужно предсказывать цену, все, что от нас требуется, это с определенной скоростью или задержкой реагировать на изменение цены. Я не вижу другого подхода, к выбору алгоритмов, кроме как тестирование на исторических данных. Кто-то умный, когда-то сказал "Глупо делать одни и те же действия в надежде на разные результаты", этого принципа я и придерживаюсь, тестирую на исторических данных и ожидаю похожего поведения цены в будущем.  

И так, перейдем к тестированию и нашим скриптам. 

Откроем редактор SciTE, и скрипт SMA_DIFF_RTS_OPT.lua.  Рассмотрим, что делает этот скрипт. 

Общий принцип работы следующий.  
1. Для того чтобы провести тестирование на исторических данных, нам необходимо получить сами данные.  
2. После того как данные получены, необходимо рассчитать параметры или индикаторы, которые будут использоваться для принятия решений на вход-выход из позиции. Некоторые параметры будут рассчитаны до запуска основного цикла тестирования, некоторые параметры будут рассчитываться в процессе работы основного цикла.  
3. На следующем шаге нужно запустить основной цикл, который будет переходить от свечки к свечке и на каждой из них проверять условия входа или выхода.  
4. При обнаружении условия для входа в позицию, необходимо будет записать цену входа в позицию.  
5. При обнаружении условия выхода из позиции, необходимо будет записать цену выхода из позиции, далее рассчитать результат сделки и записывать все данные по сделке в файл, для последующего анализа.  
6. По окончанию работы основного цикла, когда будет прочитана последняя свеча, нужно будет вывести на экран суммарный результат всех сделок и записать его в файл.  

Таков общий порядок действий, при тестировании на исторических данных.  

Это ознакомительная часть курса, что бы просмотреть полный курс, пожалуйста оплатите подписку, подписка действует 2 года. Помимо доступа к полному тексту курса, предоставляются все коды скриптов и вспомогательные файлы. Первые три раздела предоставляются бесплатно в полном объеме. Всем кто ранее покупал коды скриптов доступ будет предоставлен бесплатно, пожалуйста пришлите запрос с Email на который Вам были направлены коды.