历史文档

分钟数据周期转换与分时策略构建

由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

  • 期货分钟策略的构建可以参考"我的策略"—"模板策略"—"期货"—"常用模板"文件夹下的期货分钟策略样例,如果需要频率转换可以参考上面的股票案例处理一下分钟数据

本文介绍了股票、期货的分钟数据获取、频率转换和策略编写,期权、基金等数据的分钟数据使用方式类似,具体分钟数据的调用方式可以参考文档中的数据字典。

标签

策略回测交易信号风险控制数据清洗
评论
  • 克隆的策略没办法运行,直接就报错了,提示 'NoneType' object has no attribute 'set_index'
{link}