后台轮询方式出现多空单互锁 [金字塔]
- 咨询内容:
我的模型使用1秒钟轮询一次在后台运行,有时会出现既有多仓又有空仓的情况,而代码中已经通过THOLDING进行控制了,不知道那里出了问题。
开平仓的代码如下:
//多头平仓 IF THOLDING>0 THEN BEGIN 平多A:TSELL(平多1,THOLDING,MKT); 平多B:TSELL(平多2,THOLDING,MKT); END
//空头平仓IF THOLDING<0 THEN BEGIN 平空A:TSELLSHORT(平空1,THOLDING,MKT); 平空B:TSELLSHORT(平空2,THOLDING,MKT); END
//开仓IF 交易时间 AND THOLDING=0 THEN BEGIN IF THOLDING=0 THEN BEGIN 开多A:TBUY(开多2,手数,MKT); END IF THOLDING=0 THEN BEGIN 开空A:TBUYSHORT(开空2,手数,MKT); END IF THOLDING=0 THEN BEGIN 开多B:TBUY(开多1,手数,MKT); END IF THOLDING=0 THEN BEGIN 开空B:TBUYSHORT(开空1,手数,MKT); ENDEND
- 金字塔客服:
如果需要判断多空仓,那么使用具体的持仓判断函数:tbuyholding和tsellholding
- 用户回复:
按照你说的我改成了tbuyholding和tsellholding,但是多空互锁的情况仍然存在,难道需要加入什么错误处理的代码吗?
代码如下IF TBUYHOLDING(1)>0 THEN BEGIN //多头平仓 IF TBUYHOLDING(1)>0 THEN 平多A:TSELL(平多1,TBUYHOLDING(1),MKT); IF TBUYHOLDING(1)>0 THEN 平多B:TSELL(平多2,TBUYHOLDING(1),MKT);
//多头止损 IF LOST>=MaxLost AND TBUYHOLDING(1)>0 THEN 止损平多:TSELL(1,TBUYHOLDING(1),MKT); //多头收盘平仓 IF TIME>=151400 AND TBUYHOLDING(1)>0 THEN 收盘平多:TSELL(1,TBUYHOLDING(1),MKT); END
IF TSELLHOLDING(1)>0 THEN BEGIN //空头平仓 IF TSELLHOLDING(1)>0 THEN 平空A:TSELLSHORT(平空1,TSELLHOLDING(1),MKT); IF TSELLHOLDING(1)>0 THEN 平空B:TSELLSHORT(平空2,TSELLHOLDING(1),MKT);
//空头止损 IF LOST>=MaxLost AND TSELLHOLDING(1)>0 THEN 止损平空:TSELLSHORT(1,TSELLHOLDING(1),MKT); //空头收盘平仓 IF TIME>=151400 AND TSELLHOLDING(1)>0 THEN 收盘平空:TSELLSHORT(1,TSELLHOLDING(1),MKT); END
IF 交易时间 AND THOLDING=0 THEN BEGIN IF THOLDING=0 THEN 开多B:TBUY(开多2,手数,MKT); IF THOLDING=0 THEN 开空B:TBUYSHORT(开空2,手数,MKT); IF THOLDING=0 THEN 开多A:TBUY(开多1,手数,MKT); IF THOLDING=0 THEN 开空A:TBUYSHORT(开空1,手数,MKT);END
- 网友回复:
IF THOLDING=0 THEN
开多B:TBUY(开多2,手数,MKT);
IF THOLDING=0 THEN
开空B:TBUYSHORT(开空2,手数,MKT);
IF THOLDING=0 THEN
开多A:TBUY(开多1,手数,MKT);
IF THOLDING=0 THEN
开空A:TBUYSHORT(开空1,手数,MKT);
END
1.这里的也改了
2.平仓手数都写0
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容