全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
持有多仓,MarketPosition =1,MarketPosition 识别不到,还要进入下面的买入开仓语句,逻辑不对呀
yzxzzj 分享到
2023-03-23 14:15

你好!老师!我这是一个非多即空策略,在PTA5分钟周期上做,遇到一个问题,MarketPosition <> 1的时候,BBI>BBI[1] 满足开仓条件,买入2手,不是开仓bar的时候没问题,当信号闪烁,期价跌下去了又上来了,现在又满足BBI>BBI[1]了。这个时候程序会又买入2手,总持仓变为4手。我写的判断语句按理来说持有多仓,MarketPosition= 1,就不应该进入开仓语句呀,怎么老是识别不了,持有多仓MarketPosition= 1 明明已经满足了,按理来说不会进入买多开仓语句,但是程序还是会进入开多语句。不知道哪出现问题了?我要是这样写if(MarketPosition <> 1 and BBI>BBI[1]) 他还是识别不了持有多仓MarketPosition =1,还会买入2手,这时候总持仓就会变为4手,下次BBI<BBI[1]的时候,程序买入平仓、卖出开仓,没有空头头寸,买入平仓自然是废单,卖出开仓是能成交,这样相当于又锁仓了2手,还是又2手多单。不知道我写的有问题吗?请老师指点指点,谢谢!

kyover

marketposition是一个序列类型,序列类型不会保存bar内运行的记忆。

换句话说,同一根bar上反复运行的时候,前一次的运行结果等于直接抛弃了,每次都相当于重新运行。

2023-03-23 16:27
您未登录,请先 登录注册 后发表评论
顶部