
等级: 新手上路
- 注册:
- 2025-4-22
- 曾用名:
|
大咖帮我看看呀,这个策略代码,能正常开仓,但无法平仓,使用后台调试,显示平仓条件不识别。都=0。修改了调试使用IF ISLASTBAR THEN BEGIN格式调试,编译显示“表达式不全”,卡在这儿了啊
//后台表格策略,大盘表格002
INPUT:SS(5,1,10,1); //定义交易的手数,3手。
手数:=SS;
ZH1:='301806';
PZ1:'SH000001';
持仓量:=800000;
warning_line:=800000; //可用资金警戒线。
//交易逻辑的基本变量设置:
做空线:3935,COLORMAGENTA; //日内棘轮做空位置。
锁仓线a:3912,COLORWHITE; //日内棘轮锁仓做空位置。
压力线2:3900,COLORWHITE; //多头减仓位置2。
压力线1:3888,COLORWHITE; //多头减仓位置1。
开盘位a:3875,COLORYELLOW; //温和高开位置。
开盘位b:3867,COLORYELLOW; //平开位置。
支撑线1:3857,COLORWHITE; //空头减仓位置1。
支撑线2:3843,COLORWHITE; //空头减仓位置2。
锁仓线b:3828,COLORWHITE; //日内棘轮锁仓做多位置。
做多线:3805,COLORMAGENTA; //日内棘轮做多位置。
//交易条件:
con4:=indexh>=做空线;
con3:=indexh>=锁仓线a;
con2:=indexh>=压力线2;
con1:=indexh>=压力线1;
con0:=indexh>=开盘位a;
con9:=indexl<=开盘位b;
con8:=indexl<=支撑线1;
con7:=indexl<=支撑线2;
con6:=indexl<=锁仓线b;
con5:=indexl<=做多线;
//控制日内交易次数
IF TTOTALDAYTRADE>=10 THEN EXIT;
//开盘对开进出场交易条件
KD:=open;
KK:=open;
PK:=con0 or con7;
PD:=con0 or con7;
//交易系统发布指令:
//对开做多指令:
IF KD and todayholding=0 then begin
TBUY(KD and TBUYHOLDINGEX(ZH1,'IC00',0)<10,手数,MKT,0,0,ZH1,'IC00');
END
//对开做空指令:
IF KK and todayholding=0 then begin
TBUYSHORT(KK and TSELLHOLDINGEX(ZH1,'IC00',0)<10,手数,MKT,0,0,ZH1,'IC00');
END
Path:='D:\Test\'&FormulaName&StkLabel&'.txt';//Path
DebugFile(Path,StkLabel + '[----PK='+ NumTostr((con0 or con7 and PK and todayholding<0)>0,0)+']',0);
DebugFile(Path,'PK1 con0 or con7:%.2f',con0 or con7);
DebugFile(Path,'PK2 PK and todayholding<0:%.2f',PK and todayholding<0);
//DebugFile(Path,'未成交单数量:%.0f',tRemainQty(0,'','IC00'));
//DebugFile(Path,'金叉:%.0f',Cross(ma(close,5),ma(close,60)));
////MsgOut(Taccount(19)<5000000 and Taccount(6)>0,'资金警戒线,请留意!');
IF ISLASTBAR THEN BEGIN
DEBUGFILE('D:\Test\'&FormulaName&StkLabel&'.txt','未成交单数量 :%.0f',&NUMTOSTR(tRemainQty(0,'','IC00'),0));
END
//平空条件
IF PK and todayholding<0 then begin
tsellshort(PK and TSELLHOLDINGEX(ZH1,'IC00',0)<10,手数,MKT,0,0,ZH1,'IC00');
END
//平多条件
IF PD and todayholding>0 then begin
tsell(PD and TBUYHOLDINGEX(ZH1,'IC00',0)<10,手数,MKT,0,0,ZH1,'IC00');
END
|
|