如何在图表交易系统里写跨周期调用指标,
比如在1分钟图表里,如何写一分钟收盘价大于5 分钟上的20均,在此条件下启动买入信号,用跨周期引用的方式。
照着教程中的方式写,用在前述程序中不显示进场信号,不知道哪里错了;
DD:=MA ;
AA:”CA.DD#MIN8”;
IF C>AA THEN
BEGIN
多开:BUY(1=1,ORDVOL,MARKET);
END
建议用这种方式引用,更灵活。不过你需要看下函数说明中的使用方法:
STKINDI('','MA.ma3',0,2,0);//MA是系统自带的一个均线指标,在技术指标-趋向指标下可查看源码 需要提前补充好5分钟的数据。
非常感谢用心回复,困扰多天,如久旱甘雨,真的。本人比较菜鸟,还是没有解决我的困惑,能否再具体详细一点,把这几个步骤都写出来,1、在1
分钟线上调用5 分钟均线,2、收盘价大于5 分钟上的20均,3、具备此条件启动买入信号。谢谢,否则我还是用不上。
IF C>STKINDI('','MA.ma3',0,2,0) THEN
BEGIN
多开:BUY(1=1,ORDVOL,MARKET);
END 这样写对吗?
运行周期为1分钟周期
aa :STKINDI('','MA.ma3',0,2,0); //引用5分钟数据周期的ma3均线,码ma3均线为20周期均线
if close> aa then buy(holding=0,1,market);
万分感激,但还是有问题。我根据金字塔移动止损模板修改的一个公式,相关部分如下:我计划用上周期的自适应移动均线来过滤开仓信号,然后再用其他条件BK8来开多单,按照您的指导写成如下这样,加上这一行,但开仓信号不见了。请问哪里有错?麻烦您了。// 自适应均线
DIR:=ABS(CLOSE-REF(CLOSE,21));
VIR:=SUM(ABS(CLOSE-REF(CLOSE,1)),21);
ER:=DIR/VIR;
CS:=ER*(2/3-2/31)+2/31;
CQ:=CS*CS;
AMA:=DMA(CLOSE,CQ);
aa :STKINDI('',' AMA.Ama',0,2,0);//该均线只有一根,这样写对吗?
//开多单
IF HOLDING=0 THEN BEGIN
IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
IF close> aa THEN BEGIN
IF BK8 THEN BEGIN
多开:BUY(1=1,ORDVOL,MARKET);
HIGHPRICE:=ENTERPRICE; //将开仓价保存到最高价
END
END
END
END
ama是你自己定义的指标? aa在图表上有输出值吗?看下。
金字塔里好像没找到自适应均线,AMA是自己写进去的自适应均线,并且只有一根线,这种情况应该如何解决,谢谢。
所以我让你看看AA的输出情况啊。 close>aa 这个是否触发了。如果你只是加了close>aa 就没有开仓信号了,那肯定是这个条件导致的。
你可以把你图表上的情况截图下比较直观点。
只要加上这句 if close> aa then BEGIN 就所有的买入信号都不见了, AA具体设定如前所述,主要是引用自编的自适应均线5分钟,您已经理解了我的问题,但我比较 白,不能明白您的指点,能否麻烦您就前各程序直接给以修正,以至达到预期效果,谢谢。
DIR:=ABS(CLOSE-REF(CLOSE,21));
VIR:=SUM(ABS(CLOSE-REF(CLOSE,1)),21);
ER:=DIR/VIR;
CS:=ER*(2/3-2/31)+2/31;
CQ:=CS*CS;
AMA:=DMA(CLOSE,CQ);
// 以上为需要引用的自适应均线公式
aa :STKINDI('',' AMA.Ama',0,2,0);//该均线只有一根,这样写对吗?
//开多单
IF HOLDING=0 THEN BEGIN
IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
IF close> aa THEN BEGIN
IF BK8 THEN BEGIN
多开:BUY(1=1,ORDVOL,MARKET);
HIGHPRICE:=ENTERPRICE; //将开仓价保存到最高价
END
END
END
END