[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)

投资者咨询:[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-1-24 15:27
用MULTSIG指令可以设置多个交易信号,
但我想实现一根K线内只能有两个交易信号,且可以限制这两个信号是这样的组合:BK-SP 或 SK-BP

不知道是否可以实现?
技术人员回复
日期:2018-1-24 15:29
 
可以的,这样需要对开平仓条件进行限制

比如 bk-sp

请参考

COUNTSIG(SP,1)=0&&开多条件,BK;//当跟K线没有sp才能出bk
COUNTSIG(BK,1)&&平多条件,SP;//当跟K线有了bk才能出sp
AUTOFILTER;
MULTSIG(0,0,2,0);//一根K线最多两个信号
投资者咨询:[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-1-24 15:27
以下是引用君耀在2018/1/24 15:29:00的发言:
 
可以的,这样需要对开平仓条件进行限制

比如 bk-sp

请参考

COUNTSIG(SP,1)=0&&开多条件,BK;//当跟K线没有sp才能出bk
COUNTSIG(BK,1)&&平多条件,SP;//当跟K线有了bk才能出sp
AUTOFILTER;
MULTSIG(0,0,2,0);//一根K线最多两个信号

 谢谢老师。

但用了AUTOFILTER;这个过滤指令后,就表示信号必须以一开一平的方式发生,而我的模型执行逻辑里面,是有加仓条件的,这样是不是矛盾了?
技术人员回复
日期:2018-1-24 15:38
 
上面的写法只是一个例子,便于您理解并修改自己的模型

如果您是加减仓模型,将AUTOFILTER 语句删除并设置信号手数即可

您根据思路调整下
投资者咨询:[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-1-24 15:27
谢谢,了解了
投资者咨询:[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-1-24 15:27
以下是引用君耀在2018/1/24 15:38:00的发言:
 
上面的写法只是一个例子,便于您理解并修改自己的模型

如果您是加减仓模型,将AUTOFILTER 语句删除并设置信号手数即可

您根据思路调整下

 老师您好,我做了一些测试,有疑问无法解决,请您再帮忙一下:

我的策略思想是:
1,当K下破前两根K线的最低价时,SK-1手;
2,当K上破【之前空单进场信号发生位置的前两根K的最高价】时,BP。

代码:
SKVOL=0 && L<=LV(L,2) && COUNTSIG(SK,1)=0,SK(1);//当K没有SK信号时,执行SK

SKVOL>0 && CROSS(C,REF(HV(H,2),BARSSK)) && COUNTSIG(BP,1)=0,BP(SKVOL);//当K没有BP信号,执行BP

MULTSIG_MIN(0,0,2);

加了这些设置后,不能达到目的,SP信号没有在当前K线执行,而是在下一根K线执行,我的目的是让它在当前K线执行止损。

我的目的是实现下图所示:(测试标的:螺纹指数,2014年6月20日)



图片点击可在新窗口打开查看
 
技术人员回复
日期:2018-1-24 19:20
SK当根BARSSK返回空值的

 这么改下

SKVOL=0 && L<=LV(L,2) && COUNTSIG(SK,1)=0,SK(1);//当K没有SK信号时,执行SK

SKVOL>0 && CROSS(C,REF(HV(H,2),BARSSK)) && COUNTSIG(BP,1)=0,BP(SKVOL);//当K没有BP信号,执行BP
SKVOL>0 && C>HV(H,2)&&ISNULL(BARSSK) && COUNTSIG(BP,1)=0,BP(SKVOL);
MULTSIG_MIN(0,0,2);
 
投资者咨询:[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-1-24 15:27
以下是引用舟亢在2018/1/24 19:20:00的发言:
SK当根BARSSK返回空值的

 这么改下

SKVOL=0 && L<=LV(L,2) && COUNTSIG(SK,1)=0,SK(1);//当K没有SK信号时,执行SK

SKVOL>0 && CROSS(C,REF(HV(H,2),BARSSK)) && COUNTSIG(BP,1)=0,BP(SKVOL);//当K没有BP信号,执行BP
SKVOL>0 && C>HV(H,2)&&ISNULL(BARSSK) && COUNTSIG(BP,1)=0,BP(SKVOL);
MULTSIG_MIN(0,0,2);
 

谢谢老师。
        我做了测试,虽然这根K线上实现了当根止损,
但在别的K线上测试出了漏洞:当根K线只要出现了最高价大于前两根K线的最高价时,都止损了,而不管到价的先后顺序。

我模型的BP止损是取最后一次SK信号所在位置的前两根K线的最高价,

单从指令本身来理解,您这样写:ISNULL(BARSSK)是判断本根K线是否有SK信号,如果没有就合格,实际上我们要求是本根K线上首先是要有SK信号,才能到价后执行 止损
     
技术人员回复
日期:2018-1-24 21:52
SKVOL=0 && L<=LV(L,2) && COUNTSIG(SK,1)=0,SK(1);//当K没有SK信号时,执行SK

SKVOL>0 && CROSS(C,REF(HV(H,2),BARSSK)) && COUNTSIG(BP,1)=0,BP(SKVOL);//当K没有BP信号,执行BP
SKVOL>0 && C>HV(H,2)&&ISNULL(BARSSK) && COUNTSIG(SK,1)=1,BP(SKVOL);
MULTSIG_MIN(0,0,2);
 
投资者咨询:[讨论]语法:在同根K线里能否有两个交易信号 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-1-24 15:27
老师您好,请问为什么上面您的第三行要用这句:ISNULL(BARSSK)?这个字面意思是历史上没有SK信号,逻辑上想不通(虽然实盘测试下来确实正确无误),麻烦您再给解读一下,谢谢