第一步,下载原始数据

            首先,下载文华财经赢智模拟版本(免费的),可以做量化分析的。

                  编写指标函数,比如下载数据,代码如下

                   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来提升下逼格!!!

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐