Генератор сигналов MACD R

Простой круговой вопрос. Пытаюсь найти петлю (не желательно) или еще что-нибудь, чтобы придумать сигнал для сточа. если Diff ‹1, >-1, 1, иначе 0.

library(quantmod)

getSymbols("SPY", src="yahoo", from="2013-01-01", to="2015-05-01")

y <- na.omit(merge(SPY, SMI(Cl(SPY))))

y$diff <- y$SMI - y$signal

# if Diff <1, >-1, then 1, else 0. 

person SJSU2013    schedule 06.06.2015    source источник
comment
ты просто ищешь ifelse(abs(y$diff)>1,1,0)?   -  person MrFlick    schedule 06.06.2015
comment
Да, но я получаю ошибку в abs(y$diff) : нечисловой аргумент математической функции. Также я пытаюсь создать условие ifelse, когда оно ниже 1 и выше -1.   -  person SJSU2013    schedule 06.06.2015


Ответы (1)


Если ваш вопрос относительно вашего комментария к @MrFlick заключается в том, что вы хотите отобразить разницу (y $ diff) для значений ниже -1 до -1, значений выше 1 до 1 и остальных значений до 0, эта строка сделает это:

y$diff.map <- ifelse(y$diff>1,1,ifelse(y$diff< -1,-1,0))

В ответ на ваш обновленный комментарий в строке ниже значения от -1 до +1 будут сопоставлены с 1, а значения за пределами этого диапазона равны нулю.

y$diff.map <- ifelse(y$diff >= -1 & y$diff <= 1,1,0)
person hvollmeier    schedule 06.06.2015
comment
Это в основном то, что я хочу. Однако мне просто нужно, чтобы сигнал diff.map был равен 1, когда значения diff находятся между -1 и 1. - person SJSU2013; 07.06.2015