 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- wenarm
|
本帖最后由 技术006 于 2022-5-19 19:04 编辑
1,股票池你可以理解和图表的轮训接近。
但是股票池起始位置会以后变(这是根本原因)。例如指定的计算数量是10根,那么本地无论什么时候都是最新的10根k参与计算。每次计算只要有新k出现,那么相对于上次计算的起始位置就会移动1根。
就是因为起始位置会变,所以理论持仓相关的结果如holding才可能会变。
holding=0对控制开仓过程:图表出现信号时执行holding=holding+1,holding=0便不再成,策略顺序执行随后语句遇到holding=0都不成立,但是,随着下一个Tick信号,holding=0又再成立,整个K都不能控制开仓,直到K结束前的最后holding才固定为<>0。
关于这个表述:有几处存在疑问的地方。你按照我给你的解释去理解。
1.如果你上面的表述都是在一根k上并且在此根k之前holding是=0的。例如在1分周期上,并且是每10秒接收到一笔tick数据(即理论上可以执行6遍策略)。那策略执行中,holding只和自己本次运行结果有关系。
如果第一遍执行时,这根k符合开多条件(比如第6行是此策略中的第一个下单语句),那么此时的holding=holding+1=1。(不含在开仓之后有加减仓的情况,如果有,那么holding就是执行到代码末尾出的结果),
第二次执行时,这个k又不符合开多条件(比如第6行是此策略中的第一个下单语句),那么此时的holding=0,第三次执行时,这个k又不符合开多条件(比如第6行是此策略中的第一个下单语句),那么此时的holding=0,
如果第四遍执行时,这根k符合开多条件(比如第6行是此策略中的第一个下单语句),那么此时的holding=holding+1=1。
如果第五遍执行时,这根k符合开多条件(比如第6行是此策略中的第一个下单语句),那么此时的holding=holding+1=1。
如果第六遍执行时,这根k符合开多条件(比如第6行是此策略中的第一个下单语句),那么此时的holding=holding+1=1。
【注:是否能下单,取决于图表程序化运行时的设置,能否捕捉到当前这根k中,1、4、5、6中的信号,该问题不是此处的重点】
依次类推完成6遍执行,其中每次执行的结果都不是基于上一遍执行的结果。只是最后一遍计算时k线走完时,所以结果是最后一遍的。
类似于你看书,每一页都会看上多遍(等于策略执行了多次)。而holding就像你对数做的注解(每次读的时候,都会把之前认为不合适的注解擦掉或者调整,也可能不动)。那么当要统计注解有多少处时,必然是从第一页一个个数。
至于每一页被擦掉的注解结果必然不会被统计。
|
|