uralpro
uralpro личный блог
09 мая 2017, 13:18

Импульсная стратегия на традиционных и криптовалютах. Часть 1

Импульсная стратегия на традиционных и криптовалютах. Часть 1

Перевод основных моментов статьи «Momentum in traditional and cryptocurrencies made simple» Janick Rohrbach, Silvan Suremann, Joerg Osterrieder. Статья интересна последовательным подходом к разработке алгоритма, обходясь при этом очень простой математикой. 

Введение

Импульс это традиционная стратегия для торговли валютами. Растущие ранее активы с большей вероятностью продолжат свой рост, ранее падающие продолжат падение. Для исполнения такой стратегии нужно покупать дорожающие валюты и продавать дешевеющие. Мы используем алгоритм, представленный в Baz, J., Granger, N., Harvey, C.R., Le Roux, N., Rattray, S., 2015. Dissecting investment strategies in the cross section and time series., для генерации импульсных сигналов, основанных на пересечениях трех экспоненциальных скользящих средних с различными временными горизонтами. Эти три скользящие средние определяют короткий, средний и долгосрочный тренд. В упомянутой статье было показано, что этот подход работает хорошо для различных классов активов. Мы возьмем только валютный рынок и детально покажем, как алгоритм работает применительно к нормально распределенным приращениям. Затем мы используем алгоритм для бэктеста на реальных данных и продемонстрируем, на каких периодах стратегия работает, а на каких — нет. 

Алгоритм

В этом  разделе разберем, как алгоритм работает в в случае нормально распределенных приращений.

Нормально распределенные приращения цены

Для симуляции цен с нормально распределенными приращениями используем геометрическое броуновское движение (ГБД). Оно описывается следующим стохастическим диффренциальным уравнением:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
где B_t - стандартное броуновское движение. Используя лемму Ито, запишем решение  этого уравнения:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
ГБД предполагает постоянную волатильность, что упрощает модель по сравнению с реальными валютными ставками, где волатильность меняется со временем.

Установим цену валютной пары в момент времени t=0 как S_0=1. Ожидаемый годовой доход определим как μ=0, предположив, что тренда нет. Таким образом, наш сконструированный временной ряд представляет собой ряд Мартингейла.

Просвоим значению годовой волатильности величину σ=0.05, что примерно соответствует годовой волатильности пары EUR/USD.

Сгенерируем временной ряд за 100 лет (t=1,2,...,100) с размером шага Δt=1/365.24. Отметим, что у нас нет различия между рабочими и выходными днями. Таким образом, наш временной ряд имеет 365.24 точек в год вместо 252. Случайная выборка показана на рисунке:  

Импульсная стратегия на традиционных и криптовалютах. Часть 1
На следующем рисунке показаны дневные приращения цены, вычисленные как

 Импульсная стратегия на традиционных и криптовалютах. Часть 1

Импульсная стратегия на традиционных и криптовалютах. Часть 1
Дневные арифметические приращения распределены нормально, как показано на рисунке в заглавии.

Экспоненциальная скользящая средняя

Экспоненциальная скользящая средняя (ЕМА) это фильтр с экспоненциально снижающимися весами. Следующая формула показывает рекурсивное вычисление EMA:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
где α=1/n - экспоненциальный сглаживающий коэффициент.

Пересекающиеся ЕМА с различными временными периодами

Выберем три различных временных периода, каждый со своим значением n_k для краткосрочных и длинносрочных ЕМА. Определим n_k,s=(8,16,32) для краткосрочных ЕМА и n_k,l=(24,48,96) для долгосрочных ЕМА.

Отметим, что n_k не является ни длительностью, ни временем «полураспада». Длительность ЕМА в точке t всегда равна [0,t] и следующее уравнение вычисляет время «полураспада»:

Импульсная стратегия на традиционных и криптовалютах. Часть 1

Таблица 1 показывает время полураспада для каждого n_k. Увеличение n_k в два раза влечет увеличение времени «полураспада» примерно вдвое.

Импульсная стратегия на традиционных и криптовалютах. Часть 1
Чтобы рассмотреть пересечения ЕМА мы расширим имитацию нашей серии для 2050 года. Рисунок ниже демонстрирует ЕМА для k=1. Это означает n_k,s=8 и n_k,l=24.Там, где короткая ЕМА проходит выше длинной мы имеем положительный тренд, а там, где короткая ЕМА проходит ниже длинной, тренд отрицательный. Рисунки ниже показывают ЕМА для k=2 и k=3 соответственно.

Импульсная стратегия на традиционных и криптовалютах. Часть 1Импульсная стратегия на традиционных и криптовалютах. Часть 1Импульсная стратегия на традиционных и криптовалютах. Часть 1
Можно отметить, что ЕМА фильтры в основном работают правильно. Тем не менее, есть задержка при смене тренда от положительного к отрицательному и наоборот.  Посмотрим на окончание позитивного тренда в мае 2050 года. Желательно, чтобы короткая ЕМА пересекала бы длинную ЕМА вверху той же даты. Но  занимает несколько недель, чтобы эти ЕМА пересеклись. Чем больше n_k, тем больше времени пройдет до точки пересечения, которая сигнализирует смену тренда. С другой стороны, больший n_k менее подвержен флюктуациям на длительном тренде. Используя уравнение для ЕМА, вычислим:

Импульсная стратегия на традиционных и криптовалютах. Часть 1

где k=1,2,3.

Рисунок ниже показывает результаты вычислений для k=1,2,3. Положительное значение x_k означает положительный тренд, в то время, как отрицательное значение означает тренд понижающийся. x_k=0 когда короткая ЕМА пересекает длинную, таким образом обозначая смену направления тренда. x_k наш первый сигнал. Он определяет когда мы должны быть в длинной или короткой позиции по данной валюте. 

Импульсная стратегия на традиционных и криптовалютах. Часть 1

Нормализация

Далее мы проведем нормализацию с помощью трехмесячного скользящего стандартного отклонения цены валютной пары. Это преобразование приводит сигнал каждой валюты к одинаковой амплитуде. Рисунок демонстрирует результат.

Импульсная стратегия на традиционных и криптовалютах. Часть 1Импульсная стратегия на традиционных и криптовалютах. Часть 1
Полученный временной ряд нормализуется снова с помощью скользящего стандартного отклонения за 1 год. Это преобразование позволяет сделать волатильность более приближенной к постоянному значению. Рисунок демонстрирует результат.

Импульсная стратегия на традиционных и криптовалютах. Часть 1Импульсная стратегия на традиционных и криптовалютах. Часть 1
Генерация сигнала

Применим нижеследующую функцию реакции для вычисления u_k:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
В знаменателе значение выражения равно 0.858. Как выводилось выражение для u_k можете посмотреть в оригинале статьи.

Как показано на рисунке ниже, функция реакции отражает каждое значение z_k на u_k внутрь диапазона [-1,1]. Функция имеет глобальный минимум в точке z_k=−(√2) при u_k(−(√2))=−1 и глобальный максимум в z_k=(√2) при u_k(√2)=1. Таким образом, значение сигнала всегда лежит между -1 и 1.

Импульсная стратегия на традиционных и криптовалютах. Часть 1

Взяв взвешенную сумму всех u_k мы вычислим итоговый сигнал:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
где w_k=1/3. Вы можете использовать другие веса, общая сумма которых будет равна 1, но мы решили взять равные веса для простоты. Сигнал выглядит так:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
По этому сигналу мы сделали бэктест по сгенерированным данным путем перемножения дневных арифметических приращений временной серии на сигнал прошедшего дня. Рисунок показывает кумулятивный профит за 100 лет:

Импульсная стратегия на традиционных и криптовалютах. Часть 1
Далее посмотрим на гистограмму дневных приращений нашей стратегии на рисунке ниже. Можно увидеть, что приращения симметрично распределены со средним, равным 0. Это именно то, что мы ожидали, то есть импульсы цены в сгенерированных данных отсутствуют. Ожидаемая кумулятивная прибыль также равна 0.  Результат говорит о том, что наши вычисления верны и мы можем сейчас применить такой же алгоритм на реальных рыночных данных.

Импульсная стратегия на традиционных и криптовалютах. Часть 1

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

Продолжение и другие стратегии и алгоритмы автоматической торговли смотрите на моем сайте www.quantalgos.ru

20 Комментариев
  • Jkrsss
    09 мая 2017, 14:04
    А вот в экспоненциально скользящей средней есть экспонента? может — натуральный логарифм? :)
      • Jkrsss
        09 мая 2017, 15:05
        uralpro, ну так экпоненциальный законе f(x) = l*e^(-lx)
        x = — 1/l * lnа :) в формуле скользящей средней я это не видел даже близко.
          • Jkrsss
            09 мая 2017, 16:29
            uralpro, вы может с гиперболой путаете. 
              • Jkrsss
                09 мая 2017, 16:37
                uralpro, слушай я математику знаю. при этом хорошо :) нет там экспоненциального закона. по гиперболе разложили веса и получили что то среднее :) формулу видите = 1/n коэффициент.
                П.С. Классически средних — арифметическая, геометрическая и гармоническая. Все остальные от лукавого. :) 
              • Jkrsss
                09 мая 2017, 16:38
                uralpro, Это так :) для информации, чтобы вопросы в жизни появлялись :)
                  • Jkrsss
                    09 мая 2017, 17:05
                    uralpro, да читал я это. Но суть в понимании. Конечно лучше почитать  Hunter 1989 а лучше Робертса 1959. Но где ж найти первоисточник, вики не показатель — если глупость написано зачем транслировать. Все таки графики гиперболы и экспоненциального закона распределения немного разные.  Тот же Эксцесс будет отличаться. 
                      • Jkrsss
                        09 мая 2017, 17:22
                        uralpro, второй замечательный предел я знаю. :)  Я говорю что конечный результат 1/N отличается от экспоненты. при периоде 100-200 будет серьезное отклонение, я поэтому скользящую среднию только гармоническую использую. 
                          • Jkrsss
                            09 мая 2017, 17:43
                            uralpro, где они получили экспоненту я сейчас увидел :). 
  • Al Best
    09 мая 2017, 14:11
    А есть криптовалюты в мт5? И там объёмы есть или как форекс????
  • Сергей Майоров
    09 мая 2017, 17:25

    про листовая бегло пост, не смотря кто автор, понял что автором может быть только uralpro ,  и какое же было удивление что так и оказалось :)

    ++++

  • wrmngr
    09 мая 2017, 18:44
    Я не понял, они пытаются на идеальном броуновском блуждании с нулевым мю извлечь положительное МО посредством примениния ЕМА?
      • wrmngr
        10 мая 2017, 11:18
        uralpro, хм, ну ок

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

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