1. Learn
  2. /
  3. 课程
  4. /
  5. Python 金融机器学习

Connected

道练习

创建移动平均与 RSI 特征

我们希望为机器学习模型加入历史数据来提升预测效果,但直接添加大量历史时间步会很麻烦。相反,您可以用技术指标把先前数据点的信息压缩到单个时间步中。

移动平均(moving average)是最简单的指标之一——它是之前若干数据点的平均值。在 TAlib 库中可用函数 talib.SMA() 计算。

另一个常见的技术指标是相对强弱指数(RSI)。其定义为:

\(RSI = 100 - \frac{100} {1 + RS}\)

\(RS = \frac{\text{过去 } n \text{ 个周期的平均上涨}} {\text{过去 } n \text{ 个周期的平均下跌}}\)

参数中的周期数 n 在 talib.RSI() 的 timeperiod 参数中指定。

RSI 常用的周期是 14,因此我们会在计算中采用该设置之一。

说明

100 XP
  • 创建一个特征名列表(先以只包含 '5d_close_pct' 的列表开始)。
  • 使用 14、30、50 和 200 作为周期,从复权收盘价(lng_df['Adj_Close'])计算 talib.SMA() 的移动平均。
  • 通过除以 Adj_Close,将这些移动平均以复权收盘价进行归一化。
  • 在循环中,使用 talib.RSI() 基于 Adj_Close 并将 n 作为 timeperiod 来计算 RSI。