Избранное трейдера yurikon
Добрый день, коллеги.
В целях социализации и начала более долгосрочной торговли, сделал свою версию моментума для акций.
Простой, емкий подход, проверенный на большом количестве рынков, чтобы начать движение в область положительного математического ожидания.
Теория.
🚀 Моментум это тенденция активов, которые росли в прошлом, продолжать расти в будущем и наоборот. Как «инерция» на рынке: если что-то движется в одном направлении, скорее всего, оно продолжит двигаться в том же направлении.
Если углубиться в историю явления, то первые мысли о формах моментума можно найти еще у Чарльза Доу в начале XX века, у Альфреда Коуэна в 1930-х годах и в работе Нараянана Джегадиша и Шеридана Титмана под названием «Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency», опубликованной в 1993 году.
В 2014 году была опубликована работа Гэри Антoначчи в книге "Dual Momentum Investing: An Innovative Strategy For Higher Returns With Lower Risk".
На практике теория отличается от практики, гораздо больше чем в теории.
Введение
Многие datascientists, желающие использовать ML на финансовых рынках, прочитали толстые книжки об инвестировании, может даже создавали модели с учетом прочитанного. И наверняка знают как правильно оценить полученные модели с точки зрения ML. Разобраться с этим необходимо, чтобы не было мучительно больно, когда прекрасная модель на бумаге, превращается в генератор убытков при практическом использовании. Однако оценка эффективности модели ML на бирже, довольно специфическая область, тонкости которой раскрываются только когда вы погружаетесь в процесс. Под процессом я понимаю трейдинг с частотой совершения сделок гораздо чаще «пара сделок в месяц, в течении полугода». Существует множество подводных камней, о наличии которых вы даже не подозреваете, пока смотрите на трейдинг извне. Я попробую вольно изложить свои мысли на данную тему, я покажу метрики, условно разбив их на 3 группы и обьясню их смысл, покажу свои любимые и о чем нужно подумать, если вы хотите практически использовать модели, а не повесить их на стеночку в красивой рамочке. Представлю метрики в табличном и графическом виде, показав их взаимосвязь. Сравню показатели моделей в виде «какую модель выбираю я» и «что выбираете вы» и кто тут больше ошибается. Для любителей кодов, приведу реализацию всего подсчитанного, так что можно сразу применить прочитанное для оценки своих моделей. Я не буду тут говорить о борьбе с переобучением или регуляризации или стратегиях кросвалидации — оставлю это на потом. Здесь мы начинаем со списка уже спрогнозированных сделок, с помощью transformer о которой я писал в прошлой статье. Поэтому данный текст будет его логическим продолжением, где я оценю модель с точки зрения ее практического использования.
Для анализа будем использовать данные ETF c базовой валютой USD: FXCN, FXRL, FXIT, FXUS и FXRU. Временной ряд рассмотрим за три года с 2018 по 2020 года. Само исследование проведем в Google Colaboratory.
Как обычно в начале импортируем все необходимые библиотеки для дальнейшей работы.
import pandas as pd import numpy as np import matplotlib.pyplot as plt from google.colab import files import warnings warnings.filterwarnings("ignore")Сначала необходимо получить данные. Есть несколько способов. Мы воспользовались — взяли их с Finam в формате csv. Дальше написал функцию для обработки полученных данных и при помощи concat свел их в один датафрейм.
def changeDF(df): df['date'] = pd.to_datetime(df['<DATE>'].astype(str), dayfirst=True) name =[x for x in globals() if globals()[x] is df][0] df = df.drop(['<DATE>','<TIME>', '<OPEN>', '<HIGH>', '<LOW>'], axis=1) df = df.set_index(['date']) df.columns = [name+'_cl', name + '_vol'] return df fxgd_change = changeDF(fxgd) fxrl_change = changeDF(fxrl) fxit_change = changeDF(fxit) fxus_change = changeDF(fxus) fxru_change = changeDF(fxru) fxcn_change = changeDF(fxcn) etf = pd.concat([fxgd_change, fxrl_change, fxit_change, fxus_change, fxru_change, fxcn_change], axis=1) etf.head()В результате получили: