以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问:当短期上穿长期均线时,记录均线的前低点。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=75254)

--  作者:zqt99550386
--  发布时间:2015/2/2 11:19:17
--  请问:当短期上穿长期均线时,记录均线的前低点。
当短期上穿长期均线时,记录均线的前一低点。当短期下穿长期均线时,记录均线的前一高点。

如图:当C1出现时,记录D1,,,当C2出现时,记录G1,,,,当C3出现时,记录D2,,,,当C4出现时,记录G2,,,,其中D1,D2,G1,G2后边计算需要使用。

--  作者:zqt99550386
--  发布时间:2015/2/2 11:22:14
--  
上图
--  作者:jinzhe
--  发布时间:2015/2/2 11:24:49
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=31614&page=3

没看到图,按照上面链接里面的方法发图


--  作者:zqt99550386
--  发布时间:2015/2/2 14:28:14
--  

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

--  作者:jinzhe
--  发布时间:2015/2/2 14:46:29
--  

假设黄色线是a和绿色线是b

nn1:=barslast(cross(a,b));

nn2:=barslast(cross(b,a));

hh1:=hhv(a,nn1+1);

ll1:=llv(b,nn2+1);

if cross(a,b) then d2:=ll1;

if cross(b,a) then g2:=hh1;

 

就能求两个最近的高低极值,剩下的不好求了


--  作者:FexTel
--  发布时间:2015/2/2 14:56:49
--  

VARIABLE:l1[]=0,hl[]=0;
m1:ma(c,5);
m2:ma(c,10);
m3:=ref(m1,1);
m4:=ref(m1,2);
if m3<m4 and m3<m1 then
l1:=m3;
if m3>m4 and m3>m1 then
h1:=m3;
a:l1;
b:h1;
ld:ubound(l1);
hd:ubound(h1);
IF LD>1 AND HD>1 THEN
BEGIN
D1:L1[LD-1];
D2:L1[LD];
C1:H1[HD-1];
C2:H1[HD];
END

 

//如果想记录C3,D3道理是一样的。往回取值即可

用在逐K模式下

[此贴子已经被作者于2015/2/2 14:57:02编辑过]

--  作者:zqt99550386
--  发布时间:2015/2/2 15:03:26
--  
谢谢二位。。。。。。。。我先看一下。。。
--  作者:zqt99550386
--  发布时间:2015/2/5 10:12:33
--  
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=72801&page=0&move=pre
能按照这个思路改一下代码吗。。。



我新手太菜。6楼代码太复杂,我学习了好几天,看不明白。图片点击可在新窗口打开查看



--  作者:jinzhe
--  发布时间:2015/2/5 10:21:07
--  
这个就是我上面写的,一样的
--  作者:zqt99550386
--  发布时间:2015/2/5 10:37:52
--  
a:ma(c,5);
b:ma(c,20);
nn1:=barslast(cross(a,b));
nn2:=barslast(cross(b,a));
hh1:=hhv(a,nn1+1);
ll1:=llv(b,nn2+1);
if cross(a,b) then d2:=ll1;
if cross(b,a) then g2:=hh1;

加上均线代码。。副图不显示。。





我想按您的MACD的思路。显示不正确。
如下 。我太笨,,不会修改代码。
a:ma(c,5);
b:ma(c,20);
nn1:=barslast(m1>m2 and ref(m1,1)<ref(m2,1));
nn2:=barslast(m1<m2 and ref(m1,1)>ref(m2,1));
hh1:=ref(hhv(m1,nn1+1),nn2+1);
ll1:=ref(llv(m2,nn2+1),nn1+1);
if m1>m2 then ll:ll1;
if m1<m2 then hh:hh1