pythonmacd指标编写_利用python编写macd、kdj、rsi、ma等指标

s.gif 利用python编写macd、kdj、rsi、ma等指标

(3页)

1c524b19-6a3b-4cd9-8f3c-4f9605e0fbdf1.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

8.90 积分

# -*- coding: utf-8 -*- “““ Created on Thu Dec 15 13:57:32 2016@author: four “““ import pandas as pd#获取地址数据 def get_adress_data(adress=0):data=pd.read_csv(adress,parse_dates=False,header=None,names=['dateL','openL','highL','lowL','cl oseL','volL'])data['dateL']=pd.to_datetime(data.dateL)return data #获取macddef get_macd_data(data,short=0,long1=0,mid=0):if short==0:short=12if long1==0:long1=26if mid==0:mid=9data['sema']=pd.ewma(data['closeL'],span=short)data['lema']=pd.ewma(data['closeL'],span=long1)data.fillna(0,inplace=True)data['data_dif']=data['sema']-data['lema']data['data_dea']=pd.ewma(data['data_dif'],span=mid)data['data_macd']=2*(data['data_dif']-data['data_dea'])data.fillna(0,inplace=True)return data[['data_dif','data_dea','data_macd']]def get_kdj_data(data,N=0,M=0):if N==0:N=9if M==0:M=2low_list = pd.rolling_min(data['lowL'], N)low_list.fillna(value=pd.expanding_min(data['lowL']), inplace=True)high_list = pd.rolling_max(data['highL'],N)high_list.fillna(value=pd.expanding_max(data['highL']), inplace=True)rsv = (data['closeL'] - low_list) / (high_list - low_list) * 100data['KDJ_K'] = pd.ewma(rsv,com=M)data['KDJ_D']=pd.ewma(data['KDJ_K'],com=M)data['KDJ_J'] = 3 * data['KDJ_K'] - 2 * data['KDJ_D']data.fillna(0,inplace=True)return data[['KDJ_K','KDJ_D','KDJ_J']]def get_ma_data(data,N=0):if N==0:N=5data['ma']=pd.rolling_mean(data['closeL'],N)data.fillna(0,inplace=True)return data[['ma']] def get_rsi_data(data,N=0):if N==0:N=24data['value']=data['closeL']-data['closeL'].shift(1)data.fillna(0,inplace=True)data['value1']=data['value']data['value1'][data['value1']0]=0data['plus']=pd.rolling_sum(data['value1'],N)data['minus']=pd.rolling_sum(data['value2'],N)data.fillna(0,inplace=True)rsi=data['plus']/(data['plus']-data['minus'])*100data.fillna(0,inplace=True)rsi=pd.DataFrame(rsi,columns=['rsi'])return rsidef get_cci_data(data,N=0):if N==0:N=14data['tp']=(data['highL']+data['lowL']+data['closeL'])/3data['mac']=pd.rolling_mean(data['tp'],N)data['md']=0for i in range(len(data)-14):data['md'][i+13]=data['closeL'][i:i+13].mad()#data['mac']=pd.rolling_mean(data['closeL'],N)#data['md1']=data['mac']-data['closeL']#data.fillna(0,inplace=True)#data['md']=pd.rolling_mean(data['md1'],N)cci=(data['tp']-data['mac'])/(data['md']*0.015)cci=pd.DataFrame(cci,columns=['cci'])return cci#读取数据data=get_adress_data(adress=u'C:/Users/four/Desktop/m1_SZZS.csv') a=get_macd_data(data) b=get_kdj_data(data) c=get_ma_data(data) d=get_rsi_data(data) e=get_cci_data(data) 关 键 词: 利用 python 编写 macd kdj rsi ma 指标

bang_tan.gif 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:利用python编写macd、kdj、rsi、ma等指标

链接地址: https://www.wenku365.com/p-8818262.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值