以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  策略编写求助区  (http://weistock.com/bbs/list.asp?boardid=11)
----  [求助]如何写macd的3个指标都小于0变成都大于0  (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=11652)

--  作者:zhrong
--  发布时间:2012/5/13 0:41:48
--  [求助]如何写macd的3个指标都小于0变成都大于0

如何写macd的3个指标从都小于0的状态变成都大于0的状态?

3个指标不需要同时上去。

[此贴子已经被作者于2012-5-13 0:43:36编辑过]

--  作者:Leon
--  发布时间:2012/5/13 18:32:09
--  

用中间变量形式书写

如:DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD1 := 2*(DIFF-DEA), COLORSTICK;


--  作者:RogarZ
--  发布时间:2012/5/14 8:56:01
--  

DIFF : ABS(EMA(CLOSE,S) - EMA(CLOSE,P))

DEA  : ABS(EMA(DIFF,M));
MACD1 : ABS(2*(DIFF-DEA)), COLORSTICK;

 

单从数值的角度看,我用了ABS(X) 绝对值函数  不知道是否满足你的要求



--  作者:zhrong
--  发布时间:2012/5/14 9:05:21
--  

楼上两位,我是想知道如何捕捉到 diff、dea、macd1 三个指标从0以下上穿到0以上的点

例如,diff=-0.01、dea=-0.02、macd1=-0.01

随着时间推移,可能变成diff=0.05 dea=0.03  macd1=0.003

。。。。。

相当于定位到3个指标从负数变成正数的那个点


--  作者:Leon
--  发布时间:2012/5/14 9:22:07
--  

楼主捕捉到后想做什么操作?能否直接比较diff和0的值?

if diff>0 then

begin

操作

end

 

if diff<o

if diff= 0

....

 

[此贴子已经被作者于2012-5-14 9:23:00编辑过]

--  作者:RogarZ
--  发布时间:2012/5/14 9:39:34
--  
drawicon(diff>0 and dea>0 and macd1>0,0,1);
加了这个命令看是否符合你的要求

--  作者:zhrong
--  发布时间:2012/5/14 11:15:09
--  

两位好,我想在达到这个点后开多

我现在写法:(diff>0 and dea>0 and cross(macd1,0)) or (diff>0 and macd1>0 and cross(dea,0)) or (macd1>0 and dea>0 and cross(diff,0)),

也就是说判断2个在0上方,1个上穿。。。。

 

但是没有体现出:开始3个指标都小于0,然后变成都大于0 这种状态


--  作者:董小球
--  发布时间:2012/5/14 13:52:17
--  
那我觉得你应该判断3次 上一根K线上的X是不是小于0 并且 这根K线上的X是不是大于0
--  作者:zhrong
--  发布时间:2012/5/14 14:39:55
--  

假设限制在10个周期内,开始时候3个指标都小于0,10个周期内3个指标都变成大于0

 

这样要如何写呢?


--  作者:Leon
--  发布时间:2012/5/14 15:35:30
--  

cond1:=all(stkindi(\'\',\'macd.diff\',0,6,-1)<0,3);

cond2:=time>000930 and time<001530;

 

能否用时间和all函数加以判断,楼主指的是开始3个周期macd均是小于0,然后排除前三个周期后使后10个周期macd均变成小于0?