历史回测中委托价格的问题?

       请教,Buy()与SellShort()两个命令中的委托价格在历史回测中有没有作用?如果数据源用的是后复权的888连续,开启自动委托映射,这时Buy()与SellShort()两个命令中的委托价格又有没有用?谢谢!

委托价格超过涨停板的问题
回测报告的平仓价格是开盘价,实盘交易的平仓价格是突破价。请问如何回测不准的问题?
关于后复权委托价格的问题
代码回测历史优化逻辑可行性
为什么委托开平仓价格和公式中设定的开平仓价格差距较大?
关于发送委托价格的问题
怎样在历史回测中,获取当天的涨、跌停板价格?
在历史数据回测中为啥我购买价格不在当跟Bar的最高价和最低价范围内也能成交
请问委托价格与成交价格之间的逻辑
实盘和回测的问题

后复权其实有不少坑,还是你没弄明白机制的问题。

后复权情况下,buy,sell等函数传入复权后的价格,实际发单,会自动转化成真实价格发单。

一旦你的逻辑里面,涉及到固定价格止损等。最好是全部用rollover转换成真实价格,这样,不论你逻辑怎么变,价格上都不会错。比如你在bar序号100的K线上,定义了一个止损价1000,恰好105根K线,换月了,在后面的K线上,你再去用1000做止损,那肯定是不对的。因为复权系数发生了变化。

正确的应该是 止损价格 1000*rollove  后面比较的时候,用C和1000*rollover/rollover作比较(这里的两个rollover是前后两次的不同的复权系数),这样相当于两个价格都是真实价格。

我也是研究了很久才搞懂,也是理解了很长时间。归根到底, 还是要你去想明白其中的机制。不然很容易出问题

第一,如果没有设置自动映射真实价格,实际发单是按照复权价格发的,不是真实价格!

第二,使用后复权以后,一些关键价位都是自行用变量记录除权以后的值,判断的时候再把这个值复权

第三,后复权的资料和视频课程几年前就有了,为什么要自己研究呢?

都做了相应的设置!

https://www.bilibili.com/video/BV1ry421i7Ct/?spm_id_from=333.999.0.0

data-href=

等下周开盘了专门给你录个视频发出来看看吧。

你既然是不相信你的操作有问题,一定觉得软件功能有问题,那么我除了录个视频来证明没问题,也没有其他办法了。

       前段时间因忙于事务,忘及时回复您了!谢谢您专门录个视频来解释这个问题,如您所说,问题在我,不在TBQ。我用了跨周期的多数据源逻辑,其中有后复权的,也有不复权的,委托价格方式比较混乱所致。现一致都采用后复权的数据源就不存在这个问题了。谢谢!

       谢谢您的回复。但我检查时发现并不是这样啊,它不是用888行情(0号图层上加载的后复权的数据源)的开盘价(Open),就是用888行情的收盘价(Close)进行委托并计算盈亏。而我设置的用真实的主力合约(订阅加载的)的价格委托,它并不采用。这个问题一直困扰着我,不知道如何解决?注:公式中开启了自动映射主力合约。

       主要涉及到是否存在偷价行为,正常的开平仓可以用收盘价模式或采用历史信号加以规避,但在止盈止损时,却是要用到即时行情的,这时就涉及到真实价格了。否则,历史回测的结果就存疑了。

你应该是对软件功能和操作还不熟悉或者认知出错了。

建议按照零基础教程先把基本的设置操作和功能摸清楚

       我程序化交易已经做了8年了,不过前面用的是文华,去年才转用贵司系统。文华的回测用的是tick数据,不存在这样的问题,而贵司的回测这却是个大问题。

在 oninit 域中加入一句 AddDataFlag(Enum_Data_RolloverRealPrice()); 用888指数回测的时候就会用对应的主力合约价格进行计算。

虽然做了8年,但是用的不是tb,tb是最近才用起来的,那么实际上确实是对软件功能不了解所导致的,对吧?按照你现在提供的线索,无法判断是哪里操作有错误。建议重新仔细学习零基础视频,如果教程里没有可以再咨询客服或者社区

另外再补充一下,你所质疑的这个问题,是一项非常基础的机制,如果这个机制出了问题,基本上所有用户都是没办法正常使用软件的。

所以到底是软件机制出问题了,还是你有哪里操作没弄明白,建议想清楚再说。

历史回测就是以buy sellshort函数中的第二个参数price为准进行统计结算的。历史回测无法复现竞价撮合,所以一律按委托价格price作为成交价格进行计算。

实盘交易中,如果不开任何其他设置,委托单会以price进行报单。如果开了委托偏移,会以映射目标的对手价加上偏移点数报单。