下单出现漏单或不执行的情况,数据补充无误,程序无误(图表改后台,图表界面执行无误),应该是下单开平仓模块书写问题
if KD1 and tholding=0 then begin
tbuy(1 ,hand,mkt),ORDERQUEUE;
tholding=1 ;
end
if PD1 and tholding=1 and pd1<>kd1 then begin
tSell( 1,hand,mkt),ORDERQUEUE;
tholding=0 ;
end
if KK1 and tholding=0 and KK1<>PK1 then begin
tBUYSHORT(1 ,hand,mkt),ORDERQUEUE;
tholding=1 ;
end
if PK1 and tholding=1 then begin
tSELLSHORT(1 ,hand,mkt) ,ORDERQUEUE;
tholding=0 ;
end
用申请全局变量的方式可以么 比如改成这样
globalvariable:a1=0;
globalvariable:a2=0;
if KD1 and a1=0 then begin
tbuy(1 ,hand,mkt),ORDERQUEUE;
a1=1 ;
end
if PD1 and a1=1 and pd1<>kd1 then begin
tSell( 1,hand,mkt),ORDERQUEUE;
a1=0 ;
end
if KK1 and a2=0 and KK1<>PK1 then begin
tBUYSHORT(1 ,hand,mkt),ORDERQUEUE;
a2=1 ;
end
if PK1 and a2=1 then begin
tSELLSHORT(1 ,hand,mkt) ,ORDERQUEUE;
a2=0 ;
end
globalvariable:a1:=0;
globalvariable:a2:=0;
if KD1 and a1:=0 then begin
tbuy(1 ,hand,mkt),ORDERQUEUE;
a1:=1 ;
end
if PD1 and a1:=1 and pd1<>kd1 then begin
tSell( 1,hand,mkt),ORDERQUEUE;
a1:=0 ;
end
对否?
if KD1 and a1:=0 and tHOLDING=0 then begin
tbuy(1 ,hand,mkt,close),ORDERQUEUE;
a1:=hand ;
end
if PD1 and a1>0 and pd1<>kd1 then begin
tSell( 1,a1,mkt),ORDERQUEUE;
a1:=0 ;
end
用的多品种后台,哪种方法是对的
if KD1 and a1=0 then begin
tbuy(1 ,hand,mkt),ORDERQUEUE;
a1:=1 ;
end
if PD1 and a1=1 and pd1<>kd1 then begin
tSell( 1,hand,mkt),ORDERQUEUE;
a1:=0 ;
end
改成上面这样。
a1=1这个是等于的判断 a1:=1 这个是赋值语句。
图表程序改后台,模拟中出现问题:图表和后台的成交信号对不上。程序底稿模块一样,都是close走完k线后发单,
图表的开平模块是
if KD and HOLDING=0 then begin
buy(1 ,hand,MARKETR),ORDERQUEUE;
end
if PD and pd<>kd then begin
Sell( 1,hand,MARKETR),ORDERQUEUE;
end
if KK and HOLDING=0 and KK<>PK then begin
BUYSHORT(1 ,hand,MARKETR),ORDERQUEUE;
end
if PK then begin
SELLSHORT(1 ,hand,MARKETR) ,ORDERQUEUE;
end
改成后台之后是
图表程序一直没有问题,但是目前改后台后一直对不上(数据补充也是正确的) ,中间有暂停预警后启动(是否会影响平仓和持仓记录),还是后台模块的书写有问题?