
等级: 新手上路
- 注册:
- 2022-1-6
- 曾用名:
|
信号图:螺纹钢15分钟周期,9月27号系统显示开多信号,最近一直持有多单。但是从后台记录上可以看出,平均每走完一个15分钟K线,就会执行开多,平多。但是从信号图上来看,应该是一直持有多单的。
最后面附上代码,供检查。
INPUT:Qty(1,1,10,1),Length(200,1,500,1),pAtrPoint(35,1,500,1);
VARIABLE:vMarketPosition := 0,vBarSinceEntry:=0,vQty:=0,vPreQty:=0,vEntryPrice:=0,vExitLongPrice:=0,vExitShortPrice:=0,vStopProfitLong:=0,vStopProfitShort:=0;
VARIABLE : _DEBUG = 1 ; //是否输出前台交易指令
VARIABLE : _TDEBUG = 1 ; //是否输出后台交易指令
VARIABLE : _DEBUGOUT = 1 ; //是否输出后台交易的调试信息
//采用全局变量保存最后一根K线的计算状态
STR_EnterBarPos :=STRCAT(STKLABEL,'ENTRYBARPOS') ; // 开仓Bar历时
STR_ExitBarPos :=STRCAT(STKLABEL,'EXITBARPOS') ; // 平仓Bar历时
STR_PreEntryPrice:=STRCAT(STKLABEL,'PREENTRYPRICE') ; // 开仓价格
STR_vQty:=STRCAT(STKLABEL,'vQty') ; // 开仓手数
STR_vMarketPosition:=STRCAT(STKLABEL,'vMarketPosition') ; // 持仓方向
STRPREN:=STRCAT(STKLABEL,'PREN') ;
vBarMA := (HIGH + LOW + CLOSE *2) / 4;
vUpLine : HHV(vBarMA * 2 - LOW,Length);
vDownLine : LLV(vBarMA * 2 - HIGH,Length);
//恢复上一秒计算时保存的数据
//如果记录的进场BARPOS和当前的相等,说明上一个进场信号也是最后一根K线发出的。
IF EXTGBDATA(STR_EnterBarPos) = BARPOS THEN BEGIN
vPreEntryPrice := EXTGBDATA(STR_PreEntryPrice) ;
vQty := EXTGBDATA(vQty) ;
vMarketPosition := EXTGBDATA(STR_vMarketPosition) ;
END
contract:=STKLABEL();
KD :=HIGH >= REF(vUpLine,1); // 多头条件
KK := LOW <= REF(vDownLine,1);//空头条件
vEntryLongPrice := MAX(OPEN,REF(vUpLine,1));
vEntryShortPrice := MIN(OPEN,REF(vDownLine,1));
// 开仓
IF KD THEN BEGIN
IF vMarketPosition = 0 THEN BEGIN
TBuy(_TDEBUG,Qty,MKT,0,0,'',contract),ORDERQUEUE; //买开多单
vMarketPosition := 1;
vBarSinceEntry := 0;
EXTGBDATASET(STR_EnterBarPos,BARPOS);
EXTGBDATASET(STR_vMarketPosition,vMarketPosition);
EXTGBDATASET(STR_PreEntryPrice,vEntryLongPrice);
END
END
IF KK THEN BEGIN
IF vMarketPosition = 1 THEN BEGIN
TSell(_TDEBUG,Qty,MKT,0,0,'',contract),ORDERQUEUE;
vMarketPosition := 0;
EXTGBDATASET(STR_vMarketPosition,vMarketPosition) ;
END
END
STICKLINE(((vMarketPosition>0) and (CLOSE>=OPEN)),HIGH,LOW,1,0,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition>0) and (CLOSE>=OPEN)),CLOSE,OPEN,10,0,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition>0) and (CLOSE<OPEN)),HIGH,LOW,1,0,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition>0) and (CLOSE<OPEN)),CLOSE,OPEN,10,1,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition<0) and (CLOSE<OPEN)),HIGH,LOW,1,0,COLORBLUE),COLORFF0000;
STICKLINE(((vMarketPosition<0) and (CLOSE<OPEN)),CLOSE,OPEN,10,1,COLORBLUE),COLORFF0000;
STICKLINE(((vMarketPosition<0) and (CLOSE>=OPEN)),HIGH,LOW,1,0,COLORBLUE),COLORFF0000;
STICKLINE(((vMarketPosition<0) and (CLOSE>=OPEN)),CLOSE,OPEN,10,0,COLORBLUE),COLORFF0000;
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?
x
|