[求助]同一根K线重复开仓 (文华财经WH8赢智V8.2)

投资者咨询:[求助]同一根K线重复开仓 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-6-7 12:47
 请问老师,我使用的是MULTSIG(0,0,6,0)函数的加减仓模式,如何控制在同一根K线上,同方向的只有一次开仓?谢谢
技术人员回复
日期:2018-6-7 13:15

 以BK信号为例可以参考红色部分的编写:

 

C>0 &&(BARSBK=1||COUNTSIG(BK,BARPOS)=0),BK;
C>0,SP;
MULTSIG(0,0,6,0);
AUTOFILTER;

投资者咨询:[求助]同一根K线重复开仓 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-6-7 12:47
老师能解释一下程序吗?
BARSBK=1  是指上一次出现买开信号的位置在当前K线吗?

COUNTSIG(BK,BARPOS)=0 应该是统计已有的K线上没有出现过买开信号吧


我的需求是在当根K线上,BK或SK只出现一次,谢谢

技术人员回复
日期:2018-6-7 13:56

 BARSBK=1 是指上一次BK出现在前一根,COUNTSIG(BK,BARPOS)=0是考虑首次开仓的情况

 

您可以实际加载,对比没有添加该语句看一下效果

投资者咨询:[求助]同一根K线重复开仓 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-6-7 12:47
 我遗漏了一些重要前提,我在程序里指定了开仓和平仓手数,也没有使用AUTOFILTER;的过滤模型,该如何处理呢?谢谢
技术人员回复
日期:2018-6-7 14:35

 也是一样的可以参考上面的方式限制

 

如果您有疑问可以上传一下您的完整源码我们帮您修改

投资者咨询:[求助]同一根K线重复开仓 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-6-7 12:47
我使用收盘价的信号判断是否开仓,使用市价进行平仓交易。
现在的问题是,前一根K线收盘出信号,在当根K线开仓,但由于K线振幅较大,导致当根出现止损信号(到这里都没有问题),但在平仓之后,又因为开仓信号的出现,导致开了新仓。而我的MULTSIG(0,0,6,0);不可能只设置成1根K线上只有2个信号,因为有可能有止盈和止损的平仓操作,麻烦老师看一下怎么解决。



图片点击可在新窗口打开查看

使用了老师提供的方法之后,交易次数和信号次数和原来完全不一样了:

#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>0&&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>0&&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);
 
技术人员回复
日期:2018-6-7 15:38

 尝试这样改一下,如果还有疑问可以提供一下被引用指标源码:

 

#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);

投资者咨询:[求助]同一根K线重复开仓 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-6-7 12:47
 请问老师改了哪里?
技术人员回复
日期:2018-6-7 15:49

改了加仓的判断避免平3手仓后,再次加仓

 

您可以查看一下加仓语句