学了差不多得有20多天了吧,在写策略交易时候的写到调仓这块是没有思绪了,有一个思路是用账户上的一个持仓对比模型上的一个持仓来判断是否相等,如不相等就会进行一个发单调仓,这是目前的一个思路,这样的思路会导致if判断条件也会很多,有更好的思路吗?
一个小建议仅供思考:
尽可能不要用代码或监控器 强硬 同步图层和账户
1、图层会直接开平仓信号;账户成交总有时差,除非超价,这会带来滑点偏离带来的策略盈亏评估的纠结
2、异步同步:开仓时刻以图层为基准,这是常规的同步;止损止盈时再同步一次
3、策略应该有包容度,允许部分品种部分仓位偏离
另外我要问一个问题,你是只跑一个策略的吗?如果一个合约跑多个策略,你这样监控难道不会有问题?
因为刚开始学嘛,目前写的就是一个品种一个策略,如果一个品种多个策略肯定得有一个统一去管理的策略进行监控其他策略,所以打算先从简单到进阶一步一步来,现在调仓倒是搞定了,求老师告知一个换月的方法和思路该怎么去写,我看官方的文档没有弄明白,卡的我很难受
这个思路挺好的,如果最终能够自己动手、调试成功的话,比起TB官方提供的【头寸监控器】,要简单、实用、透明、灵活、高度定制化。
我想需要进一步做的就是,自己动手调试一下【MaxContractsHeld】,这个系统函数的解释文档太简单了:【获得最大的持仓合约数】,也不知道是不是你想要的【净持仓 = 多头持仓量 - 空头持仓量】,他还有一个姊妹系统函数【MaxContracts】叫【获得当前持仓的最大持仓合约数】,不知道写文档的人是不是想表达【当前图层的品种合约的最大持仓合约数量】?反正,使用前,最好自己动手都逐一确认一下到底是个啥东西。
现在也在逐一排查,主要有时候他进入了判断却不执行发单就很让人摸不着思绪,但是又没办法只能一遍又一遍的去改善逻辑,调仓无非是四种状态,情况1: 持仓和模型都为正数,情况2: 持仓和模型都为负数,情况3: 持仓为负数,模型为正数, 情况4: 持仓为正数,模型为负数,情况3和4都需要把对应的进行平空或平多后进行一个买卖,但是目前这个A函数发单的话只会进行一次或者不起作用
因为我是在onbar实时跳动更新他的一个仓位,开启自动策略交易的话会进行反手的开仓(我策略问题),然后他应该会实时的对我的仓位进行一个检查,如果不对就进入我的这个if去补仓嘛,但是他进去后不会进行去补仓或者报单,所有就没有思绪了
首先,先确定是不是真进了这个if分支。我看你没有打任何断点输出
其次,再确定a函数执行是否成功。开了自动交易,并且在最新的实时bar上,a函数才会返回true,否则只会返回false。根据返回结果判断执行是否成功。
最后,如果a函数返回true,那么一定会在委托列表生成一个订单数据,查看这个订单数据看看为什么没有成功报送。
有一说一,你这个结构还算简单的了。