python-双均线预测能力检验2

来源:互联网 发布:中科院半导体所 知乎 编辑:程序博客网 时间:2024/06/14 23:42
# -*- coding: utf-8 -*-  """ Created on Thu May 25 08:55:12 2017  @author: yunjinqi    E-mail:yunjinqi@qq.com    Differentiate yourself in the world from anyone else. """  import pandas as pd  import numpy as np  import datetime  import time  import randomimport matplotlib.pyplot as pltimport seaborn as sns#获取数据  df=pd.read_csv('C:/Users/HXWD/Desktop/rb000.csv',encoding='gbk')  df.head()df.columns=['date','open','high','low','close','volume','amt']  df.head()  value=[]  for i in range(5,6):      for j in range(20,21):          df['ma5']=df['close'].rolling(i).mean()          df['ma20']=df['close'].rolling(j).mean()          df.ix[df['ma5']>df['ma20'],'cross']=1          df.ix[df['ma5']<=df['ma20'],'cross']=-1          #df[['close','ma5','ma20']][-200:].plot()          df['ret']=(df['close']-df['close'].shift(1))/df['close'].shift(1)          df['profit']=df['ret']*df['cross']          #df['profit'].plot()          target=df['profit'].sum()          s=[i,j,target]          ts=time.strftime('%Y-%m-%d %X', time.localtime() )          value.append(s)          print('当前时间:{}短期参数:{},长期参数:{}优化完毕,净利润{}'.format(ts,i,j,s)) #基于蒙特卡洛模拟评估双均线的预测能力data=df[['ret','cross']].fillna(0)target_value=[]for i in range(5000):    li=list(data['ret'])    random.shuffle(li)    profit=(li*data['cross']).sum()    print(profit)       target_value.append(profit)target_valueplt.hist(target_value)jianyan_profit=(data['ret']*data['cross']).sum()jianyan_profit

#基于随机的收益与策略的收益差距非常大,我们有理由相信,策略是具有预测能力的。

#量化投资交流群:226224941,欢迎大家加入。

原创粉丝点击