数据获取与处理-构建一个完整的商品期货T+O开平多空仓期货实盘高频交易策略框架的数据获取与处理

构建一个完整的商品期货T+O开平多空仓期货实盘高频交易策略框架的数据获取与处理代码。

import tushare as ts   # 导入tushare模块
import numpy as np     # 导入numpy模块

# 获取所有上市期货合约的信息
futures_info = ts.get_future_contracts()

# 根据品种类型获取对应的期货合约信息(以豆粕为例)
dp_futures = futures_info[futures_info['variety']=='豆粕']

# 获取豆粕连续合约的历史行情数据
dp_data = ts.pro_bar(ts_code=dp_futures.iloc[0]['ts_code'], adj='qfq',
                      start_date='20150101', end_date='20211231')

# 计算移动平均线
dp_data['ma5'] = dp_data['close'].rolling(5).mean()
dp_data['ma10'] = dp_data['close'].rolling(10).mean()
dp_data['ma20'] = dp_data['close'].rolling(20).mean()

# 计算MACD指标
dp_data['ema12'] = dp_data['close'].ewm(span=12, adjust=False).mean()
dp_data['ema26'] = dp_data['close'].ewm(span=26, adjust=False).mean()
dp_data['diff'] = dp_data['ema12'] - dp_data['ema26']
dp_data['dea'] = dp_data['diff'].ewm(span=9, adjust=False).mean()
dp_data['macd'] = 2 * (dp_data['diff'] - dp_data['dea'])

# 计算RSI指标
delta = dp_data['close'].diff()
gain, loss = delta.copy(), delta.copy()
gain[gain < 0] = 0
loss[loss > 0] = 0
gain_avg = gain.rolling(14).mean()
loss_avg = abs(loss.rolling(14).mean())
rs = gain_avg / loss_avg
dp_data['rsi'] = 100 - (100 / (1 + rs))

# 计算KDJ指标
low_list = dp_data['low'].rolling(9).min()
high_list = dp_data['high'].rolling(9).max()
rsv = (dp_data['close'] - low_list) / (high_list - low_list) * 100
dp_data['k'] = rsv.ewm(com=2).mean()
dp_data['d'] = dp_data['k'].ewm(com=2).mean()
dp_data['j'] = 3 * dp_data['k'] - 2 * dp_data['d']

# 输出处理后的历史行情数据
print(dp_data)

代码中使用了 tushare 模块获取了所有上市期货合约的信息,并根据品种类型获取到了豆粕期货合约的信息。然后,使用 pro_bar() 函数获取豆粕连续合约的历史行情数据,并计算了移动平均线、MACD指标、RSI指标和KDJ指标。最后,输出处理后的历史行情数据。

通过对历史行情数据进行处理,我们可以更加直观地了解期货价格的趋势和波动情况,为之后制定交易策略提供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值