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

среда, 28 октября 2020 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 3. Добавление индикаторов.

Первая часть
Вторая часть

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

Здесь в дело вступает библиотека TTR, сокращение от Technical Trading Rules.  Для расчета простой скользящей средней используется функция SMA().  Это делается с помощью функции add.indicator, которая добавляет наши индикаторы в объект стратегии:

 

# Добавление индикаторов

# Быстрая скользящая средняя

add.indicator(strategy = strategy.st,

  name = "SMA",

  arguments = list(x = quote(Cl(mktdata)), n = 7),

  label = "nFast"

# Медленная скользящая средняя

add.indicator(strategy = strategy.st, 

  name = "SMA"

  arguments = list(x = quote(Cl(mktdata)), n = 21), 

  label = "nSlow"

 

Давайте рассмотрим эти функции более подробно.

В strategy мы передаем переменную, в которой ранее сохранили объект нашей стратегии, то есть strategy.st.

SMA - функция из пакета TTR для расчета простой скользящей средней. Если вы посмотрите справку по этой функции, то увидите, что она требует два аргумента: 

x - объект цены;

n - период расчета скользящей средней, по умолчанию он равен 10.

Эти аргументы передаются в списке arguments.

Обычно, если вы хотите обратиться к переменной   Close  набора данных  IWM, обычно это делается с помощью вызова   IWM$Close  или  IWM[,4] . Мы же здесь обращаемся к объекту данных  mktdata.

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

Cl представляет собой сокращение от Close. Также могут использоваться следующие значения: 

 Op() : Open

 Hi() : High

 Lo() : Low

 Cl() : Close

 Vo() : Volume

 Ad() : Adjusted

 OpCl() : Open и Close (набор данных nx2)

 HLC() : High, Low и Close (набор данных nx3)

quote()  - это функция R, которая просто помещает передаваемый ей параметр в кавычки.

Функция  add.indicator()  (вместе с  add.signal  и  add.rules  , которые мы обсудим далее) не рассчитывается до тех пор, пока мы не запустим нашу стратегию. Все, что она делает сейчас - добавляет наши спецификации к объекту стратегии.


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

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