分钟数据周期转换与分时策略构建
由clearyf创建,最终由clearyf 被浏览 342 用户
导语
很多朋友都在尝试使用平台的分钟数据,下面介绍一下分钟数据的读取与分时策略的构建。
分钟数据的读取
- 股票分钟数据,以000001.SZA为例:
df1 = DataSource('bar1m_000001.SZA').\
read(start_date='2015-01-01',end_date='2015-05-01').set_index('date')
- 期货分钟数据,以HC1901.SHF合约为例
df 2= DataSource('bar1m_HC1901.SHF').\
read(start_date='2018-01-01',end_date='2018-05-01').set_index('date')
分钟频率转换
def resample(df,period):
# https://pandas-docs.github.io/pandas-docs-travis/timeseries.html#offset-aliases
Xmin_df=pd.DataFrame()
Xmin_df['open'] = df['open'].resample(period, how='first')
Xmin_df['high'] = df['high'].resample(period, how='max')
Xmin_df['low'] = df['low'].resample(period, how='min')
Xmin_df['close'] = df['close'].resample(period, how='last')
Xmin_df['volume'] = df['volume'].resample(period, how='sum')
Xmin_df['amount'] = df['amount'].resample(period, how='sum')
Xmin_df.dropna(inplace=True)
return Xmin_df
- 股票1min数据转5min:
df1_5min = resample(df1.set_index('date'), '5min')
- 期货1min数据转5min:
df2_5min = resample(df2.set_index('date'),'5min')
分钟策略构建
- 股票策略5min策略构建:首先通过自定义模块m4计算5minK线数据,然后利用表达式引擎构建买卖条件buy_condition和sell_condition,最后在回测逻辑中根据5minK线的条件信号触发下一个分钟bar上的买卖操作。本例设置的买入价为下一分钟K线的开盘价,卖出价位下一分钟K线的收盘价。
- 注意到m4的5minK线数据输出连线到Trade模块m3的基准数据接口,表示使用该股票的5min数据作为基准行情数据,如果不连接这条线则使用Trade模块默认设置的基准标的000300.HIX分钟数据。
\
策略案例
https://bigquant.com/experimentshare/555961587ebf4171b886b678faf8c961
- 期货分钟策略的构建可以参考"我的策略"—"模板策略"—"期货"—"常用模板"文件夹下的期货分钟策略样例,如果需要频率转换可以参考上面的股票案例处理一下分钟数据
本文介绍了股票、期货的分钟数据获取、频率转换和策略编写,期权、基金等数据的分钟数据使用方式类似,具体分钟数据的调用方式可以参考文档中的数据字典。