期货量化交易实例

版权声明:转载请标注博主个人主页:http://blog.csdn.net/ViatorSun 及本篇博客地址 https://blog.csdn.net/ViatorSun/article/details/86577653

量化交易是用数学模型替代人的主观判断,通过使用计算机从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少投资者因为情绪波动而造成的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。

在这里推荐个组织:http://tushare.org 。Tushare是一个免费、开源的python财经数据接口包。

Tushare: 主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。

本项目需要的库文件有以下几个:

bs4
lxml
numpy
pandas
tushare
matplotlib

完整代码如下:

#  !/usr/bin/env  python
#  -*- coding:utf-8 -*-
# @Time   :  2018.
# @Author :  绿色羽毛
# @Email  :  [email protected]
# @Blog   :  https://blog.csdn.net/ViatorSun
# @Note   :  


import numpy as np
import pandas as pd
import tushare as ts
import matplotlib.pyplot as plt


# 获取数据
s_pf = '600000'   # 浦发发行号
s_gd = '601818'   # 光大发行号

sdate = '2015-01-01'  # 数据提取开始日期
edata = '2018-12-31'  # 数据提取截止日期

# 提取数据信息
df_pf = ts.get_h_data(s_pf , start=sdate , end=edata).sort_index(axis=0,ascending=True)
df_gd = ts.get_h_data(s_gd , start=sdate , end=edata).sort_index(axis=0,ascending=True)

# 合并数据
df = pd.concat([df_pf.close , df_gd.close] , axis=1 ,keys=["pf_close" , "gd_close"])
df.ffill(axis = 0 , inplace = True)

# 防止数据丢失,备份数据
df.to_csv("pf_gd.csv")

# 重新从保存文件中提取数据
# df = pd.read_csv("pf_gd.csv")

# 计算相关系数
corr = df.corr(method = "pearson" , min_periods = 1)

df.plot(figsize = (20,12))

# 归一化处理
df["pf_one"] = df.pf_close / float(df.pf_close[0]) * 100
df["gd_one"] = df.gd_close / float(df.gd_close[0]) * 100

df.pf_one.plot(figsize = (20,12))
df.gd_one.plot(figsize = (20,12))

plt.savefig("pf_gd.png")
plt.show()

常见问题汇总(如有新问题留言即可,后续跟进补充):

1、出现如下情况的原因是网络掉线了,检查下网络即可解决

在这里插入图片描述

2、如果提示查找不到 “bs4” 的提示信息

出现的问题是 没有安装 “bs4” 库文件,安装上即可

猜你喜欢

转载自blog.csdn.net/ViatorSun/article/details/86577653