【问题标题】:How to calculate slope of the line如何计算直线的斜率
【发布时间】:2018-03-05 19:06:50
【问题描述】:

我正在尝试计算我使用 getSymbols 函数下载的几只股票的调整收盘价创建的 50 天 EMA 的线斜率。

我的 EMA 看起来像这样:

getSymbols("COLUM.CO")
COLUM.CO$EMA <- EMA(COLUM.CO[,6],n=50)

这给了我一个额外的列,其中包含调整后收盘价的 50 天 EMA。现在我想添加一个包含这条线斜率的附加列。我敢肯定这是一个相当简单的答案,但我非常感谢您对此的帮助。提前谢谢你。

【问题讨论】:

    标签: line diff lm quantmod


    【解决方案1】:

    一个很好的方法是滚动最小二乘回归。 rollSFM 可以快速高效地计算系列的斜率。查看与时间单位价格活动(柱)相关的斜率通常是有意义的,因此x 可以简单地是等距点。

    唯一棘手的部分是计算出n 的有效值,即适合斜率的窗口长度。

    library(quantmod)
    getSymbols("AAPL")
    AAPL$EMA <- EMA(Ad(AAPL),n=50)
    # Compute slope over 50 bar lookback:
    AAPL <- merge(AAPL, rollSFM(Ra = AAPL[, "EMA"], 
                                Rb = 1:nrow(AAPL), n = 50))
    

    标记为beta 的列包含斜率的滚动窗口值(alpha 包含截距,r.squared 包含 R2 值)。

    【讨论】:

    • 非常感谢。我想知道是否可以仅将 beta 列添加为附加列? (不包括 alpha 和 rsquared)。谢谢
    • 只选择beta(rollSFM对象的第二列):rollSFM(Ra = AAPL[, "EMA"], Rb = 1:nrow(AAPL), n = 50)[,2] rollSFM(Ra = AAPL[, "EMA"], Rb = 1:nrow(AAPL), n = 50)[,’beta’]
    • 感谢 hvollmeier,非常感谢!
    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2012-02-23
    • 2019-10-28
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多