cross函数包含了等于,
不等于可用cross(A,B) and A<>B
不是BUG,强制平仓表示你当前持有多仓时又去开空仓,系统会先强制平多再开空。
做为一个良好的公式系统,你应该先平仓再开仓,有个好的习惯
原来是这样,还是这个均线系统如何做到先平仓再开仓,并让cross函数不包含等于,始终用1手进行交易,程式化交易又该如何编写?
ENTERLONG:CROSS(MA(CLOSE,5),MA(CLOSE,10));
EXITLONG:CROSS(MA(CLOSE,10),MA(CLOSE,5));
ENTERSHORT:CROSS(MA(CLOSE,10),MA(CLOSE,5));
EXITSHORT:CROSS(MA(CLOSE,5),MA(CLOSE,10));
cross函数包含了等于,
不等于可用cross(A,B) and A<>B
不对啊!发出信号的当天a和b必然不等于,因上个周期a=b,但a没上穿b,后a又小于b,造成信号发出,如何才能避免此情况?
改一下顺序就能先平仓再开仓了,程式化交易时也要改成这种顺序吗?cross函数包含了等于,测试时不会出现连续两个同向信号,但程序化交易时会出现开两次多仓或空仓的信号,避免这种情况是用今持仓量函数,还是买持和卖持函数
EXITLONG:CROSS(MA(CLOSE,B),MA(CLOSE,A)) ;
EXITSHORT:CROSS(MA(CLOSE,A),MA(CLOSE,B)) ;
ENTERSHORT:CROSS(MA(CLOSE,B),MA(CLOSE,A)) ;
ENTERLONG:CROSS(MA(CLOSE,A),MA(CLOSE,B)) ;