以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=173303) |
-- 作者:Hxpj -- 发布时间:2019/11/27 10:35:40 -- 请教老师代写编码问题 老师,我想判断MACD在 15分钟,60分钟,日 ,三个周期内同时收到金叉信号才进行交易,这个代码怎么写? |
-- 作者:FireScript -- 发布时间:2019/11/27 10:44:32 -- 先单独编写一个指标A: input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);//参数设置 DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P); DEA := EMA(DIFF,M); MACD1 := 2*(DIFF-DEA), COLORSTICK; macdjc:cross(diff,dea);//macd金叉 macdsc:cross(dea,diff); 然后跨周期调用指标A的macdjc变量即可。 15min_jc:=STKINDI(\'\',\'A.macdjc\',0,3,0); 60min_jc:=STKINDI(\'\',\'A.macdjc\',0,5,0); day_jc:=STKINDI(\'\',\'A.macdjc\',0,6,0); cd:15min_jc and 60min_jc and day_jc; if cd and holding=0 then begin //这里编写下单语句即可 end |
-- 作者:Hxpj -- 发布时间:2019/11/27 11:37:12 -- 老师,这里的 A 是什么??没有看都代入? |
-- 作者:FireScript -- 发布时间:2019/11/27 13:08:27 -- A是新建的一个指标,字母A是指标名称。你要新建一个指标,把下面代码放进去。 input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);//参数设置 DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P); DEA := EMA(DIFF,M); MACD1 := 2*(DIFF-DEA), COLORSTICK; macdjc:cross(diff,dea);//macd金叉 macdsc:cross(dea,diff); |
-- 作者:FireScript -- 发布时间:2019/11/27 13:11:11 -- 这个A 是单独的一个指标的。
|
-- 作者:Hxpj -- 发布时间:2019/11/27 13:36:45 -- //MACD X1:CROSS(DIFF,DEA); X2:CROSS(DEA,DIFF); //条件1 X3:MA1>MA2 AND MA2>MA3 AND MA3>MA4 AND MA4>MA5 AND MA5>MA6 AND MA1>REF(MA1,1) AND MA2>REF(MA2,1) AND MA3>REF(MA3,1) AND MA4>REF(MA4,1) AND MA5>REF(MA5,1) AND MA6>REF(MA6,1); X4:MA1<MA2 AND MA2<MA3 AND MA3<MA4 AND MA4<MA5 AND MA5<MA6 AND MA1<REF(MA1,1) AND MA2<REF(MA2,1) AND MA3<REF(MA3,1) AND MA4<REF(MA4,1) AND MA5<REF(MA5,1) AND MA6<REF(MA6,1); X5:X1 AND X3; X6:X2 AND X4; 15min_jc:=STKINDI(\'\',\'X5\',0,3,0); 60min_jc:=STKINDI(\'\',\'X5\',0,5,0); day_jc:=STKINDI(\'\',\'X5\',0,6,0); KDCL:15min_jc and 60min_jc and day_jc; 回测没有数据,错在哪里呢?
|
-- 作者:Hxpj -- 发布时间:2019/11/27 13:47:25 -- 是否由于公式是 5、60、日,而公式测试里的开仓条件只能是日,所以无法返回数据? |
-- 作者:FireScript -- 发布时间:2019/11/27 14:04:54 -- 1.你上面代码里面都没有下单语句吗 还是只是没帖出来? 2.你跨周期代码写的不对 。首先macd金叉的代码要单独放在一个指标下。 这是2个指标,macd单独在一个指标里面。 3.跨周期的调用是不会自动补充数据的。你要补充5分钟和日线数据。 单个品种得话 你可以在K线上切换到相应周期然后用键盘上下箭 就能自动触发历史数据的补充。
|
-- 作者:Hxpj -- 发布时间:2019/11/27 16:19:51 -- //条件汇总 15min_jc:=STKINDI(\'\',\'MADC_T.macdjc\',0,3,0); 60min_jc:=STKINDI(\'\',\'MADC_T.macdjc\',0,5,0); day_jc:=STKINDI(\'\',\'MADC_T.macdjc\',0,6,0); 15min_ga:=STKINDI(\'\',\'GMMA-T.X3\',0,3,0); 60min_ga:=STKINDI(\'\',\'GMMA-T.X3\',0,5,0); day_ga:=STKINDI(\'\',\'GMMA-T.X3\',0,6,0); KDCL:15min_jc and 60min_jc and day_jc and 15min_ga and 60min_ga and day_ga; 老师,我按例子重新修改了,X3如下 指标名称:GMMA-T X3:MA1>MA2 AND MA2>MA3 AND MA3>MA4 AND MA4>MA5 AND MA5>MA6 AND MA1>REF(MA1,1) AND MA2>REF(MA2,1) AND MA3>REF(MA3,1) AND MA4>REF(MA4,1) AND MA5>REF(MA5,1) AND MA6>REF(MA6,1); 同时也补充了 15 分钟 60分钟,日数据,还是出不了结果? |
-- 作者:Hxpj -- 发布时间:2019/11/27 16:32:52 -- 下单的语句先不写了,万一真的下单了,就比较危险,所以先做好预警,只是3个周期MACD的条件,也出不了数据? |