以BK信号为例可以参考红色部分的编写:
C>0 &&(BARSBK=1||COUNTSIG(BK,BARPOS)=0),BK;
C>0,SP;
MULTSIG(0,0,6,0);
AUTOFILTER;
BARSBK=1 是指上一次BK出现在前一根,COUNTSIG(BK,BARPOS)=0是考虑首次开仓的情况
您可以实际加载,对比没有添加该语句看一下效果
也是一样的可以参考上面的方式限制
如果您有疑问可以上传一下您的完整源码我们帮您修改
尝试这样改一下,如果还有疑问可以提供一下被引用指标源码:
#IMPORT[MIN,15,基础信息] AS FIFTEEN
FIFTEENGOINGSHORT:=FIFTEEN.SELLING;
FIFTEENGOINGLONG:=FIFTEEN.BUYING;
MA1:EMA(HIGH,34);
MA2:EMA(LOW,34);
MA3:MA(C,60);
//------------------------------------------------------------------------------------------------------------------------------------//
//------------------------------------------------------------信号--------------------------------------------------------------------//
//------------------------------------------------------------------------------------------------------------------------------------//
//做多信号
GOINGLONG:=REF(ISUP,1)&&REF(LOW,1)<=MA1&&REF(CLOSE,1)>MA1&&REF(CLOSE,1)>MA3&&REF(LOW,2)>MA2&&REF(LOW,3)>MA2;
//做空信号
GOINGSHORT:=REF(ISDOWN,1)&&REF(HIGH,1)>=MA2&&REF(CLOSE,1)<MA2&&REF(CLOSE,1)<MA3&&REF(HIGH,2)<MA1&&REF(HIGH,3)<MA1;
//------------------------------------------------------------------------------------------------------------------------------------//
//------------------------------------------------------------做多--------------------------------------------------------------------//
//------------------------------------------------------------------------------------------------------------------------------------//
//做多信号 && 15分钟做多信号 && 无仓位 && 当前K线未开过仓,开仓
GOINGLONG&&FIFTEENGOINGLONG&&BKVOL<=0&&(BARSBK=1||COUNTSIG(BK,BARPOS)=0),BK(5);
//做多信号 && 15分钟做多信号 && 有仓位2,顺势交易买开3手
GOINGLONG&&FIFTEENGOINGLONG&&BKVOL=5&&5-BKVOL=2,BK(3);
//做多止损规则:出现反向信号 || 收盘价小于MA2 || 亏损30点 || (盈利超过15点,止损上移至进场后最高价-30个点),平仓
GOINGSHORT&&BKPRICE>0&&BKVOL>0,SP(BKVOL);
REF(CLOSE,1)<MA2&&BKPRICE>0&&BKVOL>0,SP(BKVOL);
C<=BKPRICE-30*MINPRICE1&&BKPRICE>0&&BKVOL>0,SP(BKVOL);
EXIST(C>=BKPRICE+15*MINPRICE,1)&&C<=BKHIGH-30*MINPRICE1&&BKPRICE>0&&BKVOL>0,SP(BKVOL);
//做多止赢规则:赢利30点,卖平3手
C>=BKPRICE+30*MINPRICE1&&BKPRICE>0,SP(3);
//做多止赢规则:止损上移至进场后最高价-30点 || 15分钟收盘价小于MA2 || 周末不过周,平仓
C<=BKHIGH-30*MINPRICE1&&BKVOL<5&&BKVOL>0,SP(BKVOL);
REF(FIFTEEN.CL,1)<FIFTEEN.MA2&&BKVOL<5&&BKVOL>0,SP(BKVOL);
ISWEEKEND&&ISLASTKLINE&&BKVOL<5&&BKVOL>0,SP(BKVOL);
//------------------------------------------------------------------------------------------------------------------------------------//
//------------------------------------------------------------做空--------------------------------------------------------------------//
//------------------------------------------------------------------------------------------------------------------------------------//
//做空信号 && 15分钟做空信号 && 无仓位,开仓
GOINGSHORT&&FIFTEENGOINGSHORT&&SKVOL<=0&&(BARSSK=1||COUNTSIG(SK,BARPOS)=0),SK(5);
//做空信号 && 15分钟做空信号 && 有仓位2, 顺势交易加开3手
GOINGSHORT&&FIFTEENGOINGSHORT&&SKVOL=5&&5-SKVOL=2,SK(3);
//做空止损规则:反向信号出现 || 收盘价上MA1 || 亏损30点 || (盈利超过15点,止损上移至进场后最高价-30个点),平仓
GOINGLONG&&SKPRICE>0&&SKVOL>0,BP(SKVOL);
REF(CLOSE,1)>=MA1&&SKPRICE>0&&SKVOL>0,BP(SKVOL);
C>=SKPRICE+30*MINPRICE1&&SKPRICE>0&&SKVOL>0,BP(SKVOL);
EXIST(C<=SKPRICE-15*MINPRICE,1)&&C>=SKLOW+30*MINPRICE1&&SKPRICE>0&&SKVOL>0,BP(SKVOL);
//做空止赢规则:获得30点,平3手
C<=SKPRICE-30*MINPRICE1&&SKPRICE>0,BP(3);
//做空止赢规则:止损上移至进场后最高价-30个点 || 15分钟收盘价上MA1 || 周末不过周,平仓
C>=SKLOW+30*MINPRICE1&&SKVOL<5&&SKVOL>0,BP(SKVOL);
REF(FIFTEEN.CL,1)>=FIFTEEN.MA1&&SKVOL<5&&SKVOL>0,BP(SKVOL);
ISWEEKEND&&ISLASTKLINE&&SKVOL<5&&SKVOL>0,BP(SKVOL);
//------------------------------------------------------------------------------------------------------------------------------------//
//-----------------------------------------------------公共方法-----------------------------------------------------------------------//
//------------------------------------------------------------------------------------------------------------------------------------//
MULTSIG(0,0,6,0);
改了加仓的判断避免平3手仓后,再次加仓
您可以查看一下加仓语句
