以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  图表信号和策略思路不一致问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=165544)

--  作者:陈志海11
--  发布时间:2018/9/16 23:37:05
--  图表信号和策略思路不一致问题
INPUT:N(20,1,250,10),M(120,1,250,10);
MA20:MA(CLOSE,N);
MA120:MA(CLOSE,M);
IF MA20>MA120 AND CLOSE>MA20 AND TIME>=090500 AND TIME<=145500 OR TIME>=210500 AND TIME<=225500 THEN  BEGIN
BUY(1,20%,MARKET);
DRAWTEXT( 1,CLOSE ,“开多” ,1 );
END
IF CLOSE<=MA20 AND TIME>=145500 OR TIME>=225500 THEN BEGIN
SELL(1,HOLDING,MARKET);
DRAWTEXT( 1,CLOSE ,“平多” ,1 );
END
IF MA20<MA120 AND CLOSE<MA20 AND  TIME>=090500 AND TIME<=145500 OR TIME>=210500 AND TIME<=225500 THEN  BEGIN
BUYSHORT(1,20%,MARKET);
DRAWTEXT( 1,CLOSE ,“开空” ,1 );
END
IF CLOSE>=MA20 AND TIME>=145500 OR TIME>=225500 THEN BEGIN
SELLSHORT(1,HOLDING,MARKET);
DRAWTEXT( 1,CLOSE ,“开空” ,1 );
END
这段代码是日内策略,策略:短期20周期均线在长期120周期线上,只做多,找k线穿短期20周期均线上做多,下穿20均线平仓;
                                     短期20周期均线在长期120周期均线下,只做空,找k线穿短期均线下穿20周期线做空,上穿20均线平仓。
当我加载在图表上得到的结果与我想要表达的不一致,请问错在哪里?


--  作者:陈志海11
--  发布时间:2018/9/17 8:45:45
--  
加载到图标系统,跟我原想表达的完全不一样,问题出在哪里?
图片点击可在新窗口打开查看此主题相关图片如下:e)d2dk8sde$au9dwa`y.png
图片点击可在新窗口打开查看

--  作者:陈志海11
--  发布时间:2018/9/17 9:11:10
--  
哪位大哥帮忙看一下
--  作者:FireScript
--  发布时间:2018/9/17 9:18:31
--  
 1.ma20>c 或者ma20<c 不能表达上下穿的含义。用cross函数来表达,比如cross(ma20,c) 表示ma20上穿c,具体可以参考这个函数的定义来了解下。
 

2.
略做修改,修改的部分是上下穿的代码部分。
INPUT:N(20,1,250,10),M(120,1,250,10);
MA20:MA(CLOSE,N);
MA120:MA(CLOSE,M);
IF MA20>MA120 AND cross(c,ma20) AND (TIME>=090500 AND TIME<=145500 OR TIME>=210500 AND TIME<=225500) THEN  BEGIN
BUY(1,20%,MARKET);
DRAWTEXT( 1,CLOSE ,“开多” ,1 );
END
IF cross(ma20,c) AND TIME>=145500 OR TIME>=225500 THEN BEGIN
SELL(1,HOLDING,MARKET);
DRAWTEXT( 1,CLOSE ,“平多” ,1 );
END
IF MA20<MA120 AND cross(ma20,c) AND  (TIME>=090500 AND TIME<=145500 OR TIME>=210500 AND TIME<=225500) THEN  BEGIN
BUYSHORT(1,20%,MARKET);
DRAWTEXT( 1,CLOSE ,“开空” ,1 );
END
IF cross(c,ma20) AND (TIME>=145500 OR TIME>=225500) THEN BEGIN
SELLSHORT(1,HOLDING,MARKET);
DRAWTEXT( 1,CLOSE ,“开空” ,1 );
END