请教各位老师,下面这个后台策略我编写的有没有什么问题,帮忙检查一下?我主要是从其他策略里面调用持仓变化来进行交易,调用的策略是图表交易的,那么这个策略做为控制器能正常运作吗?
VARIABLE:ss=4,kg=0;
cc1:STKINDI('if00','bldy.cc',0,18,-1),NOAXIS;
cc2:STKINDI('if00','zddy.cc',0,2,-1),NOAXIS;
jhc1:STKINDI('if00','zddy.hc2',0,2,-1),NOAXIS;
ls:STKINDI('if00','zddy.ls',0,2,-1),NOAXIS;
input:x(9000,1000,10000,1000);
jhc:jhc1,NOAXIS;
//正常交易
if jhc=0 then BEGIN
if cc1=0 and cc2=0 then BEGIN
tsell(HOLDING>0,HOLDING, mkt);
tSELLSHORT(HOLDING<0,HOLDING,mkt);
end
if (cc1=0 and cc2>0) or (cc1>0 and cc2=0) then BEGIN
tSELLSHORT(HOLDING<0,HOLDING,Mkt);
tbuy(HOLDING=0,ss,Mkt);
if HOLDING=8 then BEGIN
tsell(1,ss,Mkt);
end
end
if (cc1=0 and cc2<0) or (cc1<0 and cc2=0) then BEGIN
tsell(HOLDING>0,HOLDING,Mkt);
tBUYSHORT(HOLDING=0,ss,Mkt);
if HOLDING=-8 then BEGIN
tSELLSHORT(1,4,Mkt);
end
end
if (cc1>0 and cc2<0) or (cc1<0 and cc2>0) then BEGIN
tsell(HOLDING>0,HOLDING,Mkt);
tSELLSHORT(HOLDING<0,HOLDING,Mkt);
end
if cc1>0 and cc2>0 then BEGIN
tSELLSHORT(HOLDING<0,HOLDING,mkt);
tbuy(HOLDING=0,ss*2,Mkt);
if HOLDING=4 then BEGIN
tbuy(1,ss,Mkt);
end
end
if cc1<0 and cc2<0 then BEGIN
tsell(HOLDING>0,HOLDING,Mkt);
tBUYSHORT(HOLDING=0,ss*2,Mkt);
if HOLDING=-4 then BEGIN
tBUYSHORT(1,ss,Mkt);
end
end
end
VARIABLE:ss=4,kg=0;
cc1:STKINDI('if00','bldy.cc',0,18,-1),NOAXIS;
cc2:STKINDI('if00','zddy.cc',0,2,-1),NOAXIS;
jhc1:STKINDI('if00','zddy.hc2',0,2,-1),NOAXIS;
ls:STKINDI('if00','zddy.ls',0,2,-1),NOAXIS;
input:x(9000,1000,10000,1000);
jhc:jhc1,NOAXIS;
//正常交易
if jhc=0 then BEGIN
if cc1=0 and cc2=0 then BEGIN
tsell(tHOLDING>0,tHOLDING, mkt);
tSELLSHORT(tHOLDING<0,tHOLDING,mkt);
end
if (cc1=0 and cc2>0) or (cc1>0 and cc2=0) then BEGIN
tSELLSHORT(tHOLDING<0,tHOLDING,Mkt);
tbuy(tHOLDING=0,ss,Mkt);
if tHOLDING=8 then BEGIN
tsell(1,ss,Mkt);
end
end
if (cc1=0 and cc2<0) or (cc1<0 and cc2=0) then BEGIN
tsell(tHOLDING>0,tHOLDING,Mkt);
tBUYSHORT(tHOLDING=0,ss,Mkt);
if tHOLDING=-8 then BEGIN
tSELLSHORT(1,4,Mkt);
end
end
if (cc1>0 and cc2<0) or (cc1<0 and cc2>0) then BEGIN
tsell(tHOLDING>0,tHOLDING,Mkt);
tSELLSHORT(tHOLDING<0,tHOLDING,Mkt);
end
if cc1>0 and cc2>0 then BEGIN
tSELLSHORT(tHOLDING<0,tHOLDING,mkt);
tbuy(tHOLDING=0,ss*2,Mkt);
if tHOLDING=4 then BEGIN
tbuy(1,ss,Mkt);
end
end
if cc1<0 and cc2<0 then BEGIN
tsell(tHOLDING>0,tHOLDING,Mkt);
tBUYSHORT(tHOLDING=0,ss*2,Mkt);
if tHOLDING=-4 then BEGIN
tBUYSHORT(1,ss,Mkt);
end
end
end
都改成THOLDING 应该可以了吧?还有些什么问题?
后台全局变量使用EXTGBDATASET,variable后台在取值上存在问题
版主,请详细说明一下,后台程序用variable全局变量有什么问题。目前正被类似问题困扰。我在后台程序中用到全局变量数组,不用variable类型还能怎么解决?
variable是图表上的全局变量赋值,计算方式取决于K线图上全局变量的理论计算数据,
后台要用extgbdataset