EMA指标

ema指标,通过测试输出的结果和软件一致

 

import pandas as pd

df=pd.read_csv(r'E:\程序开发测试_阙辉\PYTHON\股票研究\红米电脑备份\MACD分析\000002.csv',encoding='gbk')

# 默认按照列排序,即纵向排序;如果axis 为1,则是横向排序。
# by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名"。
# ascending:布尔型,True则升序,如果by=['列名1','列名2'],则该参数可以是[True, False],即第一字段升序,第二个降序。
# inplace:布尔型,是否用排序后的数据框替换现有的数据框。
# kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心。
# na_position:{‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面
df = df.sort_values(by=["日期"], axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

def QH_Get_EMA(qh_df,qh_days=5,qh_close = "收盘价"):
    qh_df = qh_df
    qh_days = qh_days
    qh_close = qh_close
    for qh_i in range(len(qh_df)):
        qh_close_jia = qh_df.loc[qh_df.index[qh_i],qh_close]    #当天收盘价
        if qh_i == 0:
            qh_ema = qh_close_jia
        elif qh_i > 0:
            qh_close_ema = qh_df.loc[qh_df.index[qh_i - 1], "QH_EMA_{}".format(qh_days)]   #前一日的ema
            qh_ema = ((qh_days - 1) * qh_close_ema + 2 * qh_close_jia) / (qh_days + 1)
        qh_df.loc[qh_df.index[qh_i], "QH_EMA_{}".format(qh_days)] = qh_ema

    return qh_df

aa = QH_Get_EMA(df,qh_days=50)
print(aa)
aa=aa.to_csv(r'E:\程序开发测试_阙辉\PYTHON\股票研究\红米电脑备份\MACD分析\000002_ema.csv',encoding='gbk')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值