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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于MACD的判断公式如何编写

   

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


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

主题:关于MACD的判断公式如何编写

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


加好友 发短信
等级:标准版用户 帖子:35 积分:0 威望:0 精华:0 注册:2016/5/4 13:56:49
  发帖心情 Post By:2016/5/30 18:39:24    Post IP:222.184.188.217[只看该作者]

谢谢老师。
dynainfo(55)是本周期的跌停价还是本日的?如果我公式是60分钟的,dynainfo(55)是今天的跌停价吗?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/31 9:00:50    Post IP:180.173.198.10[只看该作者]

一样的,当天的价格,跌停没有“当根k线跌停价”这一说法,涨跌停都是一天的价格


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:标准版用户 帖子:35 积分:0 威望:0 精华:0 注册:2016/5/4 13:56:49
  发帖心情 Post By:2016/6/1 17:09:27    Post IP:49.67.233.114[只看该作者]

 gnum:=barslast(ref(macd>0,1) and macd<0);//红转绿
 bnum:=barslast(ref(macd<0,1) and macd>0);//绿转红 
 
numb:=max(gnum,bnum)+1; 

这三句代码中,第一句是这个周期的上一周期MACD大于零但这个周期小于零到本周期的周期数,就是上个死叉到现在的周期数。第二句是这个周期的上一周期MACD小于零但这个周期大于零到本周期的周期数,就是上个金叉到现在的周期数。这都好理解。
但最后一句话,让我比较两者大小后取最大值,想半天也不明白。
打下比方。如果现在是绿柱状态,那么肯定是上次的死叉远,那么从上次死叉开始计数没问题。
但如果现在是红柱状态,就是代码里的第二种情况"当绿柱消失,红柱开始放出“这种情况,肯定是上次的金叉比较远,这样的话,就变成了从上次的金叉开始计数了,这不对吧
请百忙中抽空解答一下,谢谢







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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/6/1 17:27:35    Post IP:180.169.30.6[只看该作者]

上面的公式就判断了macd小于0的情况,没有判断macd大于0的情况。用户的思路是对的,macd大于0的情况可以根据前面的代码自行做下改进


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:标准版用户 帖子:35 积分:0 威望:0 精华:0 注册:2016/5/4 13:56:49
  发帖心情 Post By:2016/6/8 23:44:04    Post IP:49.67.235.33[只看该作者]

老师,代码中
variable:gsum=0;  //gsum绿柱总和
variable:glong=0;  //glong最长绿柱
variable:glow=0;   //glow绿柱区域最低价


variable主要起到什么作用呀?有这段代码和没有貌似也没有多少区别么

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/6/12 9:27:30    Post IP:180.173.198.10[只看该作者]

这个是用全局来计算,在条件判断后进行赋值


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:论坛游侠 帖子:535 积分:0 威望:0 精华:0 注册:2015/3/23 12:33:01
  发帖心情 Post By:2016/10/7 9:52:55    Post IP:115.203.209.116[只看该作者]

公式中用了abs,所以第二种情况"当绿柱消失,红柱开始放出“这种情况也适用。
当然可如下更改:
rcon:= ref(con1 and con2 and con3 ,bnum+1);
if ref(macd<0,1) and macd>0then
begin
    if rcon then 加:buy(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end

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


加好友 发短信
等级:论坛游侠 帖子:274 积分:0 威望:0 精华:0 注册:2015/7/5 14:46:18
  发帖心情 Post By:2017/6/13 16:16:08    Post IP:222.78.34.223[只看该作者]

那顶背离应该按底背离做相应修改,可是将两者情况放在一起,图表却显示其中一种,怎么将两者判断的情况都显示出来,下面是代码,望大牛解疑
 variable:gsum=0;  //gsum绿柱总和
variable:glong=0;  //glong最长绿柱
variable:glow=0;   //glow绿柱区域最低价
variable:bsum=0; //bsum 红柱总和
variable:blong=0; //blong最长红柱
variable:bhigh=0;  //bhigh红柱区域最高价

 
//MACD指标
P:=26;
S:=12;
M:=9;
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
macd := 2*(DIFF-DEA);
ma5:ma(c,5);
 
gnum:=barslast(ref(macd>0,1) and macd<0);//红转绿
bnum:=barslast(ref(macd<0,1) and macd>0);//绿转红

if ref(macd,1)>0 and macd<0 then 
begin
 gsum:=0;    //绿柱开始,清0
 glong:=0;    //绿柱开始,清0
 glow:=low;  //绿柱开始,初始化
end

if macd<0 then 
begin
 gsum:=gsum+macd;                                    //累加
 if abs(macd)>abs(glong) then glong:=macd;//如果绿柱更长,则记录
 if low<glow then glow:=low;                         //如果价格更低,则记录
end
 
numb:=max(gnum,bnum)+1;
con1:=abs(gsum)<abs(ref(gsum,numb));//面积小于前一波--面积没创新低
con2:=abs(glong)<abs(ref(glong,numb));//柱子长度小于前一波----长度没创新低
con3:=glow<ref(glow,numb);//价格小于前一波-----价格创新低

 
 
//当绿柱开始收缩时(熊市即将结束,可能反转向上(或低位盘整)),如果出现低背离,则少量建仓
if all(macd<0,3) and ref(macd,1)<macd and ref(macd,1)<ref(macd,2) then
begin
 if con1 and con2 and con3 then buy(1 and holding,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end
 
 
//绿柱消失、红柱开始放出时(下跌行情(或低位盘整)已经结束),如果出现低背离,则加仓
if ref(macd<0,1) and macd>0 then
begin
    if con1 and con2 and con3  then 加多:buy(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end  //dibei 过程


bnum:=barslast(ref(macd<0,1) and macd>0);//绿转红
gnum:=barslast(ref(macd>0,1) and macd<0);//红转绿

if ref(macd,1)<0 and macd>0 then 
begin
 bsum:=0;    //红柱开始,清0
 blong:=0;    //红柱开始,清0
 bhigh:=high;  //红柱开始,初始化
end

if macd>0 then 
begin
 bsum:=bsum+macd;                                    //累加
 if abs(macd)>abs(blong) then blong:=macd;//如果红柱更长,则记录
 if high>bhigh then bhigh:=high;                         //如果价格更高,则记录
end
 
numb:=max(gnum,bnum)+1;//77777
con4:=abs(bsum)<abs(ref(bsum,numb));//面积小于前一波--面积没创新高
con5:=abs(blong)<abs(ref(blong,numb));//柱子长度小于前一波----长度没创新高
con6:=bhigh>ref(bhigh,numb);//价格大于前一波-----价格创新高

 
 
//当红柱开始收缩时(牛市即将结束,可能反转向下(或高位盘整)),如果出现顶背离,则少量建仓
if all(macd>0,3) and ref(macd,1)>macd and ref(macd,1)>ref(macd,2) then
begin
 if con4 and con5 and con6  then  buyshort(1 and holding=0,1,market);//顶背离,面积没创新低,长度没创新低,价格创新低
end
 
 
//红柱消失、绿柱开始放出时(上涨行情(或低位盘整)已经结束),如果出现顶背离,则加仓
if ref(macd>0,1) and macd<0 then
begin
    if con4 and con5 and con6  then 加空:buyshort(1,1,market);//顶背离,面积没创新高,长度没创新高,价格创新高
end


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


加好友 发短信
等级:论坛游侠 帖子:274 积分:0 威望:0 精华:0 注册:2015/7/5 14:46:18
  发帖心情 Post By:2017/6/14 10:58:55    Post IP:222.78.34.223[只看该作者]

根据底背离的代码,将macd大于0的情况进行了修改,按照楼上代码只出现开空情况,开多情况并没有体现,不知道代码哪里出现了问题。就是顶背离的情况。还是说逻辑关系出问题了,底背离和顶背离怎么结合。望老师解答

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/6/14 12:18:11    Post IP:180.169.30.6[只看该作者]

用户可否具体定义下问题,像上面这段模型程序无论从代码行还是逻辑算法复杂度都是有一定程度的

您光说有疑问并且贴出代码,工作人员分析起来其实也是有很大的难度的,最好您能精确下比如某一行某一段如何不对等等


 回到顶部
总数 49 上一页 1 2 3 4 5 下一页