论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:2692回复:10
六神
注册时间2007-03-02
[MT4指标]能否在MACD指标里加入声音报警功能???
楼主发表于:2007-04-19 08:27只看该作者倒序浏览
1楼 电梯直达
电梯直达
急急急 ,谁能帮忙在那个自编的MACD指标里加入2线交叉报警声音功能??要求报警声音可以选择,并且在没人干预的情况下可以持续报警(方便看盘的时候睡觉)。 大虾们,拜托拉!!!
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
爆爆熊
注册时间2006-10-29
发表于:2007-04-21 00:46只看该作者
2楼
不知道你所说的"那个自编的MACD指标"是哪个
爆爆熊
注册时间2006-10-29
发表于:2007-04-21 02:15只看该作者
3楼
是下面这个吗?需要在圈起来的交叉点报警吗?下面以4小时图(PERIOD_H4)为例: #property indicator_chart_window extern int myperiod = PERIOD_H4; int nexttime=0; double mymacd0(int shift) { return(iMACD(NULL,myperiod,12,26,9,PRICE_CLOSE,MODE_MAIN,shift)); } double mymacd1(int shift) { return(iMACD(NULL,myperiod,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift)); } void myalert() { if(mymacd0(0)==mymacd1(0)) Alert(Symbol() +"H4_MACD交叉"); return(0); } int start() { if(Minute() >= nexttime && MathMod(Minute(),30)==0 ) { myalert(); nexttime=Minute()+2; if(nexttime>=60) nexttime-=60; } return(0); } 或者把mymacd0(0)==mymacd1(0)改为: (mymacd0(0)-mymacd1(0))*(mymacd0(1)-mymacd1(1))<=0 #property indicator_chart_window extern int myperiod = PERIOD_H4; int nexttime=0; double mymacd0(int shift) { return(iMACD(NULL,myperiod,12,26,9,PRICE_CLOSE,MODE_MAIN,shift)); } double mymacd1(int shift) { return(iMACD(NULL,myperiod,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift)); } void myalert() { if((mymacd0(0)-mymacd1(0))*(mymacd0(1)-mymacd1(1))<=0) Alert(Symbol() +"H4_MACD交叉"); return(0); } int start() { if(Minute() >= nexttime && MathMod(Minute(),30)==0 ) { myalert(); nexttime=Minute()+2; if(nexttime>=60) nexttime-=60; } return(0); }MACD.gifMACD.gif
个性签名

www.talkforex.com/blog//index.php?action/space/uid/39428

六神
注册时间2007-03-02
楼主发表于:2007-04-21 15:50只看该作者
4楼
我是在MACD论坛里下载的代码,代码如下: //+------------------------------------------------------------------+ //| MACD_ColorHist_Alert.mq4 | //| Copyright ?2006, Robert Hill | //| | //+------------------------------------------------------------------+ #property copyright "Copyright ?2006, Robert Hill" //---- indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Aqua #property indicator_color2 Red #property indicator_color3 Green #property indicator_color4 Red //---- indicator parameters extern bool SoundON=true; extern bool EmailON=false; extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- indicator buffers double ind_buffer1; double ind_buffer2; double HistogramBufferUp; double HistogramBufferDown; int flagval1 = 0; int flagval2 = 0; //---- variables //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings // IndicatorBuffers(3); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID); SetIndexBuffer(0,ind_buffer1); SetIndexDrawBegin(0,SlowEMA); SetIndexStyle(1,DRAW_LINE,STYLE_DOT); SetIndexBuffer(1,ind_buffer2); SetIndexDrawBegin(1,SignalSMA); SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID); SetIndexBuffer(2,HistogramBufferUp); SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID); SetIndexBuffer(3,HistogramBufferDown); // SetIndexDrawBegin(2,SlowEMA + SignalSMA); //---- name for DataWindow and indicator subwindow label IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")"); SetIndexLabel(0,"MACD"); SetIndexLabel(1,"Signal"); SetIndexLabel(2,"Histogram"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { int limit; double temp; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st buffer for(int i=0; i= 0) HistogramBufferUp = temp; else HistogramBufferDown = temp; if (i == 1) { if (HistogramBufferUp > 0 && HistogramBufferDown[i + 1] < 0) // if (HistogramBufferUp > HistogramBufferUp[i + 1]) { // Cross up if (flagval1==0) { flagval1=1; flagval2=0; if (SoundON) Alert("MACD Crossed up","\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period()); if (EmailON) SendMail("MACD Crossed up", "MACD Crossed up, Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period()); } } else if (HistogramBufferDown < 0 && HistogramBufferUp[i + 1] > 0) // else if (HistogramBufferUp < HistogramBufferUp[i + 1] ) { // Cross down if (flagval2==0) { flagval2=1; flagval1=0; if (SoundON) Alert("MACD Crossed down","\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period()); if (EmailON) SendMail("MACD Crossed down","MACD Crossed Down, Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period()); } } } } //---- done return(0); } 请问在这里面如何加程序才能实现2线交叉声音持久报警功能????
六神
注册时间2007-03-02
楼主发表于:2007-04-21 15:53只看该作者
5楼
爆爆熊同学,你能帮我把以上的代码改改嘛,我不管几小时图,我要的结果是无论在什么几小时下,只要2线交叉就发出声音报警,而且声音要可以选择。谢谢了!!!
爆爆熊
注册时间2006-10-29
发表于:2007-04-23 05:58只看该作者
6楼
持续报警不是很烦吗?代码原作者为了消除持持续报警问题,还煞费苦心地加上了变量flagval 要让它持续报警还不容易吗? 把所有的:flagval1=0; flagval1=1; flagval2=0; flagval2=1; 统统改为:flagval1=0; flagval2=0; 注:在你提供的源码中, [CODE] ind_buffer1 ind_buffer2 HistogramBufferUp HistogramBufferDown 以上数组名后面丢失 应补上,改为: ind_buffer1 ind_buffer2 HistogramBufferUp HistogramBufferDown [/CODE]
六神
注册时间2007-03-02
楼主发表于:2007-04-24 07:58只看该作者
7楼
爆兄,持续报警主要是为了在睡着的情况下能及时被喊醒,而不至于错过行情。其实在MT中有个报警功能可以响1000次,这就很不错,但那个报警只是在指定价格到了后才叫。我现在需要在MACD里也加上持续报警。 另外你给的代码我看不懂,你能行行好,把整个代码改好后,重新贴出来吗???
爆爆熊
注册时间2006-10-29
发表于:2007-04-24 08:54只看该作者
8楼
//+------------------------------------------------------------------+ //| MACD_ColorHist_Alert.mq4 | //| Copyright ?2006, Robert Hill | //| | //+------------------------------------------------------------------+ #property copyright "Copyright ?2006, Robert Hill" //---- indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Aqua #property indicator_color2 Red #property indicator_color3 Green #property indicator_color4 Red //---- indicator parameters extern bool SoundON=true; extern bool EmailON=false; extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- indicator buffers double ind_buffer1; double ind_buffer2; double HistogramBufferUp; double HistogramBufferDown; int flagval1 = 0; int flagval2 = 0; //---- variables //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings // IndicatorBuffers(3); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID); SetIndexBuffer(0,ind_buffer1); SetIndexDrawBegin(0,SlowEMA); SetIndexStyle(1,DRAW_LINE,STYLE_DOT); SetIndexBuffer(1,ind_buffer2); SetIndexDrawBegin(1,SignalSMA); SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID); SetIndexBuffer(2,HistogramBufferUp); SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID); SetIndexBuffer(3,HistogramBufferDown); // SetIndexDrawBegin(2,SlowEMA + SignalSMA); //---- name for DataWindow and indicator subwindow label IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")"); SetIndexLabel(0,"MACD"); SetIndexLabel(1,"Signal"); SetIndexLabel(2,"Histogram"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { int limit; double temp; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st buffer for(int i=0; i= 0) HistogramBufferUp = temp; else HistogramBufferDown = temp; } if((HistogramBufferUp[0]+HistogramBufferDown[0])*(HistogramBufferUp[1]+HistogramBufferDown[1])<0) if((HistogramBufferUp[0]+HistogramBufferDown[0])>0) { if (SoundON) Alert("MACD Crossed up","\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period()); if (EmailON) SendMail("MACD Crossed up", "MACD Crossed up, Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period()); } else { if (SoundON) Alert("MACD Crossed down","\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period()); if (EmailON) SendMail("MACD Crossed down","MACD Crossed Down, Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period()); } return(0); }
爆爆熊
注册时间2006-10-29
发表于:2007-04-24 08:59只看该作者
9楼
报警条件见下图,由于持续报警,5分钟图交叉将报警5分钟,1小时图报警将持续报警1小时,4小时图报警将持续报警4小时,天图报警将持续报警1天,周图报警将持续报警1周,,,:lol 楼主可要想清楚bj.gifbj.gif
个性签名

www.talkforex.com/blog//index.php?action/space/uid/39428

六神
注册时间2007-03-02
楼主发表于:2007-04-25 03:09只看该作者
10楼
谢谢爆兄,我先搞来试试,看看还有哪里需要修改再找你帮忙好了。
六神
注册时间2007-03-02
楼主发表于:2007-04-25 03:22只看该作者
11楼
晕 ,我搞出来怎么只有一根线???12.JPG12.JPG

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]