Избранное трейдера dimaz07
или back-testing (бирж. обратное историческое тестирование, тестирование на основе исторических данных (подход к анализу эффективности торговой стратегии, основанный на применении этой стратегии к данным прошедших периодов, т. е. оценка того, какие бы результаты дала эта стратегия, при условиях, которые имели место в прошлом; в отличие от анализа эффективности стратегии с использованием прогнозов относительно будущего развития событий)
Как всегда, сделав для себя, мы решили поделится с трейдерским сообществом программой «Viking strategy tester». Программа позволяет проводить тестирование арбитражных стратегий – «классических», «парных», «статистических», «одноногих», «портфельных».
Viking strategy tester – это тестер по заданному алгоритму на исторических данных, хранящихся на FTP.
Статья из блога "Trading with Python" об элементарной стратегии, которая демонстрирует последовательный подход к разработке алгоритмов.
Недавно я прочел пост на сайте turingfinance.com "Как стать квантом". Вкратце, он описывает научный подход к созданию торговых стратегий. Для меня, наблюдение за данными, обдумывание модели и формирование гипотезы является второй натурой, как это и должно быть для любого хорошего инженера.
В данной статье я собираюсь показать такой подход по шагам, которые нужны для разработки стратегии.
Давайте возьмем наиболее популярный инструмент — S&P 500 ETF «SPY». Начнем с наблюдений.
Обзор данных
Мне кажется, что большую часть времени в СМИ говорят об обрушении рынков (больших потерь в течение нескольких дней), умалчивая о значительном росте, который следует за ними.
Еще одна статья с ресурса www.talaikis.com по разработке простой стратегии на модели Маркова с использованием Python.
Модель скрытых состояний Маркова — это производительная, вероятностная модель, в которой последовательность наблюдаемых переменных генерируется некоторыми неизвестными (скрытыми) состояниями. Мы попытаемся найти такие неизвестные вероятностные функции для, скажем, S&P500. Все опишем кратко, без проверок на ошибки, без тестов вне выборки и т.д. Мы делаем это для того, чтобы минимизировать склонность к ненужному усложнению для начинающих. (Подробнее о модели Маркова см. на моем сайте — www.quantalgos.ru)
Что будем использовать:
библиотеку Python - hmmlearn.
1. Данные. Возьмем данные по свечам (OHLC), включающие объем, из нашей базы
> list.files(«E:/syst/lib»)
[1] "_algo_ algotrading.pdf"
[2] "_algo_ IntroductionToAlgorithmicTradingStrategies.pdf"
[3] "_algo_ stan.pdf"
[4] "_bayes_ applied bayesian modelling.pdf"
[5] "_bayes_ bajesovskie seti… logiko-veroyatnostnyj podxod.djvu"
[6] "_bayes_ bayesian statistical modelling.pdf"
[7] "_bayes_ BayesNets.pdf"
[8] "_bayes_ байесовские методы маш обуч.pdf"
[9] "_bayes_ введение в методы байесовского статистического вывода.djvu"
[10] "_caus_ Application of adaptive nonlinear Granger causality.pdf"
[11] "_caus_ Causalities of the Taiwan Stock Market.pdf"
[12] "_caus_ granger causality — theory and applicts.pdf"
[13] "_caus_ grangercausality.pdf"
[14] "_caus_ sugihara-causality-science.pdf"
[15] "_caus_ Причинный анализ в статистических исследованиях.djvu"
[16] "_change_ adaptive filtering and change detection.djvu"
[17] "_change_ detection of abrupt changes.pdf"
[18] "_change_ Efficient Multivariate Analysis of Change Points.pdf"
[19] "_change_ nikiforov_i_v_posledovatelnoe_obnaruzhenie_izmeneniya_svoist.djvu"
[20] "_change_ zhiglyavskii_a_a_kraskovskii_a_e_obnaruzhenie_razladki_sluch.djvu"
[21] "_change_ адаптивный метод обнаружения нарушений закономерностей по наблюдениям.pdf"
[22] "_change_ Момент разладки Чернова.pdf"
[23] "_change_ обнаружение изменения свойств сигналов и динамических систем.djvu"
[24] "_change_ обнаружение моментов разладки случайной последовательности.pdf"
[25] "_change_ обнаружение нарушений закономерностей по наблюдениям при наличии помех.pdf"
FIX_CURR USD
Plaza2 Si и TWIME Si
TWIME: GAZ, LUK, VTB...
Plaza2 RTS
SPB_BINARY
Имеем случайную стратегию, одну из тех, что находится в бою с августа 2015 года.
Торговая идея стратегии – предположение о стабильности корреляции между двумя подобранными заранее инструментами. Грубо говоря, есть один торговый инструмент и его поводырь. Мы считаем, что корреляция сейчас должна быть такой же как и n-секундами ранее.
Все параметры, подобранные и используемые до сего момента ни разу не менялись и стратегия торговали на тех параметрах которые были эмпирически подобраны в августе прошлого года.
Стратегия дала слабый плюс в абсолютном выражении, но учитывая малые вложения нарисовала нехилую годовую доходность порядка 1000% за год
Чтобы проще искать параметры корреляций, написали тестер — «VikingStrategyTester» и начали сохранять свою тиковую историю. Тиковые данные в режиме «увеличенная частота раздачи» (как оказалось, увеличенная частота раздачи и просто сохранение тиков без этой специальной настройки «это две большие разницы») сохраняли себе на сервер с начала этого года по всем ликвидным инструментам.