求助期货日内交易回测
来源:1-1 量化交易开发课程导学

慕仙2055982
2023-02-24
老师:想编一个简单的期货日内交易回测程序,即先获取开盘后30分钟的最高(H)、最 低价(L);在09:31—14:30时间段内,若价格>H买入、价格<L卖出;14:45平仓。
编写思路:1.函数def initialize(context)初始化,包括
g.security, set_benchmark(security),set_order_cost(cost, type, ref=None),set_slippage(object,type=None, ref=None)等等,在初始化中还设定定时运行函数 run_daily(market_open, time=‘every_bar’),每个交易日盘中运行自定义的market_open(context)。
2.自定义函数def market_open(context),目的是获取当天1分钟级别的行情和开盘后30分钟的最高(H)、最低价(L);判断交易信号;进行交易;评估交易结果。
问题:1.如何得到开盘后30分钟的最高(H)、最低价(L)?
2.编写思路对吗?
1回答
-
meteor2022
2023-02-25
1.如何得到开盘后30分钟的最高(H)、最低价(L)?
你需要使用get_ticks获取实时行情
get_ticks不返回最高价与最低价,需要你设置high与low两个变量,自行存储当天的最高价与最低价
get_ticks示例
其中行情数据返回的为时间20180702150003指2018-07-02-15:00:03
d = get_ticks(['000300.XSHG', '000001.XSHE'],start_dt=None, end_dt="2018-07-03", count=3) print(d) {'000300.XSHG': array([(20180702150000.0, 3407.98, 3510.84, 3383.73, 8392371200.0, 107100880896.0), (20180702150003.0, 3407.98, 3510.84, 3383.73, 8435144800.0, 107601543168.0), (20180702150051.0, 3407.96, 3510.84, 3383.73, 8435144800.0, 107601543168.0)], dtype=(numpy.record, [('time', '<f8'), ('current', '<f8'), ('high', '<f8'), ('low', '<f8'), ('volume', '<f8'), ('money', '<f8')])), '000001.XSHE': array([(20180702145657.0, 8.62, 9.05, 8.56, 128485000.0, 1132138244.0), (20180702145700.0, 8.62, 9.05, 8.56, 128514800.0, 1132395012.0), (20180702150003.0, 8.61, 9.05, 8.56, 131552000.0, 1158545922.0)], dtype=(numpy.record, [('time', '<f8'), ('current', '<f8'), ('high', '<f8'), ('low', '<f8'), ('volume', '<f8'), ('money', '<f8')]))}1)]))}
2.编写思路
set_slippage是设置滑点,默认的滑点是 PriceRelatedSlippage(0.00246),滑点范围需要经验判断
大致思路没问题,代码还需要多编写多调试
022023-03-01
相似问题