全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
请教版主个基本机制问题
2024-03-23 09:35

请教版主,tb和tbq在K线上的基本运行机制究竟如何,我想了半天没想明白,特此请教。

基于tick波动时很好理解,每一跳伴随着代码跑一遍,没有歧义。

但对于其他K线,举个极端的例子,以日线为例,在实时状态下,行情是顺序运行的,此时价格随行情波动而波动,在极端情况下(如先急速拉升,再急速暴跌),策略触发机制在实时时会先开仓再触发平仓(假设可以触发),那么如果策略是基于日线结构的,此时会按(先开后平)触发吗?

那么,如果当其变为历史K线后,策略会如何在该根K线上显示?(是按开仓算?还是按平仓算?还是有开有平算?因历史K线只包括开高低收4个数据,无法判断是先开后平,还是先平后开。)

日线只是极端表达用的,小时、N分钟,甚至1分钟,道理上是一样的,只是时间跨度越大,越可能出现这种情况。

我想了解的是机制,不是采用其他策略回避该问题的做法,仅论做法我可以想到解决办法的。

另外请教下,在实时k线下,各序列函数刷新机制的问题,是每一个tick都以上一根K线为基础重新刷新,还是以当根K线上序列函数前一个tick为基础刷新?(这个问题和前面问题有关联,但不完全一致)

还请回答,很重要!谢谢!

kyover

你好像完全不清楚行情驱动onbar的运行机制。

onbar事件域历史bar运行一次,盘中bar每来一tick,刷新当前bar,用刷新后的bar数据驱动运行策略代码执行一遍。

极端情况下(如先急速拉升,再急速暴跌),你说的这种情况,在一次tick的情况下是不可能发生的,一定是最少两次或者更多tick驱动下才会出现这种情况。如果拉升的tick触发了买入信号,对应发单,后面暴跌触发平仓信号,对应也会发单,不太理解有哪里有逻辑矛盾和问题。

至于变为历史k线以后,会以历史状态驱动一次运行。和盘中的区别就是bar数据会有变动,收盘状态的bar上,最高价一定大于等于实时bar的最高价,最低价一定小于等于实时bar的最低价,开盘价相等,成交量一定大于等于实时bar的成交量,持仓量不一定,收盘价不一定。

这些问题在零基础课程里应该有详细的课程介绍,建议多看几遍领会

2024-03-25 09:01
hongguanjingji
@kyover

可能是我表述的不好,我的意思是:假设以日线为基础的策略,其完整日线出现就相当于1个tick,而这个“tick”里包含的信息在同时满足开仓和平仓条件的情况下,肯定会和其变为历史k线的策略回测发生冲突,有没有什么从机制角度能够解决这个冲突。

后一个问题是,假设1根k线有60个tick,我知道每个tick都做一次刷新,最高最低这些会刷新,假设有个指标A,A指标在上一根K线的值为A0,现在是实时状态,此时每一tick都会一次计算,那么第1个tick时计算的A指标值假设为A1,第2个为A2,如果我比较A【0】和A【1】,此时的A【1】是指的A0,还是A1。我问的是这个,我理解的是A0,但又担心理解不对,所以才会问。

2024-03-26 21:08
kyover
@hongguanjingji

tick是指交易所发来的切片数据,这个是专有名词,你自己定义一个tick,这个无法理解。

完整日线的出现,在盘中是不在一瞬间发生的,这是由数万个tick驱动最后慢慢形成的,这个过程中,开仓和平仓很大可能不是在同一瞬间。如果说你的代码会最终导致开平仓信号同时出现,那么一定是先出现开仓信号,然后慢慢等bar刷新,等平仓信号满足了,那么bar上就会同时出现开仓和平仓信号。

但是个人建议,不要把开平仓同时放在一根bar上,因为对于历史k线来说,无法判断是平仓信号先触发还是开仓信号先触发,这个在很多基础课程里都有详细描述过,可能产生虚假的交易信号,实盘不可能发生,但是历史bar却显示有信号。除了优化模型的执行逻辑,没有其他办法。

如果该日线是历史k线,由于历史k线只驱动一次,那么确实开平信号都会同时出现,但是历史k线是不发单的,所以这也无所谓。

后一个问题,涉及到数据结构,序列类型和全局类型的传递与继承结构是不同的。

如果是序列类型,a[1]指的是上一根bar的a,不是上一tick。

实际上这些问题在零基础课程里都已经做过详细解答,可以先系统性学习一下这些常识问题。

很难想象如果不理解这些基础常识是怎么开始使用旗舰版的,过程中肯定有很多问题。

精力有限,不可能逐一讲解这些基础常识,建议通过零基础课程自行学习。如果对课程有疑问可以在视频下评论。

https://space.bilibili.com/31053817/channel/collectiondetail?sid=1625615 总集

https://www.bilibili.com/video/BV1zV411G7Pw/?spm_id_from=333.999.0.0 行情驱动事件域

https://www.bilibili.com/video/BV1ZG411f7bt/?spm_id_from=333.999.0.0 数据结构相关

2024-03-27 09:03
hongguanjingji
@kyover

因为我以前都是基于tick数据自己构建出k线做分析的(原来不是用旗舰版,用的是朋友自编的一套交易系统,也是基于c++的),正是这几天在看这些视频,才迷惑了

2024-03-27 19:47
hongguanjingji

其实tick也不是最小交易单位,而是最小展示单位,还有很多比tick更细的策略操作

2024-03-27 20:14
kyover
@hongguanjingji

tick实质上就是国内能接触到的最小颗粒度。

你如果非要把盘口单量变化也算作颗粒度的话,数据量是爆炸级别的,国内交易不具备可操作性

2024-03-28 08:41
hongguanjingji
@kyover

确实,国内之前有过这种策略导致交易所堵单,所以才有了很多政策出台。

2024-03-28 10:06
您未登录,请先 登录注册 后发表评论
顶部