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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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个不就是取值的变量了吗?要计算什么,可以直接调用了啊?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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[显示全部帖子]

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


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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[显示全部帖子]

处理中,稍等。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]


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


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

 10楼的当前是红柱的情况,如果当前是绿柱也是类似的。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/15 14:29:04    Post IP:180.169.30.6[显示全部帖子]

 到这里下单这块建议可以自行处理了。


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