利用python编写macd、kdj、rsi、ma等指标.doc_第1页
利用python编写macd、kdj、rsi、ma等指标.doc_第2页
利用python编写macd、kdj、rsi、ma等指标.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

# -*- coding: utf-8 -*-Created on Thu Dec 15 13:57:32 2016author: fourimport pandas as pd #获取地址数据 def get_adress_data(adress=0): data=pd.read_csv(adress,parse_dates=False,header=None,names=dateL,openL,highL,lowL,closeL,volL) datadateL=pd.to_datetime(data.dateL) return data#获取macddef get_macd_data(data,short=0,long1=0,mid=0): if short=0: short=12 if long1=0: long1=26 if mid=0: mid=9 datasema=pd.ewma(datacloseL,span=short) datalema=pd.ewma(datacloseL,span=long1) data.fillna(0,inplace=True) datadata_dif=datasema-datalema datadata_dea=pd.ewma(datadata_dif,span=mid) datadata_macd=2*(datadata_dif-datadata_dea) data.fillna(0,inplace=True) return datadata_dif,data_dea,data_macd def get_kdj_data(data,N=0,M=0): if N=0: N=9 if M=0: M=2 low_list = pd.rolling_min(datalowL, N) low_list.fillna(value=pd.expanding_min(datalowL), inplace=True) high_list = pd.rolling_max(datahighL,N) high_list.fillna(value=pd.expanding_max(datahighL), inplace=True) rsv = (datacloseL - low_list) / (high_list - low_list) * 100 dataKDJ_K = pd.ewma(rsv,com=M) dataKDJ_D=pd.ewma(dataKDJ_K,com=M) dataKDJ_J = 3 * dataKDJ_K - 2 * dataKDJ_D data.fillna(0,inplace=True) return dataKDJ_K,KDJ_D,KDJ_J def get_ma_data(data,N=0): if N=0: N=5 datama=pd.rolling_mean(datacloseL,N) data.fillna(0,inplace=True) return datama def get_rsi_data(data,N=0): if N=0: N=24 datavalue=datacloseL-datacloseL.shift(1) data.fillna(0,inplace=True) datavalue1=datavalue datavalue1datavalue10=0 dataplus=pd.rolling_sum(datavalue1,N) dataminus=pd.rolling_sum(datavalue2,N) data.fillna(0,inplace=True) rsi=dataplus/(dataplus-dataminus)*100 data.fillna(0,inplace=True) rsi=pd.DataFrame(rsi,columns=rsi) return rsi def get_cci_data(data,N=0): if N=0: N=14 datatp=(datahighL+datalowL+datacloseL)/3 datamac=pd.rolling_mean(datatp,N) datamd=0 for i in range(len(data)-14): datamdi+13=datacloseLi:i+13.mad() #datamac=pd.rolling_mean(datacloseL,N) #datamd1=datamac-datacloseL #data.fillna(0,inplace=True) #datamd=pd.rolling_mean(datamd1,N) cci=(datatp-datamac)/(datamd*0.015) cci=pd.DataFrame(cci,columns=cci) return cci#读取数据data=get_adress_data(adress=uC:/Users/four/Desktop/m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论