////////
ZH1:\'600802\';
PZ1:\'IF09\';
input:ss(1,1,100,1);
开多平空条件:=cross(aa,bb);
开空平多条件:=cross(bb,aa);
//交易系统
if开多平空条件THEN BEGIN
tsellshort(TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1);//平空
tbuy(TBUYHOLDINGEX(ZH1,PZ1,0)=0,ss,MKT,0,ZH1,PZ1);//开多
end
if开空平多条件THEN BEGIN
tsell(TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1);//平多
tbuyshort(TSELLHOLDINGEX(ZH1,PZ1,0)=0,ss,MKT,0,ZH1,PZ1);//开空
end
//止盈系统
INPUT:B1(45,30,100,5),B2(2,1,5,1);
variable:maxprofit=0;//有仓位时最大获利幅度
variable:win=0;//当前持仓状态下的最大盈利
variable:win2=0;//最大盈利后的回调幅度
if TBUYHOLDINGEX(ZH1,PZ1,0)>0 and
enterbars>0 then begin
win:=(c-enterprice)/enterprice*100; //记录最大盈利,开仓以来最高价(hhv(h,enterbars+1));
if
win>maxprofit then maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
if TSELLHOLDINGEX(ZH1,PZ1,0)>0 and
enterbars>0 then begin
win:=(enterprice-c)/enterprice*100; //记录最大盈利,开仓以来最低价(llv(l,enterbars+1));
if
win>maxprofit then maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
多仓盈利空间:=(hhv(h,enterbars+1)-enterprice)/enterprice*100;
空仓盈利空间:=(enterprice-llv(h,enterbars+1))/enterprice*100;
//出现最高盈利后,回落到盈利的60%平仓出场//
if win2 >=B1 then begin
止多赢:TSELL(多仓盈利空间>B2 AND
TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORYELLOW;
止空赢:TSELLSHORT(空仓盈利空间>B2 AND
TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORYELLOW;
maxprofit:=0;
win:=0;
win2:=0;
end
//止损系统
INPUT:k1(0.7,0.3,3,0.1);
IF TBUYHOLDINGEX(ZH1,PZ1,0)>0 AND
(enterprice-c)/enterprice*100>k1 THEN
BEGIN
止多损:TSELL(TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORRED;
END
IF
TSELLHOLDINGEX(ZH1,PZ1,0)>0 AND (c-enterprice)/enterprice*100>K1
THEN BEGIN
止空损:TSELLSHORT(TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORGREEN;
END
//监控未成交单
WCJ:=TREMAINQTY(0,ZH1,PZ1);
IF WCJ<>0 THEN BEGIN
A:=WCJ;
END
//对未成交单撤单
IF WCJ>0 THEN BEGIN
TCANCELEX(1,0,ZH1,PZ1 );
DRAWTEXTEX(1 ,0 ,0 ,0 ,\'提示:有未成交单撤单!\' ),COLORYELLOW ;
END
//监控持仓和资金状况
当前持仓量:=THOLDING;
当前可用资金:=TACCOUNT(19);
DEBUGOUT(\'当前持仓量%.2f\',当前持仓量 );
DEBUGOUT(\'当前可用资金%.2f\',当前可用资金 );