Вторая часть
Как уже говорилось ранее, в качестве индикаторов мы будем использовать две простые скользящие средние.
Здесь в дело вступает библиотека 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 , которые мы обсудим далее) не рассчитывается до тех пор, пока мы не запустим нашу стратегию. Все, что она делает сейчас - добавляет наши спецификации к объекту стратегии.
Комментариев нет:
Отправить комментарий