以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  如何在图表交易系统里写跨周期调用指标,  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=160440)

--  作者:qq代人发帖
--  发布时间:2017/12/15 8:43:27
--  如何在图表交易系统里写跨周期调用指标,

如何在图表交易系统里写跨周期调用指标,

比如在1分钟图表里,如何写一分钟收盘价大于5 分钟上的20均,在此条件下启动买入信号,用跨周期引用的方式。

照着教程中的方式写,用在前述程序中不显示进场信号,不知道哪里错了;

DD:=MA ;
AA:”CA.DD#MIN8”;

IF C>AA THEN

BEGIN    

多开:BUY(1=1,ORDVOL,MARKET);

END


--  作者:FireScript
--  发布时间:2017/12/15 8:55:56
--  

建议用这种方式引用,更灵活。不过你需要看下函数说明中的使用方法:

STKINDI(\'\',\'MA.ma3\',0,2,0);//MA是系统自带的一个均线指标,在技术指标-趋向指标下可查看源码  需要提前补充好5分钟的数据。


--  作者:LAOMO
--  发布时间:2017/12/15 10:29:40
--  
非常感谢用心回复,困扰多天,如久旱甘雨,真的。本人比较菜鸟,还是没有解决我的困惑,能否再具体详细一点,把这几个步骤都写出来,1、在1分钟线上调用5 分钟均线,2、收盘价大于5 分钟上的20均,3、具备此条件启动买入信号。谢谢,否则我还是用不上。


--  作者:LAOMO
--  发布时间:2017/12/15 10:30:36
--  

IF C>STKINDI(\'\',\'MA.ma3\',0,2,0) THEN

BEGIN    

多开:BUY(1=1,ORDVOL,MARKET);

END    这样写对吗?



--  作者:banzhuan
--  发布时间:2017/12/15 10:39:35
--  
运行周期为1分钟周期
     aa :STKINDI(\'\',\'MA.ma3\',0,2,0); //引用5分钟数据周期的ma3均线,码ma3均线为20周期均线
     if  close>  aa  then buy(holding=0,1,market);
          

--  作者:LAOMO
--  发布时间:2017/12/15 13:44:52
--  
万分感激,但还是有问题。我根据金字塔移动止损模板修改的一个公式,相关部分如下:我计划用上周期的自适应移动均线来过滤开仓信号,然后再用其他条件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

--  作者:FireScript
--  发布时间:2017/12/15 14:40:05
--  

ama是你自己定义的指标? aa在图表上有输出值吗?看下。


--  作者:LAOMO
--  发布时间:2017/12/15 15:07:59
--  
金字塔里好像没找到自适应均线,AMA是自己写进去的自适应均线,并且只有一根线,这种情况应该如何解决,谢谢。
--  作者:FireScript
--  发布时间:2017/12/15 15:16:45
--  

所以我让你看看AA的输出情况啊。 close>aa 这个是否触发了。如果你只是加了close>aa 就没有开仓信号了,那肯定是这个条件导致的。

 

你可以把你图表上的情况截图下比较直观点。


--  作者:LAOMO
--  发布时间:2017/12/15 15:27:33
--  
只要加上这句 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