python-双均线策略的预测能力研究
来源:互联网 发布:苏州软件项目经理招聘 编辑:程序博客网 时间:2024/06/06 01:57
做量化,不仅要懂编程,有交易经验,而且要数学和统计学要好。恶补统计理论中,好后悔上统计课的时候做白日梦了。。。。。。。。。。。
下面试着尝试了分析双均线能否产生预测力,我们知道很多回测产生的盈利,有时候并不是策略本身的问题,有可能是数据的趋势。本文尝试通过消除平均趋势或者采用随机基准来对比策略的收益,似乎,双均线蛮好。
# -*- coding: utf-8 -*-"""Created on Tue Jun 6 14:50:04 2017@author: yunjinqi E-mail:yunjinqi@qq.com Differentiate yourself in the world from anyone else."""# -*- 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 #获取数据 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['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=pd.DataFrame(value) #data.to_csv('参数优化.csv') #消除趋势后的df_up=df.cross[df.cross>0]df_down=df.cross[df.cross<0]p=len(df_up)/(len(df_down)+len(df_up))ll=len(df)mu=p*len(df)muimport randomsuiji_value=[]for i in range(10000): total=[] for i in range(len(df)): v=random.randint(0,ll) if v<mu: total.append(1) if v>=mu: total.append(-1) total=pd.Series(total) suiji_profit=(df['ret']*total).sum() print(suiji_profit) suiji_value.append(suiji_profit)suiji_value=pd.Series(suiji_value).sum()/10000suiji_value#随机信号只能够产生平均83.9的收益,而双均线能够产生15593的利润,#有理由相信这是一个好策略#我们尝试消除平均趋势之后再计算相应的盈利df['new_ret']=(df['close']-df['close'].shift(1))/df['close'].shift(1)aa=df['new_ret'].mean()df['new_ret1']=df['new_ret']-pd.Series([aa]*len(df))df['ret2']=df['new_ret1']*df['close'].shift(1)(df['ret2']*df['cross']).sum()#计算出来消除平均趋势之后的收益15571,只差了20多。#似乎均线策略,马马虎虎证明了,是可以产生预测能力的。
阅读全文
0 0
- python-双均线策略的预测能力研究
- python-双均线预测能力检验2
- python双均线预测能力检验3
- 基于python的商品购买能力预测系统
- 时序预测,TensorFlow的策略
- 时序预测,TensorFlow的策略
- 研究能力的几个层次
- 当前地震预测研究的状况报告
- 拥有预测结果的能力才是胜利的保障
- R语言利用ROCR评测模型的预测能力
- 有预测能力的人,都会用贝叶斯来思考
- 量化策略研究的网站
- 论文及研究能力的培养
- 使用SVM预测大盘涨跌的简单策略
- python的策略模式
- 基于预测编码的图像压缩方法的研究
- "基于ARMA预测模型的电路故障研究"小结
- 对智能手机操作系统发展的研究与预测
- JAVA版CORBA程序1——HelloWorld
- java.io.IOException: open failed: ENOENT (No such file or directory)
- Leetcode 251 Flatten 2D Vector
- 链表中删除所有值为val的节点
- 如何使用Vue中的slot
- python-双均线策略的预测能力研究
- linux配置php扩展GD库等
- 集成支付平台是什么?
- mtk--gpio调试
- 多态
- 设置vim的默认模板文件
- celery常用配置总结 【celery配置worker数和单个worker最多执行任务数】
- 通达OA MQ和Redis服务无法启动问题的处理(图文)
- 编程十诫