金字塔“序列模式下,平仓信号未出现,却出现另一方向的开仓信号”的解决方法[金字塔模型]
- 内容:
金字塔“序列模式下,平仓信号未出现,却出现另一方向的开仓信号”的解决方法,类似的问题之前论坛上好几个人提过,当时只是给你建议,没有具体解决
今天一客户刚好碰到类似情况,故在此给一个解决的示例
某投资者的策略:
做多: 仓位为0时,macd 金叉开多,死叉平多(需穿越)
做空:仓位为0时, 慢速KD死叉开空,金叉平空(需穿越)
当然,如果是标准版用户,使用逐K线模式,此模型很容易便可实现,但在序列模式下如何实现呢?
如果采用以下代码,则会出现“平仓信号未出现,却出现另一方向的开仓信号”:
diff:=ema(c,12)-ema(c,26);
dea:=ema(diff,9);
RSV:= (CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
FASTK:=SMA(RSV,3,1);
K:=SMA(FASTK,3,1);
D:=SMA(K,5,1);bk:=cross(diff,dea);sp:=cross(dea,diff);
sk:=cross(d,k);bp:=cross(k,d);enterlong:bk,tfilter;
exitlong:sp,tfilter;
entershort:sk,tfilter;
exitshort:bp,tfilter;
问题出现的原因是 平仓条件成立之前,另一方向的开仓信号就成立了。所以,这里要过滤一下。
方法有多种,可以采用如下思路,这种思路比较有通用性:
diff:=ema(c,12)-ema(c,26);
dea:=ema(diff,9);
RSV:= (CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
FASTK:=SMA(RSV,3,1);
K:=SMA(FASTK,3,1);
D:=SMA(K,5,1);bk:=cross(diff,dea);
sp:=cross(dea,diff);
sk:=cross(d,k);
bp:=cross(k,d);flagd1:=if(barpos=1,0,if(bk,1,if(sp,0,0)));
flagd:=valuewhen(barpos=1 or bk or sp,flagd1);flagk1:=if(barpos=1,0,if(sk,-1,if(bp,0,0)));
flagk:=valuewhen(barpos=1 or sk or bp,flagk1);enterlong:bk and flagk=0,tfilter;//flagk过滤
exitlong:sp,tfilter;
entershort:sk and flagd=0,tfilter;//flagd过滤
exitshort:bp,tfilter;
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容