等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
追撤单的代码必须在后台实现,我们平时写的时候经常会出错,出错代码可以看我3楼的代码,那个应该大部人都是那样写的。但其实是不对的
我这里1楼给出一种写法,2楼给出对应的日志。三楼和四楼是错误代码,以及对应的下单日志,这样大家也可以看出为何那种写法会有问题吧
开仓条件:tbuyholding(1)=0;
平仓条件:tbuyholding(1)>0;
//正常开平程序
if 开仓条件 then
begin
tbuy(1,1,lmt,close-5*MINDIFF);
end
if 平仓条件 then
BEGIN
tsell(1,1,lmt,close+5*MINDIFF);
end
//开仓的简单,撤单后直接再开就可以了
if TISPRVREMAIN(1)=1 and currenttime-TORDERTIME( 1,1 )>20 then
BEGIN
TCANCEL(1,1);
tbuy(1,1,mkt);
end
//平仓时候,因为你撤单动作发出去,单子并不是立即解冻的,需要用一个全局变量去记录
//然后根据变量=1,表示执行过撤单了等下次轮训时候配合持仓大于0进行撤单
if TISPRVREMAIN(2)=1 and currenttime-TORDERTIME( 2,1 )>20 then
BEGIN
TCANCEL(1,2);
EXTGBDATASET(STKLABEL,1);
end
if EXTGBDATA(STKLABEL)=1 and tbuyholding(1)>0 then
begin
tsell(1,1,mkt);
EXTGBDATASET(STKLABEL,0);
end
|
|