第一步,下载原始数据
首先,下载文华财经赢智模拟版本(免费的),可以做量化分析的。
编写指标函数,比如下载数据,代码如下
CLOSE>0,BK;
CLOSE>0,SP;
CLOSE>0,SK;
CLOSE>0,BP;
AUTOFILTER;
然后针对每个品种进行回测,在回测报告里面找到交易明细,查看,并且保存。
这样就得到每个品种的交易数据了。
注:通达信也可以获取哦;
第二步,用python进行分析,代码如下:
# -*- coding: utf-8 -*-
"""
Created on Fri Jan 20 22:20:25 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 os
from scipy import stats
###################################################处理数据函数
#读入数据,并且做转化成浮点数,由于计算机问题,读入的数据有x00,所以,用这个函数
#把数据处理,如果计算机正常,读入的数据可以直接转换成浮点数,可以直接忽略
def get_flo(file,N):
x=pd.read_excel(file)
x=x.ix[::,8]
x=x[0:257]
for i in range(len(x)):
x[i]=float(x[i][:N])
return x
#计算简单收益率
def get_ret(wenhua):
for i in range(len(wenhua)-1):
try:
wenhua[i]=(wenhua[i+1]-wenhua[i])/wenhua[i]
except ZeroDivisionError:
print(i)
pass
del wenhua[len(wenhua)-1]
return wenhua
#################################################读取文华数据
os.getcwd()
os.chdir('C:\\Users\\Administrator')
file='文华商品 日线 获取数据.xls'
wenhua=get_flo(file,5)
wenhua=get_ret(wenhua)
del wenhua[len(child)-1]
##################################################读取数据文件夹中的其他品种
#遍历数据文件夹,处理数据,并且做回归分析,计算出相应的贝塔值
filepath='C:\\Users\\Administrator\\数据\\'
pathDir = os.listdir(filepath)
z=0
data={}
for allDir in pathDir:
child = os.path.join('%s%s' % (filepath, allDir))
news=child
i=1
j=0
try:
child=gets(child,i)
except ValueError:
i=1+1
continue
child=get_ret(child)
del child[len(child)-1]
beta, alpha, r_value, p_value, std_err=stats.linregress(wenhua,child)
z=z+1
news={'品种':news,'贝塔值':beta,'alpha值':alpha,'r_value':r_value,'P_value':p_value,'std_err':std_err}
data[z]=news
###################################################处理字典数据
#转换成数据框
df=pd.DataFrame(data)
df.head()
#发现日周期数据很长,不美观,简单处理一下
for i in range(1,34):
df.ix[4,i]=df.ix[4,i][26:30]
#查看df数据
df.head()
#写入csv文件,并保存在桌面
os.getcwd()
os.chdir('C:\\Users\\Administrator\\desktop')
df.to_csv('very_good_贝塔.csv')
###不完善地方
#黄金,棉花几个合约计算的贝塔值是1,中间处理数据的过程中存在某些潜在bug
###有好的建议,好的投资想法可以交流哦。qq群:226224941
第三步:结果
注:默默吐槽,其实用excel就可以实现。用python来提升下逼格!!!