回测模块

回测模块是金融领域中至关重要的分析工具,通过对历史数据进行模拟交易,量化策略在不同市场环境下的表现。它能够评估投资策略的盈利能力、风险水平及稳定性,帮助投资者优化策略,提高未来实际交易的成功率和风险控制能力。回测模块通过严格的算法和数据分析,为金融决策提供有力支持,是金融专业人士不可或缺的决策辅助工具。

盘前数据处理未来函数问题

在回测模块中,例如生成订单日期是1号,实际下单日期是2号。2号的时候是可以调用盘前处理的。盘前处理的时候如果使用data.histroy是可以在盘前就获取当天的开盘和收盘信息的。这个属于未来函数,不过如果下午交易,用上午开盘价是否低开做cancel order判断是ok的。但是问题来了。回测这样操作是可以的,可是如果模拟交易和实盘都是在前一天就生成信号,所以就想问一下这个盘前数据处理是否会在模拟交易和实盘中运行,如果运行取的是哪一天的数据。。。因为回测中2号盘前运行可以取到2号全天数据,这个在现实中明显取不到,当天开盘都是取不到的。。。

所以问题是

那么如果回测模块中布置了盘前数据处理,

更新时间:2023-10-09 03:33

请问回测模块加中入 m_deps=np.random.randn(), 是做什么用的呢?

3. 启动回测

策略回测接口: https://bigquant.com/docs/module_trade.html

m = M.trade.v4( instruments=['510330.HOF'], start_date=start_date, end_date=end_date, initialize=initialize, history_ds = history_ds, before_trading_start=None, handle_data=handle_data, # 买入订单以开盘价成交 order_pric

更新时间:2023-10-09 03:32

关于自定义基准收益曲线的问题

发现Trade (回测/模拟)模块支持的基准收益代码还是比较少的,主要是几个比较大的指数。

但是在做策略回测的时候其实有时候是想比较择时的有效性,真正想对比的可能是股票本身的走势,不知道是否可以自定义某只股票或者行业指数作为基准收益?

更新时间:2023-10-09 03:02

回测模块报错”no module named ‘dai.fuctions‘“

策略在执行回测模块是代码出现报错,求大神解答,多谢!!!

\

更新时间:2023-10-09 02:38

日历效应实现

https://bigquant.com/codeshare/9d324229-34f1-4516-ae55-78e8149adba7

在回测模块我想实现,周四买入股票周一卖出,来做一个基于周内日历效应的策略,请问回测平台中的主函数部分应当如何写代码才能实现我这个需求呢?求大神解答!!!

更新时间:2023-10-09 02:35

回测模块,还有很多评价模块图画不出来

多策略回测,换手率分析等回测模块都显示plot is deprecated, 都画不出来,麻烦工程师们看一下是代码该更新了吗?

更新时间:2023-10-09 02:08

有没有关于context、T、label等的详细介绍

问题

不是很清楚这几个自带的变量都是什么,都有什么?

\

解答

context是用来调用回测模块中对象的,具体可以调用哪些可以参考以下两个文档:

  1. https://bigquant.com/wiki/doc/-spI0guZnrT → HFTrade模块
  2. https://bigquant.com/wiki/doc/fangfa-context-lOnbF8oISJ → Trade模块

T 是平台内部封装的一些方法,常用的是T.plot, T.parallel_map, T.norm这种;

label没太明白是什么

更新时间:2023-06-01 14:26

策略如何在实盘里实现,而不是在回测模块

问题

{w:100}{w:100}

解答

模拟盘也好 实盘也好,和回测运行的是同一个notebook,但仍然会有一些细小的区别:

  1. 模拟盘实盘是每个交易周期都会触发运行初始化函数,而回测只会运行一次初始化函数;
  2. 模拟盘和实盘里,前一日赋值的变量无法保留到下一个交易期,比如在方法里自定义的context.a = 123这种变量,回测里是可以定义一次后在所有交易期均可以调用;而模拟盘和实盘里则不行,只会当天定义的变量当

更新时间:2023-06-01 02:13

怎么在回测模块的主函数中,获取当日的最大策略收益指标?

问题

在回测模块的主函数中,我想要获取截止到当日的策略累计收益,如下语句,怎么报错啊?莫非不是这个参数?

context.perf_tracker.cumulative_risk_metrics.algorithm_period_return (报错)

而取下面的最大回撤指标就没有问题,正确的方式是怎样的?

context.perf_tracker.cumulative_risk_metrics.max_drawdown (正常)

下面取日收益也没有问题,咋累计收益就不行呢?

context.perf_tracker.cumulative_risk_metrics.algo

更新时间:2023-06-01 02:13

请教一个问题!,关于ranker_prediction

问题

大家好,我看很多关于AI的策略里面都有以下两句代码

ranker_prediction 和 context.benckmark_risk.ix[today_date].values[0]。我想请问这个内嵌的逻辑是什么…

  • context.ranker_prediction就是传给回测模块的预测结果数据,通过context.options[‘data’].read_df()读出来。 ranker_prediction就获取到回测当天的预测结果数据

![{w:100}{w:100}{w:100}{w:100}{w:100}](/wiki/api

更新时间:2023-06-01 02:13

请帮忙看下,设置了每日调仓,怎么回测7日才调仓,模拟也不会调仓

问题

请帮忙看下,设置了每日调仓,怎么回测7日才调仓,模拟也不会调仓

策略

https://bigquant.com/experimentshare/ad6ecb9d63cf4b3b8ae7d397f7fd205a

把回测模块的主函数这个地方注释即可。这个代码表示持仓5天才判断交易逻辑

![{w:100}{w:100}](/wiki/api/attachments.redirect?id=b7f8ae9d-aa05-4ebb-

更新时间:2023-06-01 02:13

回测模块中如何导入库

问题

请问如何在回测模块中导入一个自定义的库呢?写在盘前函数里好像无效。

更新时间:2023-06-01 02:13

回测中如何避免买入停牌股票或一字涨停的股票?

问题

回测中如何避免买入停牌股票或一字涨停的股票?

解答

这是一个好问题。BigQuant平台回测模块专门对这个问题进行了相应处理。当遇到次日停牌或者一字涨停\跌停的情形,平台会自动取消该订单,于是是不能成交。

更新时间:2023-06-01 02:13

'Outputs' object has no attribute 'm_lazy_run'

问题

'Outputs' object has no attribute 'm_lazy_run'

这个报错没搞懂,用了高频特征就这样了

「分享出去没有回测模块」

回测模块在知识库里看到没有 克隆到开发环境之后 是有的

策略

https://bigquant.com/experimentshare/00d5181ea03a4301ab73caf36256dd86

\

更新时间:2023-06-01 02:13

index 0 is out of bounds for axis 0 with size 0

问题

[2021-11-22 16:30:01.137076] ERROR: moduleinvoker: module name: backtest, module version: v8, trackeback: IndexError: index 0 is out of bounds for axis 0 with size 0
[2021-11-22 16:30:01.148826] ERROR: moduleinvoker: module name: trade, module version: v4, trackeback: IndexError: in

更新时间:2023-06-01 02:13

回测模块报错问题

将回测模块中的数据准备函数中的上证指数,更换为平台文档中的其他指数后报错,请问如何解决?

https://bigquant.com/experimentshare/0d697ebd19e148ea8d2607b0f29e7cb9

\

更新时间:2023-06-01 02:13

盘前数据处理未来函数问题

在回测模块中,例如生成订单日期是1号,实际下单日期是2号。2号的时候是可以调用盘前处理的。盘前处理的时候如果使用data.histroy是可以在盘前就获取当天的开盘和收盘信息的。这个属于未来函数,不过如果下午交易,用上午开盘价是否低开做cancel order判断是ok的。但是问题来了。回测这样操作是可以的,可是如果模拟交易和实盘都是在前一天就生成信号,所以就想问一下这个盘前数据处理是否会在模拟交易和实盘中运行,如果运行取的是哪一天的数据。。。因为回测中2号盘前运行可以取到2号全天数据,这个在现实中明显取不到,当天开盘都是取不到的。。。 所以问题是 那么如果回测模块中布置了盘前数据处理, 1\

更新时间:2023-04-03 15:26

盘前数据处理未来函数问题

在回测模块中,例如生成订单日期是1号,实际下单日期是2号。2号的时候是可以调用盘前处理的。盘前处理的时候如果使用data.histroy是可以在盘前就获取当天的开盘和收盘信息的。这个属于未来函数,不过如果下午交易,用上午开盘价是否低开做cancel order判断是ok的。但是问题来了。回测这样操作是可以的,可是如果模拟交易和实盘都是在前一天就生成信号,所以就想问一下这个盘前数据处理是否会在模拟交易和实盘中运行,如果运行取的是哪一天的数据。。。因为回测中2号盘前运行可以取到2号全天数据,这个在现实中明显取不到,当天开盘都是取不到的。。。 所以问题是 那么如果回测模块中布置了盘前数据处理, 1\

更新时间:2023-01-13 16:24

关于模拟交易,以及写策略代码上的一些疑惑

问题

话说大佬们如果是我自己写的策略该怎么让他在交易模拟上面,以整百持股买入卖出呀,回测的时候都是整百持股买入卖出,一上模拟就不是整百持股了. 回测模块上有下面这段代码,回测的时候的确是整百持股,为何一到模拟交易就不行了呢?

代码

    if cash > 0:
        current_price = data.current(context.symbol(instrument), 'price')
        amount = math.floor(cash / current_price / 100) * 100
        context.

更新时间:2022-12-20 14:20

回测模块报错

问题

{w:100}data1, data2分别有什么格式要求吗?

报错。。。如上。。。

提示 : UnpicklingError: invalid load key, 'H'

解答

可以贴一下m2的输出不呢?如果m2是日线行情数据,m2连接回测回测模块第三个 借口 回测历史数据,不连第一个。

更新时间:2022-12-20 14:20

data.history报错

问题

在回测模块中是这么写的,data.history(context.symbol(instrument), 'volume', bar_count=6, frequency='1d'),今天之前都是正常能回测的,今天突然间就报错了,data.history的使用方法应该是正确的。

回测开始时间改成2022-01-01之后能正常运行,若回测开始时间在2022年之前,就会出现以下2种错误,麻烦平台的各位老师看一下,谢谢

![{w:100}{w:100}](/wiki/api/attachments.redirect?id=ba55a6f0-bbed-4ed3-ac3f-4bb9f

更新时间:2022-12-20 14:20

在实盘/模拟时,如何在训练模型给出预测信号后,对预测信号中的买入股票按条件进行过滤?

问题

以默认模板为例,要过滤掉预测信号中return_5 低于1.05 的买入股票,要如何在回测模块中实现?

要对原策略信号进行过滤,如果原信号给出是3个股票,过滤掉不符合条件的1个,只剩下2个股票。

\

解答

{w:100}

具体来说,以上图为例。预测信号出来后使用1.连接数据将策略信号与return_5进行连接。 2.数据过滤,筛掉不满足你条件的票。3.排序:将数据按照之前的顺序排列(按score排序,降序)最后进入回

更新时间:2022-12-20 14:20

高频回测模块报错

代码

代码:在高频回测模块的k线处理函数定义如下:
# 回测引擎:每日数据处理函数,每天执行一次
def bigquant_run(context, data):
    
    # 相隔几天(hold_days)进行一下换仓
    if context.trading_day_index % context.hold_days != 0:
        return 
    
    # 按日期过滤得到今日的预测数据
    ranker_prediction = context.ranker_prediction[
        context.ran

更新时间:2022-11-09 01:23

回测模块出现错误

问题

https://bigquant.com/experimentshare/83708942bc8e42e7938f228502ba6b10

解答

用 if 语句的格式:

if context.couter % 5 !=0:

\

更新时间:2022-11-09 01:23

回测模块里面可以实现股票融券吗?

怎么实现呢?知识库里没找到。谢谢

更新时间:2022-11-09 01:23

分页第1页第2页第3页
{link}