用均线cross函数在15分钟K线运行,若不用走完一根k线而用每10秒固定时间间隔运行时经常出现信号闪烁,账户重复开多和开空,但当k线走完时信号消失,而实际却有持仓又不会按程序执行止损了,如何解决这个信号闪烁的问题
ma1:ma(c,5);
ma2:ma(c,60);
kd1:=cross(ma1,ma2) and c>ma2;
kk1:=cross(ma2,ma1) and c<ma2;
pd:=cross(ma2,ma1);
pk:=cross(ma1,ma2);
sell(pd,0,market);
sellshort(pk,0,market);
if kd1 then buy(holding=0,a,market);
if kk1 then buyshort(holding=0,a,market);
就是15k线走完一根要15分钟,这15分钟当中会形成cross然后就会开仓,但可能几分钟后交叉的信号就消失了(均线技术指标的滞后性导致),就比如今天股指尾盘这四根k线走的就是
c 盘中是最新价 一直在变的 不稳定,可以取上周期的c 是固定不变的ref(c,1)<ma2
或者用走完k 比较稳定。
[此贴子已经被作者于2014/3/26 16:12:24编辑过]
当根K线C是个不稳定的因素,建议您这边使用H或L替代 ,例如这句
kd1:=cross(ma1,ma2) and c>ma2;
kk1:=cross(ma2,ma1) and c<ma2;
//
kd1:=cross(ma1,ma2) and h>ma2;
kk1:=cross(ma2,ma1) and l<ma2;
这样就不会存在问题,最高价只会越来越高,最低价只会越来越低
那个and c>ma2作用不大的,因为一旦cross了上一根c肯定也是>,那个均线表达可以用上一根的吗---ma(c,5)这里面的c可以用上一根的吗
表达上一个周期的ma均线交叉,是在定义时ma1:ma(ref(c,1),5)还是说定义两次ma1:ma(c,5); ma1_1:ref(ma1,1);?