INPUT:SS(1,1,1,1);
手数 := SS;
VALUE_STEP := 2;
// 1分钟级别参数;
// MACD
{
DIFF1F := "MACD.DIFF#MIN1";
DEA1F := "MACD.DEA#MIN1";
MACD1F := "MACD.MACD1#MIN1";
}
// BBI
//BBI1F := "BBI.BBI#MIN1";
BBI1F : STKINDI(\'\',\'"BBI.BBI\',0,1);
// BOLL
//MID1F :="BOLL.MID#MIN1";
MID1F : STKINDI(\'\',\'"BOLL.MID\',0,1);
//开多条件
KD1F : ((BBI1F > REF(BBI1F,1))
AND (MID1F > REF(MID1F,1))
//AND (DIFF1F > DEA1F)
//AND (DIFF1F > REF(DIFF1F,1))//AND (REF(DIFF1F,1) > REF(DIFF1F,2))
//AND (DEA1F > REF(DEA1F,1))//AND (REF(DEA1F,1) > REF(DEA1F,2))
//AND (MACD1F > REF(MACD1F,1)) AND (REF(MACD1F,1) > REF(MACD1F,2))AND(REF(MACD1F,2) > REF(MACD1F,3))
);
//平多条件 ;
PD1F : ((BBI1F < REF(BBI1F,1))
AND (MID1F < REF(MID1F,1))
//AND (DIFF1F < DEA1F)
//AND (DIFF1F < REF(DIFF1F,1))
//AND (DEA1F < REF(DEA1F,1))
//AND (CLOSE < BBI1F)
//AND (CLOSE < MID1F)
);
//开空条件
KK1F : ((BBI1F < REF(BBI1F,1))
AND (MID1F < REF(MID1F,1))
//AND (DIFF1F < DEA1F)
//AND (DIFF1F < REF(DIFF1F,1))//AND (REF(DIFF1F,1) < REF(DIFF1F,2))
//AND (DEA1F < REF(DEA1F,1))//AND (REF(DEA1F,1) < REF(DEA1F,2))
//AND (MACD1F < REF(MACD1F,1)) AND (REF(MACD1F,1) < REF(MACD1F,2))AND(REF(MACD1F,2) < REF(MACD1F,3))
);
//平空条件
PK1F : ((BBI1F > REF(BBI1F,1))
AND (MID1F > REF(MID1F,1))
//AND (DIFF1F > DEA1F)
//AND (DIFF1F > REF(DIFF1F,1))
//AND (DEA1F > REF(DEA1F,1))
//AND (CLOSE > BBI1F)
//AND (CLOSE > MID1F)
);
// 5分钟级别参数;
// MACD
{
DIFF5F := "MACD.DIFF#MIN5";
DEA5F := "MACD.DEA#MIN5";
MACD5F := "MACD.MACD1#MIN5";
}
// BBI
//BBI5F := "BBI.BBI#MIN5";
BBI5F : STKINDI(\'\',\'"BBI.BBI\',0,2,-1);
// BOLL
//MID5F :="BOLL.MID#MIN5";
MID5F : STKINDI(\'\',\'"BOLL.MID\',0,2,-1);
//开多条件
KD5F : ((BBI5F > REF(BBI5F,1))
AND (MID5F > REF(MID5F,1))
//AND (DIFF5F > DEA5F)
//AND (DIFF5F > REF(DIFF5F,1))//AND (REF(DIFF5F,1) > REF(DIFF5F,2))
//AND (DEA5F > REF(DEA5F,1))//AND (REF(DEA5F,1) > REF(DEA5F,2))
//AND (MACD5F > REF(MACD5F,1))AND (REF(MACD5F,1) > REF(MACD5F,2))AND(REF(MACD5F,2) > REF(MACD5F,3))
);
//平多条件 ;
PD5F : ((BBI5F < REF(BBI5F,1))
AND (MID5F < REF(MID5F,1))
//AND (CLOSE < BBI5F)
//AND (CLOSE < MID5F)
);
//开空条件
KK5F : ((BBI5F < REF(BBI5F,1))
AND (MID5F < REF(MID5F,1))
//AND (DIFF5F < DEA5F)
//AND (DIFF5F < REF(DIFF5F,1))//AND (REF(DIFF5F,1) < REF(DIFF5F,2))
//AND (DEA5F < REF(DEA5F,1))//AND (REF(DEA5F,1) < REF(DEA5F,2))
//AND (MACD5F < REF(MACD5F,1))AND (REF(MACD5F,1) < REF(MACD5F,2))AND(REF(MACD5F,2) < REF(MACD5F,3))
);
//平空条件
PK5F : ((BBI5F > REF(BBI5F,1))
AND (MID5F > REF(MID5F,1))
//AND (CLOSE > BBI5F)
//AND (CLOSE > MID5F)
);
// 30分钟级别参数;
// MACD
{
DIFF30F := "MACD.DIFF#MIN30";
DEA30F := "MACD.DEA#MIN30";
MACD30F := "MACD.MACD1#MIN30";
}
// BBI
//BBI30F := "BBI.BBI#MIN30";
BBI30F : STKINDI(\'\',\'"BBI.BBI\',0,4,-1);
// BOLL
//MID30F :="BOLL.MID#MIN30";
MID30F : STKINDI(\'\',\'"BOLL.MID\',0,4,-1);
//开多条件
KD30F : ((BBI30F > REF(BBI30F,1))
AND (MID30F > REF(MID30F,1))
//AND (DIFF30F > DEA30F)
//AND (DIFF30F > REF(DIFF30F,1))//AND (REF(DIFF30F,1) > REF(DIFF30F,2))
//AND (DEA30F > REF(DEA30F,1))//AND (REF(DEA30F,1) > REF(DEA30F,2))
//AND (MACD30F >= REF(MACD30F,1))AND (REF(MACD30F,1) > REF(MACD30F,2))AND(REF(MACD30F,2) > REF(MACD30F,3))
);
//平多条件 ;
PD30F : ((BBI30F < REF(BBI30F,1))
AND (MID30F < REF(MID30F,1))
//AND (CLOSE < BBI30F)
//AND (CLOSE < MID30F)
);
//开空条件
KK30F : ((BBI30F < REF(BBI30F,1))
AND (MID30F < REF(MID30F,1))
//AND (DIFF30F < DEA30F)
//AND (DIFF30F < REF(DIFF30F,1))//AND (REF(DIFF30F,1) < REF(DIFF30F,2))
//AND (DEA30F < REF(DEA30F,1))//AND (REF(DEA30F,1) < REF(DEA30F,2))
//AND (MACD30F <= REF(MACD30F,1))AND (REF(MACD30F,1) < REF(MACD30F,2))AND(REF(MACD30F,2) < REF(MACD30F,3))
);
//平空条件
PK30F : ((BBI30F > REF(BBI30F,1))
AND (MID30F > REF(MID30F,1))
//AND (CLOSE > BBI30F)
//AND (CLOSE > MID30F)
);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KD30F:%f\',KD30F);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KD5F:%f\',KD5F);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KD1F:%f\',KD1F);
//开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
KDXH : (KD30F AND KD5F AND KD1F AND (((TIME > 85959) AND (TIME <= 145500)) OR ((TIME > 210000) AND (TIME <= 225658))));
IF KDXH THEN
BEGIN
DEBUGOUT(\'KDXH:%f\',THOLDING);
//DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KD30F:%f\',KD30F);
//DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KD5F:%f\',KD5F);
//DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KD1F:%f\',KD1F);
IF THOLDING=0 THEN
BEGIN
TBUY(1,手数,LMT,CLOSE-VALUE_STEP*MINDIFF,0);
END
IF THOLDING<0 THEN
BEGIN
TSELLSHORT(1,0,MKT);
TBUY(1,手数,LMT,CLOSE-VALUE_STEP*MINDIFF,0);
END
END
//平多:SELL(PD,1,THISCLOSE); //平多信号
//PDXH : (THOLDING>0) AND (((TENTERPRICE-CLOSE) >= 5*MINDIFF) OR PD1F);
PDXH : ((THOLDING>0) AND (PD1F));
IF PDXH THEN
BEGIN
DEBUGOUT(\'PDXH:%f\',THOLDING);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'PDXH:%f\',THOLDING);
TSELL(1,0,MKT);
END
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KK30F:%f\',KK30F);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KK5F:%f\',KK5F);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KK1F:%f\',KK1F);
//开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
KKXH : (KK30F AND KK5F AND KK1F AND (((TIME > 85959) AND (TIME <= 145500)) OR ((TIME > 210000) AND (TIME <= 225658))));
IF KKXH THEN
BEGIN
DEBUGOUT(\'KKXH:%f\',THOLDING);
//DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KK30F:%f\',KK30F);
//DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KK5F:%f\',KK5F);
//DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'KK1F:%f\',KK1F);
IF THOLDING=0 THEN
BEGIN
TBUYSHORT(1,手数,LMT,CLOSE+VALUE_STEP*MINDIFF,0);
END
IF THOLDING>0 THEN
BEGIN
TSELL(1,0,MKT);
TBUYSHORT(1,手数,LMT,CLOSE+VALUE_STEP*MINDIFF,0);
END
END
//平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
//PKXH : (THOLDING<0) AND (((CLOSE-TENTERPRICE) >= 5*MINDIFF) OR PK1F);
PKXH : ((THOLDING<0) AND (PK1F));
IF PKXH THEN
BEGIN
DEBUGOUT(\'PKXH:%f\',THOLDING);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'PKXH:%f\',THOLDING);
TSELLSHORT(1,0,MKT);
END
// 日内平仓
RNPC : (((TIME >= 145800) AND (TIME <= 205959)) OR (TIME >= 225830));
IF RNPC THEN
BEGIN
DEBUGOUT(\'RNPC:%f\',TIME);
DEBUGFILE(\'E:\\Weisoft Stock(x86)\\debug\\debug.TXT\',\'RNPC:%f\',TIME);
TSELLSHORT(1,0,MKT);
TSELL(1,0,MKT);
END
当前持仓:THOLDING,COLORGRAY,LINETHICK0;
开仓价格:TENTERPRICE,COLORGRAY,LINETHICK0;
平仓价格:TEXITPRICE,COLORGRAY,LINETHICK0;
//当前资产:=ASSET,NOAXIS,COLORGRAY;
{
信号语句排列规则——先平后开
“费率设置”按钮——用于合理设置模型“费率”,以便在图形上正确输出如下帐户信息:
持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;
您可以在查看菜单->交易系统模板 中设置自己需要的模板
}