Advertisement

【Python 量化交易】SMA技术指标

阅读量:

SMA Source Code

复制代码
    class SMAIndicator(object):
    """
    对比通达信,测试通过,实际使用可以四舍五入
    """
    def __init__(self,
                 value: pd.Series,
                 N: int = 3,
                 M: int = 1,
                 ):
        self._value = value
        self.N = N
        self.M = M
        self.r = self.M/self.N
        self._run()
    
    def _run(self):
        # 修改初始值
        self._value.iloc[0] = self._value.values[0]/self.r
        self.sma = self._value.rolling(window=self._value.shape[0], min_periods=1).apply(
            lambda x: (self.r * ((1-self.r) ** np.arange(0, len(x))[::-1]) * x).sum()
        )
    
    def SMA(self):
        return pd.Series(self.sma, name='sma{}-{}'.format(self.N, self.M))

欢迎关注~ SandQuant 专注于全球金融数据和量化投资策略

全部评论 (0)

还没有任何评论哟~