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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → MACD高低点怎么求值比价

   

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


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

主题:MACD高低点怎么求值比价

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


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
MACD高低点怎么求值比价  发帖心情 Post By:2019/1/14 14:03:56    Post IP:123.5.159.153[只看该作者]

 
图片点击可在新窗口打开查看此主题相关图片如下:333.png
图片点击可在新窗口打开查看
GD1是GD2前一个MACD波峰的最高点

GD2也是MACD波峰的最高点

DD1是GD2和GD1之前的最低点    MACD的波峰波谷的柱子小于5根的过滤(死叉到金叉的过滤少于5根柱子过滤不取值)

 

取值GD1.GD2,DD1三个高点和一个低点赋予3个变量(MACD的波峰波谷的柱子小于5根的过滤),如果GD2大于前边的GD1,MACD死叉完成后(GD1和GD2和DD1是过去值不存在未来)也就是白色圈的位置开始计算。

当GD2创GD1的高后,当 现价小于GD2 而且 现价大于DD1 而且 现价大于REF(HHV(H,6),1)  开多  简单的意思就是  创新高回调满足特定条件做多

求助这个公式该怎么写?GD2,GD1,DD1的三个高低点怎么能赋值给三个变量让他们比价

 


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/14 14:38:43    Post IP:180.169.30.6[只看该作者]

 我回过头去看了之前的帖子。我发现有个地方没有沟通清楚,你说  “怎么能赋值给三个变量” 。你如果代码已经能取到值了,那就是已经把值赋给某个变量了,这样的话直接就可以把那个变量拿来做你说的比价了啊。所以这个我没太明白怎么回事。 

比如说你之前的代码:
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);
n1:=sumbars(macd>0 and ref(macd<0,1),1);
n2:=sumbars(macd<0 and ref(macd>0,1),1);
l1:ref(llv(low,n2),n1);
h1:ref(hhv(HIGH,n1),n2);

这2个不就是取值的变量了吗?要计算什么,可以直接调用了啊?


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


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2019/1/14 14:45:13    Post IP:123.5.159.153[只看该作者]

当GD2创GD1的高后,当 现价小于GD2 而且 现价大于DD1 而且 现价大于REF(HHV(H,6),1)  开多  简单的意思就是  创新高回调满足特定条件做多

这个公式该怎么写 ?

 死叉到金叉里的小于MACD柱子小于5根的怎么过滤掉,就是柱子小于5根的不结算高低点?  这短代码能取到高低点值 但是我试了几次都是没法比价,写出来的都不是我要的效果


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/14 14:50:50    Post IP:180.169.30.6[只看该作者]

你要的比价具体是如何定义的,能取到值怎么可能无法做比值呢?我必须搞明白这点。


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


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2019/1/14 16:38:28    Post IP:123.5.159.153[只看该作者]


此主题相关图片如下:66616.png
按此在新窗口浏览图片
这个图左上角的H1是波峰高点  L1是上一个波谷的低点  但是用REF是比值的时候取的不是上一个MACD金叉到死叉里边的最高点,而是上一根K线的H1值。

DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);
n1:=sumbars(macd>0 and ref(macd<0,1),1);
n2:=sumbars(macd<0 and ref(macd>0,1),1);
l1:ref(llv(low,n2),n1);
h1:ref(hhv(HIGH,n1),n2); 

这段代码用H1>REF(H1,1)表示,不是两个高点的比较,而是上个当根K线的H1和上个K线的H1值比较 我想要是的是两个波峰的高点比较;

 

求助1楼的图所示 :MACD柱子大于5根的情况下(小于5根过滤)取波峰最高点GD2和GD1,和波谷的DD1。当GD2创GD1的高后,当 现价小于GD2 而且 现价大于DD1 而且 现价大于REF(HHV(H,6),1)  开多  简单的意思就是  创新高回调满足特定条件做多

这个比较后满足开仓的条件的公式该怎么写 ?

 

[此贴子已经被作者于2019/1/14 16:39:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
乐山
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:58 积分:0 威望:0 精华:0 注册:2018/11/12 11:09:38
  发帖心情 Post By:2019/1/15 11:02:14    Post IP:124.119.122.110[只看该作者]

求助1楼的图所示 :MACD柱子大于5根的情况下(小于5根过滤)取波峰最高点GD2和GD1,同问

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/15 11:06:42    Post IP:180.169.30.6[只看该作者]

处理中,稍等。


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


加好友 发短信
等级:新手上路 帖子:58 积分:0 威望:0 精华:0 注册:2018/11/12 11:09:38
  发帖心情 Post By:2019/1/15 11:41:31    Post IP:124.119.122.110[只看该作者]

谢谢版主,麻烦了,其实我和楼主问的是同样的问题。就是     金叉和死叉之间的最高价,和这个最高加的时间位置?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/15 14:20:13    Post IP:180.169.30.6[只看该作者]

你先核对取值情况再尝试看代码,代码比较麻烦。


VARIABLE:GD2:=0,GD1:=0,DD1:=0;//GD2最近第二个macd红柱高点,GD1最近第一个macd红柱高点,DD1最近一次macd绿柱低点

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6),n(9,1,100,10);//参数设置

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

macdjc:=cross(diff,dea);//macd金叉
macdsc:=cross(dea,diff);

//len1,len2用以判断macd长度是否满足5个K。
len1:=BARSLAST(macdsc)+1;//当前是绿柱 返回值则是绿柱长度,否则是最近一段红柱绿柱总长度
len2:=BARSLAST(macdjc)+1;//当前是红柱则是 返回值则是红柱长度,否则是最近一段红柱绿柱总长度

len3:=LLVBARS(macd1,len1);//获取macd绿柱低点位置
len4:=HHVBARS(macd1,len2);//获取macd红柱高点位置

temp1:IF(macd1<0 and len1>=5,ref(l,len3),0),NODRAW;//如果macd小于0且macd绿柱长度大于5,取macd绿柱最低点对应的最低值,否则返回0
temp2:IF(macd1>0 and len2>=5,ref(h,len4),0),NODRAW;//如果macd大于0且macd红柱长度大于5,取macd红柱最高点对应的最高值,否则返回0

len5:=BARSLAST(ref(temp1<>0,1) and macdjc);//如果当前绿柱不足五个K情况下,需要寻找上一个符合条件的绿柱位置。len5返回的就是这个位置
len6:=BARSLAST(ref(temp2<>0,1) and macdsc);//同上,对应的红柱的情况。
len7:=SUMBARS(ref(temp2<>0,1) and macdsc,2);//返回的是上上次有效红柱位置

//****重要说明:下面取值的时候是在判断当前macd柱是否满足五个K的前提下进行取值的。当前K位置不同情况完全不一样。核对时候必须注意这一点

DD1:=IF(macd1<0 and temp1<>0,temp1,ref(temp1,len5+1));//最近一次有效绿柱对应的最低价。如果当前绿柱已经超过五个K,取当前绿柱对应最低点,否则取上一次有效值。
GD1:=IF(macd1>0 and temp2<>0,temp2,ref(temp2,len6+1));//最近一次有效红柱对应的最高价。如果当前红柱已经超过五个K,取当前红柱对应最低点,否则取上一次有效值。
GD2:=IF(len2<5,ref(temp2,len7),ref(temp2,len6+1));//最近第二个符合条件的红柱最高点对应的最高价

result1:GD1;
result2:GD2;
result3:DD1;



[此贴子已经被作者于2019/1/15 14:29:24编辑过]


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/15 14:26:57    Post IP:180.169.30.6[只看该作者]

result1:GD1;
result2:GD2;
result3:DD1;


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

如果当前K位置不满足五个柱,取值对应的区间。


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

如果当前K位置满足五个柱以上,取值对应的区间。
[此贴子已经被作者于2019/1/15 14:27:21编辑过]


命数如织,当如磐石。
 回到顶部
总数 13 1 2 下一页