рекомендации

вторник, 26 января 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 8. Продолжаем тестировать торговые стратегии в Quantstrat. Реверсивная стратегия.

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть

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

 

Во-первых, в настоящее время наша стратегия работает следующим образом: как только быстрая скользящая средняя пересекает медленную снизу вверх, мы открываем длинную позицию. Когда она пересекает медленную скользящую среднюю сверху вниз, мы закрываем позицию. После этого, до момента следующего пересечения мы находимся вне рынка. Однако, теоретически, пересечение медленной скользящей средней сверху вниз представляет собой сигнал на открытие короткой позиции. 

Добавив шорты, мы получим так называемую “реверсивную” торговую систему, которая всегда находится в рынке. Давайте реализуем ее. С точки зрения написания кода, нам всего лишь нужно добавить еще два правила, для открытия и закрытия коротких позиций: 

 

# Правило открытия короткой позиции

add.rule(strategy.st,

  name = "ruleSignal",

  arguments = list(sigcol = "short",

    sigval = TRUE,

    orderqty = -100,

    ordertype = "market",

    orderside = "short"

    replace = FALSE

    TxnFees = -20

    prefer = "Open"),

  type = "enter",

  label = "EnterSHORT"

# Правило закрытия короткой позиции

add.rule(strategy.st, 

  name = "ruleSignal"

  arguments = list(sigcol = "long"

    sigval = TRUE

    orderside = "short"

    ordertype = "market"

    orderqty = "all"

    TxnFees = -20

    prefer = "Open",

    replace = FALSE), 

  type = "exit"

  label = "Exit2LONG")

 

Если мы теперь снова запустим нашу стратегию, то увидим следующие результаты:

 

 

 

 

                             SBER.DailyEqPL

--------------------------  ---------------

Совокупный доход                  0.0307970

Годовая прибыль                   0.0060995

Годовой коэффициент Шарпа         0.2159256

Коэффициент Кальмара              0.1128928

 

                     SBER.DailyEqPL

------------------  ---------------

Annualized StdDev         0.0282480

Max DrawDown              0.0540287

Value-at-Risk            -0.0024957

Conditional VaR          -0.0029566

 

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

Комментариев нет:

Отправить комментарий