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

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

ID:8818262

大小:33.00 KB

页数:3页

时间:2018-04-08

利用python编写macd、kdj、rsi、ma等指标_第1页
利用python编写macd、kdj、rsi、ma等指标_第2页
利用python编写macd、kdj、rsi、ma等指标_第3页
资源描述:

《利用python编写macd、kdj、rsi、ma等指标》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、#-*-coding:utf-8-*-"""CreatedonThuDec1513:57:322016@author:four"""importpandasaspd#获取地址数据defget_adress_data(adress=0):data=pd.read_csv(adress,parse_dates=False,header=None,names=['dateL','openL','highL','lowL','closeL','volL'])data['dateL']=pd.to_datetime(da

2、ta.dateL)returndata#获取macddefget_macd_data(data,short=0,long1=0,mid=0):ifshort==0:short=12iflong1==0:long1=26ifmid==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

3、']=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)returndata[['data_dif','data_dea','data_macd']]defget_kdj_data(data,N=0,M=0):ifN==0:N=9ifM==0:M=2

4、low_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

5、_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)returndata[['KDJ_K','KDJ_D','KDJ_J']]defget_ma_data(data,N=0):ifN==0:N=5data['ma']=pd.rolling_mean(dat

6、a['closeL'],N)data.fillna(0,inplace=True)returndata[['ma']]defget_rsi_data(data,N=0):ifN==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['value2']=data['

7、value']data['value2'][data['value2']>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,co

8、lumns=['rsi'])returnrsidefget_cci_data(data,N=0):ifN==0:N=14data['tp']=(data['highL']+data['lowL']+data['closeL'])/3data['mac']=pd.rolling_mean(data['tp'],N)data['md']=0foriinrange(len(data)-14)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。