Сергей Андреев
Сергей Андреев личный блог
02 июня 2017, 16:11

индикаторы работают (нет)

Сегодня проверим предсказательную силу индикаторов. Возможно, это сильно сказано. На основе своего скромного опыта, я считаю, что данные это первично. Если данные дерьмовые, что к ним не применяй, пользы от них не будет больше. А сами индикаторы, лишь другой вид на эти самые данные и как показывает опыт, первичные данные гораздо более удобоваримы для компьютерного интеллекта, чем данные с индикаторов. Зачастую последние системе приходится отсеивать как некий рандомный шум, хотя ты то знаешь, что даешь системе качественный «контент» в виде дополнительного индикатора RSI или ChaikinMoneyFlow))

В качестве оценщика будет выступать обычная feedforward нейронка, RNN тут не будет, мы попытаемся найти какую-то линейную функцию от показаний конкретных индикаторов и дальнейшем движением цены close.

Боеспособность нейронки проверим на искусственном датасете, который сгенерен по некой функции с несколькими параметрами. Вот график цен закрытия, сгенеренный по данной функции. Он даже визуально вполне прогнозируемый, хотя и не повторяется абсолютно.

индикаторы работают (нет)

Без труда, нейронка выходит на точность близкую к 100% на контрольном датасете. Ну это реально просто. Такой график смог бы «разложить» даже Демура или Левченко.

И так задача «простая» — определить положение завтрашней цены закрытия: выше (49%), ниже (47%), без изменения (3.5%) — тут в скобках сколько таких записей во всем датасете. Датасет состоит из 200 интрументов, все из них фьючерсы, торгующующиеся на американских прощадках: commodities, трежеря, индексы. Дневные данные, 1.5 млн записей. Цен закрытия давать не будем, только данные с индикаторов! Все показания с индикаторов нормализованы для нейронки.

Делаем 8 полных прогонов (epoch) по датасету, с 40 итерациями на каждом инстументе. Т.е. 320 раз оборачиваем данные на каждом наборе индикаторов. Далее делаем каждый раз новый epoch, если f1 на контрольном датасете растёт.

Кратко опищу результаты:

1) [AD:3:5][AD:5:9][AD:9:17][AD:17:30]

подаем на входе 4 индикатора Advance-Decline

результат на контрольном датасете (10% от всего):

avg [0,46], bst [0,63]

средний f1 (avg) по всему контрольному датасету 0.46 — прогнозной силы НЕТ

bst 0.63 — но нашёлся и такой инструмент, который можно неплохо прогнозировать, однако это просто данный конкретный инструмент хорошо подогнался, значит есть такой инструмент, где f1 ушёл сильно ниже

2) [StochK:3:5][StochK:5:9][StochK:9:17][StochK:17:30]

а несколько пар стохастикив!!!))))

avg [0,42] – помойка)

и далее по списку:

avg [0,44] [RSI:3][RSI:5][RSI:9][RSI:17]

avg [0,42] [WilliamsR:3][WilliamsR:5][WilliamsR:9][WilliamsR:17]

avg [0,41] [MACD:3:7][MACD:5:9][MACD:11:29][RSI:5]

avg [0,39] [MACD:4:12][RSI:4][RSI:8][AD:7:21]

avg [0,44] [StochK:5:7][MACD:6:15][MACD:2:13][RSI:6:15]

avg [0,41] [MACD:4:9][AD:4:6][RSI:4:6][RSI:5:10]

avg [0,41] [MACD:2:12][StochK:6:9][WilliamsR:4:7][StochK:6:7][StochK:4:14][WilliamsR:3:8]

avg [0,36] [MACD:5:9][MACD:6:15][AD:6:14][StochK:3:10]

avg [0,44] [StochK:5:14][AD:2:6][RSI:2:6][WilliamsR:5:6]

avg [0,47] [AD:5:15][StochK:2:10]

avg [0,42] [AD:5:7][AD:5:17][StochK:2:6][RSI:4:9][WilliamsR:2:14]

avg [0,45] [AD:5:10][WilliamsR:2:9][RSI:3:4][AD:5:16][AD:5:12]

avg [0,47] [StochK:5:8][AD:5:15][AD:5:16][MACD:4:14][WilliamsR:4:15][WilliamsR:6:17]

и много-много других. Что такое f1 = 0,44 сколько это? Это примерно половина (+-), как и подбрасывание монетки. Да, по отдельным инструментам есть точность выше 60% это предмет дальнейшего изучения. Сейчас у меня запущены несколько массивных проектов и что-нибудь ещё про индикаторы запощщу рано или поздно.

Краткий вывод. Если вы открыли график, наложили индикатор и вам стало всё понятно (ну, тут же чётко всё видно) то, скорее всего, вы сами себя «развели» и лучше не использовать это в реальной торговле. Хотя, я успешно использую несколько индикаторов в своей торговле, просто я уже привык через них «видеть» данные.

Удачных трейдов.

3 Комментария
  • SergeyJu
    02 июня 2017, 16:31
    1. Надо не % угадывания измерять, а финансовый результат.
    2. Ни один из вышеперечисленных индикаторов не использую, есть что еще перебирать.
    3. На рынках мы имеем дело с очень низким соотношением сигнала к помехе, а на Ваших тестовых данных оно очень высокое. 
  • SergeyJu
    02 июня 2017, 17:46
    1. Обычная тема у трендовой торговли, что 30% сделок в плюс, 70% в минус, но прибыльные сделки дают прибыль, весьма перекрывающую убыток от минусовых. 
    2. Из общеупотребимых — новый максимум(минимум) за какой-то период и сравнение цены с экспоненциальной скользяшкой. 
    3. На дневках соотношение сигнал/шум получше. Это верно.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн