以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  用pel语言,macd死叉前的一个死叉如何表达呢?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=169268)

--  作者:qq代人发帖
--  发布时间:2019/4/10 9:45:32
--  用pel语言,macd死叉前的一个死叉如何表达呢?
请问用pel语言,macd死叉前的一个死叉如何表达呢?
也就是在红色圆圈里圈出来的死叉之前的黄色死叉

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2019/4/10 9:48:59
--  
 len:=SUMBARS(macd死叉,2);

用SUMBARS这个函数就行了。死叉你自行定义好就可以了。这个函数返回的是倒数第二个死叉的位置,位置获取到了,就可以获取到这个死叉位置的数据了。
调用这个死叉位置的数据:
macd_sc:ref(c,len);//获取倒数第二个死叉位置的收盘价

--  作者:alp
--  发布时间:2019/4/10 10:18:45
--  非常感谢
OK ,非常感谢啦!
--  作者:alp
--  发布时间:2019/4/10 12:42:14
--  附图2中,如何找到黄色方框中dif最小值那天对应的收盘价?
紧接着刚才那个想问一下,
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:无标题2.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2019/4/10 14:02:29
--  
这一段是死叉区间了,也就是macd<0的一个区间。不过我想明确的是你基于什么位置取这个值的,比如基于当前位置的上上次死叉区间,还是说上次死叉区间。还有就是当前也可能刚好就是死叉区间。这个要理清楚才行。

--  作者:alp
--  发布时间:2019/4/10 14:12:10
--  你好
你好,主要是基于今日在macd<0的情况下,寻找上上次死叉到上次金叉区域内(黄色矩形区域内)dif的最小值以及对应的收盘价,
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190410140946.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2019/4/10 14:41:42
--  
 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);

len0:SUMBARS(macdjc,1);//上次金叉的位置
len1:SUMBARS(macdsc,1);//上次死叉的位置
len2:ref(LLVBARS(diff,len1),len0);//

result:if(macd1<0,ref(c,len2+len0),0);//最终结果

参考下。这个获取的就是上上次死叉到金叉直接diff最小值对应的K线收盘价。
需要注意的是,如果当前是金叉区间我直接返回0,只在死叉区间返回正确值。
[此贴子已经被作者于2019/4/10 14:41:50编辑过]