
等级: 新手上路
- 注册:
- 2021-9-19
- 曾用名:
|
几年前程序员写的后台策略,30秒周期,当时能在撤单后马上下单,目前有几分钟的延迟,不知道问题出在哪里,现把源码附上,请教修改!
GLOBALVARIABLE: timer1:=0,timer2:=0,timer3:=0,timer4:=0,timer5=0;
GLOBALVARIABLE: op:=0,op2:=0,op3:=0,op4:=0,op5:=0,scan:=0;
GLOBALVARIABLE: dat:=0,tim:=0;
GLOBALVARIABLE: xdingb:=0,xdib:=0,jxb:=0,kdzpz:=0,kkdpd:=0,ng:=0,xd:=0;
VARIABLE: 箱顶变:=0,箱底变:=0,基线变:=0,KD涨盘涨:=0,KK跌盘跌:=0,牛高:=0,熊低:=0;
VARIABLE: 多平空1:=0,多开多1:=0,多开多2:=0;
VARIABLE: 空平多1:=0,空开空1:=0,空开空2:=0;
VARIABLE: 震平多:=0,震开多:=0,震平空:=0,震开空:=0;
if ISLASTBAR then
Begin///////////////////////下面是需要逐个tick 执行的部分程序
if date>dat|| date=dat and time>tim then
begin //最新K线的第一个tick
///////////交易信号保存为超级变量,以便一次性使用,杜绝重复执行
if not(dat=0 and tim=0) then
begin//禁止程序启动时第一遍扫描的信号
xdingb:=箱顶变;xdib:=箱底变;jxb:=基线变;kdzpz:=KD涨盘涨;kkdpd:=KK跌盘跌;ng:=牛高;xd:=熊低;
end
tim:=time;dat:=date;
end
if date>dat|| date=dat and time>tim then
begin //最新K线的第一个tick
tim:=time;dat:=date;
///////////交易信号保存为超级变量,以便一次性使用,杜绝重复执行
xdingb:=箱顶变;xdib:=箱底变;jxb:=基线变;kdzpz:=KD涨盘涨;kkdpd:=KK跌盘跌;ng:=牛高;xd:=熊低;
end
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秒
scan:=scan+1;
EXTGBDATASET('scan',scan);
EXTGBDATASET('buyhold',TBUYHOLDINGEX('','',2));
EXTGBDATASET('sellhold',TSELLHOLDINGEX('','',2));
//箱顶变交易,符合条件时一根K线走完老单全撤,“多平空1”时空单全部平仓;开多仓为2*手数,开仓限制为10*SS
if xdingb then
//TCANCELEX(1,0,TACCOUNT(1),STKLABEL);
begin TCANCEL(1,0); timer2:=delay; op2:=1;xdingb:=0;msgout(debug,'-----箱顶变条件出现,撤单');end
if ( timer2=1 and op2=1) then
BEGIN
op2:=0;msgout(debug,'-----箱顶变动作');
if ( TSELLHOLDINGEX('','',2)>0 ) then TSELLSHORT(1,0,LMT,多平空1);
if ( TBUYHOLDINGEX('','',2)<10*SS) then TBUY(1,2*SS,LMT,多开多1);
if ( TBUYHOLDINGEX('','',2)<10*SS) then TBUY(1,2*SS,LMT,多开多2);
END
|
|