以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 ; 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 |