等级: 新手上路
- 注册:
- 2021-9-19
- 曾用名:
|
后台策略,两方面问题:第一是在条件触发时,输出了挂多和挂空两条方向不一致的信息,实际情况只符合一种情况;第二是条件触发后的下单,也与实际情况不相符。查看运行时变量,各种提示都与策略设计相符,不明白为何下单不一致。
input:MAXHOLDING(10,10,1000,1),DELAY(10,5,20,1),DEBUG(1,0,1,1),DD(80,11,150,2);//,Y(8,1,30,1);
//后台运行,固定扫描间隔500毫秒
//信息输出开启:参数debug=1;信息输出关闭:参数debug=0
GLOBALVARIABLE: timer1:=0,timer2:=0,timer3:=0,timer4:=0,timer5:=0,timer44:=300;
GLOBALVARIABLE: op:=0,op1:=0,op2:=0,op3:=0,scan:=0;
if (timer1>0 ) then timer1:=timer1-1;//Tick 计时,每个Tick0.5秒
if (timer2>0 ) then timer2:=timer2-1;//Tick 计时,每个Tick0.5秒
if (timer3>0 ) then timer3:=timer3-1;//Tick 计时,每个Tick0.5秒
if (timer4>0 ) then timer4:=timer4-1;//Tick 计时,每个Tick0.5秒
if (timer5>0 ) then timer5:=timer5-1;//Tick 计时,每个Tick0.5秒
if (timer44>0 ) then timer44:=timer44-1;else timer4:=300;//Tick 计时,每个Tick0.5秒
EXTGBDATASET('timer44',timer44);
scan:=scan+1;
EXTGBDATASET('scan',scan);
if (做多区域 AND (箱顶变 OR 箱底变)) then
begin TCANCEL(1,0); timer1:=delay; op1:=1;end
if (timer1=1 and op1=1) then
BEGIN
op1:=0;msgout(debug,STKLABEL+' '+STKNAME+'-----挂多');
if (TSELLHOLDINGEX('','',1)>0) then TSELLSHORT(1,0,LMT,开多1);
if (TBUYHOLDINGEX('','',1)<100*SS) then TBUY(1,2*SS,LMT,开多1);
if (TBUYHOLDINGEX('','',1)<100*SS) then TBUY(1,2*SS,LMT,开多2);
if (TBUYHOLDINGEX('','',1)>3*SS) then TSELL(1,2*SS,LMT,平多1);
if (TBUYHOLDINGEX('','',1)>5*SS) then TSELL(1,2*SS,LMT,平多2);
END
////////////////
if (做空区域 AND (箱顶变 OR 箱底变)) then
begin TCANCEL(1,0); timer2:=delay; op2:=1;end
if (timer2=1 and op2=1) then
BEGIN
op2:=0;msgout(debug,STKLABEL+' '+STKNAME+'-----挂空');
if (TBUYHOLDINGEX('','',1)>0) then TSELL(1,0,LMT,开空1);
if (TSELLHOLDINGEX('','',1)<100*SS) then TBUYSHORT(1,2*SS,LMT,开空1);
if (TSELLHOLDINGEX('','',1)<100*SS) then TBUYSHORT(1,2*SS,LMT,开空2);
if (TSELLHOLDINGEX('','',1)>3*SS ) then TSELLSHORT(1,2*SS,LMT,平空1);
if (TSELLHOLDINGEX('','',1)>5*SS ) then TSELLSHORT(1,2*SS,LMT,平空2);
END
|
|