欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何取到macd上两个峰值

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3650人关注过本帖树形打印复制链接

主题:如何取到macd上两个峰值

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/11/6 16:13:13    Post IP:58.246.57.26[显示全部帖子]

你这个峰值是怎么定义的?  从你这个代码去理解的话,思路不是很明确。 你用文字描述下你这个思路我看下吧。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/11/9 8:54:55    Post IP:58.246.57.26[显示全部帖子]

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),NODRAW;//macd金叉
macdsc:=cross(dea,diff),NODRAW;

DRAWICON(macdjc,h,1);
DRAWICON(macdsc,l,1);
M1:=SUMBARS(macdsc,1);//最近一次死叉位置
M2:=SUMBARS(macdsc,2);


maxValue1:ref(HHV(diff,BARSLAST(macdjc)+2),M1-1);//最近一次金叉到死叉之间diff最大值
maxValue2:ref(HHV(diff,BARSLAST(macdjc)+2),M2-1);//上上一次金叉到死叉之间diff最大值
maxValue3:HHV(diff,BARSLAST(macdjc)+2);//如果当前是macd红柱,则最近一次最大值用这个取



recentHigh1:=ref(HHVBARS(diff,BARSLAST(macdjc)+2),M1-1);
recentHigh2:=ref(HHVBARS(diff,BARSLAST(macdjc)+2),M2-1);
recentHigh3:=HHVBARS(diff,BARSLAST(macdjc)+2);


len1:recentHigh1+M1-1;//最近一次金叉到死叉之间的diff最大值到当前的位置
len2:recentHigh2+M2-1;//上上一次金叉到死叉之间的diff最大值到当前的位置
len3:recentHigh3;

这里的统计要分情况。
如果当前是绿柱:
len1,len2 分别是2次最大值距离现在的位置
maxValue1,maxValue2 分别是2次的最大值


如果当前是红柱,把当前的红柱统计在内的话。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
也就是从金叉位置到光标位置就是第一个diff最大值所在位置。

那么:
len2,len3 分别是2次最大值距离现在的位置
maxValue2,maxValue3 分别是2次的最大值






命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/27 9:17:18    Post IP:58.246.57.26[显示全部帖子]

 你的思路大致是怎样的?顶背离的代码能理解,但是就是你连续顶背离的判断方式我从你代码没推测出来。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/28 9:35:19    Post IP:58.246.57.26[显示全部帖子]

 顶背离:maxValue1<maxValue2 and ref(close,len1)>ref(close,len2) and macdsc;

连续背离:顶背离 and ref(顶背离,M2-1);//M2是前面定义的一个变量
DRAWICON(顶背离,h,1);
DRAWICON(连续背离,l,2);

这样试下呢。
效果如下:

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


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/2/1 10:51:11    Post IP:58.246.57.26[显示全部帖子]

 这个怕是只能在死叉的位置判断了,你在金叉位置判断不行。因为你不知道未来会怎样走。

也就是一个后知后觉的判断。

就是判断上次金叉以来的K线跨度。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/2/2 9:43:00    Post IP:58.246.57.26[显示全部帖子]

其他的方式不好弄。你只能修改jc的定义方式。来过滤掉长度不足的jc.

macdjc:=SUMBARS(cross(diff,dea),1)>=2 and diff>dea ,NODRAW;//macd金叉

这样的金叉的判断 就变成了在实际金叉位置后面的K上了。 以确保金叉足够长度。




命数如织,当如磐石。
 回到顶部