【问题标题】:MACD signal generator RMACD 信号发生器 R
【发布时间】:2015-06-06 05:30:38
【问题描述】:

简单的循环问题。试图找到一个循环(不是首选)或其他任何东西来为 stoch 提供一个信号。如果 Diff -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. 

【问题讨论】:

  • 您只是在寻找ifelse(abs(y$diff)&gt;1,1,0)吗?
  • 是的,但我得到“abs(y$diff) 中的错误:数学函数的非数字参数”。我也试图在低于 1 和高于 -1 时创建 ifelse 条件

标签: r loops quantmod


【解决方案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)

【讨论】:

  • 这基本上就是我想要的。但是,当 diff 值介于 -1 和 1 之间时,我只需要 diff.map 信号等于 1。
猜你喜欢
  • 2019-07-09
  • 2020-01-11
  • 2012-07-31
  • 1970-01-01
  • 2022-12-10
  • 2019-08-01
  • 2018-04-10
  • 2015-10-05
  • 2014-04-15
相关资源
最近更新 更多