asset.py 文件源码

python
阅读 41 收藏 0 点赞 0 评论 0

项目:py-investment 作者: kprestel 项目源码 文件源码
def kama(self, efficiency_ratio_periods=10, ema_fast=2, ema_slow=30,
             period=20, column='adj_close'):
        er = self._efficiency_ratio_computation(
                period=efficiency_ratio_periods, column=column)
        fast_alpha = 2 / (ema_fast + 1)
        slow_alpha = 2 / (ema_slow + 1)
        smoothing_constant = pd.Series(
                (er * (fast_alpha - slow_alpha) + slow_alpha) ** 2,
                name='smoothing_constant')
        sma = pd.Series(self.ohlcv[column].rolling(period).mean(), name='SMA')
        kama = []
        for smooth, ma, price in zip(iter(smoothing_constant.items()),
                                     iter(sma.shift(-1).items()),
                                     iter(self.ohlcv[column].items())):
            try:
                kama.append(kama[-1] + smooth[1] * (price[1] - kama[-1]))
            except:
                if pd.notnull(ma[1]):
                    kama.append(ma[1] + smooth[1] * (price[1] - ma[1]))
                else:
                    kama.append(None)
        sma['KAMA'] = pd.Series(kama, index=sma.index,
                                name='{} days KAMA Ticker {}'.format(period,
                                                                     self.ticker))
        yield sma['KAMA']
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号