如何编码? - 页 346 1...339340341342343344345346347 新评论 Martin-binary 2016.04.20 10:56 #3451 你好,mladen,请问你能不能为这个指标添加声音提示?谢谢 附加的文件: patterns.ex4 45 kb Fausto Nunziante Del Gaudio 2016.10.14 01:16 #3452 Mladen或编码员,如何在mql4中创建像图片中这样的容器盒?Obj_label? 附加的文件: infoboard.png 204 kb Nicola Forex 2017.07.23 13:45 #3453 Kale: 这个指标肯定是有用的,特别是当你把它和Zigzag结合起来的时候。 非常好的EA编码的开始。Kale: 这个指标肯定是有用的,尤其是当你把它和Zigzag结合起来的时候。 编写EA代码的良好开端。你能不能把源文件.mql4发布出来?谢谢 seco35 2018.01.19 00:06 #3454 //+--------------------------------------------------------------------------+ //| 3 MA Cross with alert.mq4 | //| mladen | //+--------------------------------------------------------------------------+ #property copyright "mladen" #property link "mladenfx@gmail.com" #property indicator_chart_window #property indicator_buffers 9 #property indicator_color1 Aqua #property indicator_color2 Orange #property indicator_color3 DodgerBlue #property indicator_color4 Red #property indicator_color5 Blue #property indicator_color6 FireBrick #property indicator_color7 Blue #property indicator_color8 LimeGreen #property indicator_color9 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 #property indicator_width4 2 #property indicator_width5 2 #property indicator_width6 2 #property indicator_width7 2 #property indicator_width8 2 #property indicator_width9 2 // // // // // extern string TimeFrame = "Current time frame" ; extern int FasterMA = 10 ; //5; extern int FasterShift = 0 ; extern ENUM_MA_METHOD FasterMode = 1 ; extern ENUM_APPLIED_PRICE FasterPrice = PRICE_CLOSE ; extern int MediumMA = 20 ; extern int MediumShift = 0 ; extern ENUM_MA_METHOD MediumMode = 1 ; extern ENUM_APPLIED_PRICE MediumPrice = PRICE_CLOSE ; extern int SlowerMA = 40 ; //34; extern int SlowerShift = 0 ; extern ENUM_MA_METHOD SlowerMode = 1 ; extern ENUM_APPLIED_PRICE SlowerPrice = PRICE_CLOSE ; extern bool showMAs = true ; extern bool alertsOn = false ; extern bool alertsOnCurrent = true ; extern bool alertsOnFastCrossMiddle = true ; extern bool alertsOnFastCrossSlow = true ; extern bool alertsOnMiddleCrossSlow = true ; extern bool alertsMessage = true ; extern bool alertsSound = false ; extern bool alertsNotify = false ; extern bool alertsEmail = false ; extern bool showarrows_ms = false ; //true; extern bool showarrows_fs = true ; extern bool showarrows_fm = true ; extern int arrowUpCode_ms = 159 ; extern int arrowDownCode_ms = 159 ; extern int arrowUpCode_fs = 233 ; extern int arrowDownCode_fs = 234 ; extern int arrowUpCode_fm = 116 ; extern int arrowDownCode_fm = 116 ; extern bool Interpolate = true ; extern bool ArrowsOnFirstBar = false ; extern double arrowsFMGap = 0.50 ; extern double arrowsFSGap = 0.75 ; extern double arrowsMSGap = 1.00 ; // // // // // double CrossfmUp[]; double CrossfmDn[]; double CrossfsUp[]; double CrossfsDn[]; double CrossmsUp[]; double CrossmsDn[]; double ma1[]; double ma2[]; double ma3[]; double trendfm[]; double trendfs[]; double trendms[]; // // // // // string indicatorFileName; bool returnBars; int timeFrame; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // // // // // int init() { IndicatorBuffers ( 12 ); //SetIndexBuffer(0,CrossmsUp); SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0,arrowUpCode) ; SetIndexBuffer ( 0 ,CrossmsUp); if (showarrows_ms) { SetIndexStyle ( 0 , DRAW_ARROW ); SetIndexArrow ( 0 ,arrowUpCode_ms) ; } else SetIndexStyle ( 0 , DRAW_NONE ); //SetIndexBuffer(1,CrossmsDn); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1,arrowDownCode); SetIndexBuffer ( 1 ,CrossmsDn); if (showarrows_ms) { SetIndexStyle ( 1 , DRAW_ARROW ); SetIndexArrow ( 1 ,arrowDownCode_ms); } else SetIndexStyle ( 1 , DRAW_NONE ); //SetIndexBuffer(2,CrossfsUp); SetIndexStyle(2, DRAW_ARROW); SetIndexArrow(2,arrowUpCode) ; SetIndexBuffer ( 2 ,CrossfsUp); if (showarrows_fs) { SetIndexStyle ( 2 , DRAW_ARROW ); SetIndexArrow ( 2 ,arrowUpCode_fs) ; } else SetIndexStyle ( 2 , DRAW_NONE ); //SetIndexBuffer(3,CrossfsDn); SetIndexStyle(3, DRAW_ARROW); SetIndexArrow(3,arrowDownCode); SetIndexBuffer ( 3 ,CrossfsDn); if (showarrows_fs) { SetIndexStyle ( 3 , DRAW_ARROW ); SetIndexArrow ( 3 ,arrowDownCode_fs); } else SetIndexStyle ( 3 , DRAW_NONE ); //SetIndexBuffer(4,CrossfmUp); SetIndexStyle(4, DRAW_ARROW); SetIndexArrow(4,arrowUpCode) ; SetIndexBuffer ( 4 ,CrossfmUp); if (showarrows_fm) { SetIndexStyle ( 4 , DRAW_ARROW ); SetIndexArrow ( 4 ,arrowUpCode_fm) ; } else SetIndexStyle ( 4 , DRAW_NONE ); //SetIndexBuffer(5,CrossfmDn); SetIndexStyle(5, DRAW_ARROW); SetIndexArrow(5,arrowDownCode); SetIndexBuffer ( 5 ,CrossfmDn); if (showarrows_fm) { SetIndexStyle ( 5 , DRAW_ARROW ); SetIndexArrow ( 5 ,arrowDownCode_fm); } else SetIndexStyle ( 5 , DRAW_NONE ); SetIndexBuffer ( 6 ,ma1); SetIndexBuffer ( 7 ,ma2); SetIndexBuffer ( 8 ,ma3); SetIndexBuffer ( 9 ,trendfm); SetIndexBuffer ( 10 ,trendfs); SetIndexBuffer ( 11 ,trendms); if (showMAs) { SetIndexStyle ( 6 , DRAW_LINE ); SetIndexStyle ( 7 , DRAW_LINE ); SetIndexStyle ( 8 , DRAW_LINE ); } else { SetIndexStyle ( 6 , DRAW_NONE ); SetIndexStyle ( 7 , DRAW_NONE ); SetIndexStyle ( 8 , DRAW_NONE ); } // // // // // indicatorFileName = WindowExpertName (); returnBars = TimeFrame == "returnBars" ; if (returnBars) return ( 0 ); timeFrame = stringToTimeFrame(TimeFrame); SetIndexShift ( 6 ,FasterShift*timeFrame/ Period ()); SetIndexShift ( 7 ,MediumShift*timeFrame/ Period ()); SetIndexShift ( 8 ,SlowerShift*timeFrame/ Period ()); IndicatorShortName (timeFrameToString(timeFrame)+ " 3 ma cross " ); return ( 0 ); } int deinit() { return ( 0 ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // // // // // int start() { int counted_bars= IndicatorCounted (); if (counted_bars< 0 ) return (- 1 ); if (counted_bars> 0 ) counted_bars--; int limit= MathMin ( Bars -counted_bars, Bars - 1 ); if (FasterShift < 0 ) limit = MathMax (limit,-FasterShift); if (MediumShift < 0 ) limit = MathMax (limit,-MediumShift); if (SlowerShift < 0 ) limit = MathMax (limit,-SlowerShift); if (returnBars) { CrossmsUp[ 0 ] = limit+ 1 ; return ( 0 ); } if (timeFrame!= Period ()) { int shift = - 1 ; if (ArrowsOnFirstBar) shift= 1 ; limit = MathMax (limit, MathMin ( Bars - 1 , iCustom ( NULL ,timeFrame,indicatorFileName, "returnBars" , 0 , 0 )*timeFrame/ Period ())); for ( int i=limit; i>= 0 ; i--) { int y = iBarShift ( NULL ,timeFrame, Time [i]); int x = iBarShift ( NULL ,timeFrame, Time [i+shift]); ma1[i] = iCustom ( NULL ,timeFrame,indicatorFileName, "calculateValue" ,FasterMA, 0 ,FasterMode,FasterPrice,MediumMA, 0 ,MediumMode,MediumPrice,SlowerMA, 0 ,SlowerMode,SlowerPrice,showMAs,alertsOn,alertsOnCurrent,alertsOnFastCrossMiddle,alertsOnFastCrossSlow,alertsOnMiddleCrossSlow,alertsMessage,alertsSound,alertsNotify,alertsEmail,showarrows_ms,showarrows_fs,showarrows_fm, 6 ,y); ma2[i] = iCustom ( NULL ,timeFrame,indicatorFileName, "calculateValue" ,FasterMA, 0 ,FasterMode,FasterPrice,MediumMA, 0 ,MediumMode,MediumPrice,SlowerMA, 0 ,SlowerMode,SlowerPrice,showMAs,alertsOn,alertsOnCurrent,alertsOnFastCrossMiddle,alertsOnFastCrossSlow,alertsOnMiddleCrossSlow,alertsMessage,alertsSound,alertsNotify,alertsEmail,showarrows_ms,showarrows_fs,showarrows_fm, 7 ,y); ma3[i] = iCustom ( NULL ,timeFrame,indicatorFileName, "calculateValue" ,FasterMA, 0 ,FasterMode,FasterPrice,MediumMA, 0 ,MediumMode,MediumPrice,SlowerMA, 0 ,SlowerMode,SlowerPrice,showMAs,alertsOn,alertsOnCurrent,alertsOnFastCrossMiddle,alertsOnFastCrossSlow,alertsOnMiddleCrossSlow,alertsMessage,alertsSound,alertsNotify,alertsEmail,showarrows_ms,showarrows_fs,showarrows_fm, 8 ,y); CrossfmUp[i] = EMPTY_VALUE ; CrossfmDn[i] = EMPTY_VALUE ; CrossfsUp[i] = EMPTY_VALUE ; CrossfsDn[i] = EMPTY_VALUE ; CrossmsUp[i] = EMPTY_VALUE ; CrossmsDn[i] = EMPTY_VALUE ; trendfm[i] = trendfm[i+ 1 ]; trendfs[i] = trendfs[i+ 1 ]; trendms[i] = trendms[i+ 1 ]; if (x!=y) { if (ma1[i]>ma2[i]) trendfm[i] = 1 ; if (ma1[i]<ma2[i]) trendfm[i] = - 1 ; if (ma1[i]>ma3[i]) trendfs[i] = 1 ; if (ma1[i]<ma3[i]) trendfs[i] = - 1 ; if (ma2[i]>ma3[i]) trendms[i] = 1 ; if (ma2[i]<ma3[i]) trendms[i] = - 1 ; double range = iATR ( NULL , 0 , 15 ,i); if (alertsOnFastCrossMiddle && trendfm[i]!=trendfm[i+ 1 ]) if (trendfm[i] == 1 ) CrossfmUp[i] = MathMin (ma1[i],ma2[i])-range*arrowsFMGap; else CrossfmDn[i] = MathMax (ma1[i],ma2[i])+range*arrowsFMGap; if (alertsOnFastCrossSlow && trendfs[i]!=trendfs[i+ 1 ]) if (trendfs[i] == 1 ) CrossfsUp[i] = MathMin (ma1[i],ma3[i])-range*arrowsFSGap; else CrossfsDn[i] = MathMax (ma1[i],ma3[i])+range*arrowsFSGap; if (alertsOnMiddleCrossSlow && trendms[i]!=trendms[i+ 1 ]) if (trendms[i] == 1 ) CrossmsUp[i] = MathMin (ma2[i],ma3[i])-range*arrowsMSGap; else CrossmsDn[i] = MathMax (ma2[i],ma3[i])+range*arrowsMSGap; } // // // // // if (!Interpolate || y== iBarShift ( NULL ,timeFrame, Time [i- 1 ])) continue ; // // // // // datetime time = iTime ( NULL ,timeFrame,y); for ( int n = 1 ; i+n < Bars && Time [i+n] >= time; n++) continue ; for ( int k = 1 ; k < n; k++) { ma1[i+k] = ma1[i] + (ma1[i+n] - ma1[i]) * k/n; ma2[i+k] = ma2[i] + (ma2[i+n] - ma2[i]) * k/n; ma3[i+k] = ma3[i] + (ma3[i+n] - ma3[i]) * k/n; } } return ( 0 ); } // // // // // for (i = limit; i >= 0 ; i--) { CrossfmUp[i] = EMPTY_VALUE ; CrossfmDn[i] = EMPTY_VALUE ; CrossfsUp[i] = EMPTY_VALUE ; CrossfsDn[i] = EMPTY_VALUE ; CrossmsUp[i] = EMPTY_VALUE ; CrossmsDn[i] = EMPTY_VALUE ; ma1[i] = iMA ( NULL , 0 , FasterMA, FasterShift, FasterMode, FasterPrice, i); ma2[i] = iMA ( NULL , 0 , MediumMA, MediumShift, MediumMode, MediumPrice, i); ma3[i] = iMA ( NULL , 0 , SlowerMA, SlowerShift, SlowerMode, SlowerPrice, i); trendfm[i] = trendfm[i+ 1 ]; trendfs[i] = trendfs[i+ 1 ]; trendms[i] = trendms[i+ 1 ]; if (ma1[i]>ma2[i]) trendfm[i] = 1 ; if (ma1[i]<ma2[i]) trendfm[i] = - 1 ; if (ma1[i]>ma3[i]) trendfs[i] = 1 ; if (ma1[i]<ma3[i]) trendfs[i] = - 1 ; if (ma2[i]>ma3[i]) trendms[i] = 1 ; if (ma2[i]<ma3[i]) trendms[i] = - 1 ; // // // // // range = iATR ( NULL , 0 , 15 ,i); if (alertsOnFastCrossMiddle && trendfm[i]!=trendfm[i+ 1 ]) if (trendfm[i] == 1 ) CrossfmUp[i] = MathMin (ma1[i],ma2[i])-range*arrowsFMGap; else CrossfmDn[i] = MathMax (ma1[i],ma2[i])+range*arrowsFMGap; if (alertsOnFastCrossSlow && trendfs[i]!=trendfs[i+ 1 ]) if (trendfs[i] == 1 ) CrossfsUp[i] = MathMin (ma1[i],ma3[i])-range*arrowsFSGap; else CrossfsDn[i] = MathMax (ma1[i],ma3[i])+range*arrowsFSGap; if (alertsOnMiddleCrossSlow && trendms[i]!=trendms[i+ 1 ]) if (trendms[i] == 1 ) CrossmsUp[i] = MathMin (ma2[i],ma3[i])-range*arrowsMSGap; else CrossmsDn[i] = MathMax (ma2[i],ma3[i])+range*arrowsMSGap; } manageAlerts(); return ( 0 ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // // // // void manageAlerts() { if (alertsOn) { int whichBar= 1 ; if (alertsOnCurrent) whichBar = 0 ; // // // // // static string mess1 = "" ; static datetime time1 = 0 ; if (alertsOnFastCrossMiddle && trendfm[whichBar]!=trendfm[whichBar+ 1 ]) if (trendfm[whichBar] == 1 ) doAlert(mess1,time1, "Fast MA crossed Medium MA UP" ); else doAlert(mess1,time1, "Fast MA crossed Medium MA DOWN" ); static string mess2 = "" ; static datetime time2 = 0 ; if (alertsOnFastCrossSlow && trendfs[whichBar]!=trendfs[whichBar+ 1 ]) if (trendfs[whichBar] == 1 ) doAlert(mess2,time2, "Fast MA crossed Slow MA UP" ); else doAlert(mess2,time2, "Fast MA crossed Slow MA DOWN" ); static string mess3 = "" ; static datetime time3 = 0 ; if (alertsOnMiddleCrossSlow && trendms[whichBar]!=trendms[whichBar+ 1 ]) if (trendms[whichBar] == 1 ) doAlert(mess3,time3, "Medium MA crossed Slow MA UP" ); else doAlert(mess3,time3, "Medium MA crossed Slow MA DOWN" ); } } // // // // // // void doAlert( string & previousAlert, datetime & previousTime, string doWhat) { string message; if (previousAlert != doWhat || previousTime != Time [ 0 ]) { previousAlert = doWhat; previousTime = Time [ 0 ]; // // // // // message = StringConcatenate ( Symbol (), " " ,timeFrameToString(timeFrame), " at " , TimeToStr ( TimeLocal (), TIME_SECONDS ), " 3 MA line crossing " ,doWhat); if (alertsMessage) Alert (message); if (alertsNotify) SendNotification (message); if (alertsEmail) SendMail ( StringConcatenate ( Symbol (), "3 MA line crossing" ),message); if (alertsSound) PlaySound ( "alert2.wav" ); } } //+------------------------------------------------------------------- //| //+------------------------------------------------------------------- // // // // // string sTfTable[] = { "M1" , "M5" , "M10" , "M15" , "M30" , "H1" , "H4" , "D1" , "W1" , "MN" }; int iTfTable[] = { 1 , 5 , 10 , 15 , 30 , 60 , 240 , 1440 , 10080 , 43200 }; // // // // // int stringToTimeFrame( string tfs) { tfs = stringUpperCase(tfs); for ( int i= ArraySize (iTfTable)- 1 ; i>= 0 ; i--) if (tfs==sTfTable[i] || tfs== "" +iTfTable[i]) return ( MathMax (iTfTable[i], Period ())); return ( Period ()); } // // // // // string timeFrameToString( int tf) { for ( int i= ArraySize (iTfTable)- 1 ; i>= 0 ; i--) if (tf==iTfTable[i]) return (sTfTable[i]); return ( "" ); } // // // // // string stringUpperCase( string str) { string s = str; for ( int length= StringLen (str)- 1 ; length>= 0 ; length--) { int tchar = StringGetChar (s, length); if ((tchar > 96 && tchar < 123 ) || (tchar > 223 && tchar < 256 )) s = StringSetChar (s, length, tchar - 32 ); else if (tchar > - 33 && tchar < 0 ) s = StringSetChar (s, length, tchar + 224 ); } return (s); } 你好我有 3 ma 交叉警报指示器。这个 inidcaotr 什么时候交叉 ma 发出警报。我想将代码(candel 价格触摸)添加到 3ma 指示器。如果价格触摸 ma1 ma2 ma3 发送通知我的 gsm。我该怎么办?谢谢你帮助我......对不起我的英语不好 Eleni Anna Branou 2018.01.19 00:33 #3455 请使用SRC按钮在你的帖子中加入代码。 Sergey Golubev 2018.01.19 06:26 #3456 ============Mq4的youtube编码课程--有视频的主题 Sergey Golubev 2018.01.19 06:31 #3457 ============关于MQL5向导的所有信息:无需编程即可创建机器人 Kristina Suh 2019.08.14 05:00 #3458 Forexlist: 帮助我 -帐户余额 星期日 你好。 我从昨天开始尝试修补我所有一周以来的账户余额周日(市场成功开盘)显示的缓存。 我需要将周日成功开市时的EA账户余额正确地运行到股票经理那里。 double usedacc = 0; ... 如果(usedacc == 0 | | DayOfWeek () == 0) usedacc = 账户余额()。 ... 只是不工作 也许有人可以帮助我,因为我是最好的。 对不起,我的英语不好 尊敬的先生...你是否得到了上述问题的答复或答案? 我正在尝试领取星期天的余额 谢谢 Asobeds 2020.04.29 10:13 #3459 请帮助我了解如何在MTL4中编码ADX,包括+Di和-Di,谢谢 如何使用它来打开和关闭交易 <2个帖子由版主合并> William Roeder 2020.04.29 14:55 #3460 Asobeds: 请帮助我了解如何在MTL4中编码ADX,包括+Di和-Di,谢谢 Asobeds: 如何使用它来打开和关闭交易 不要发多个帖子,编辑 你的帖子。 信息编辑 帮你做什么?你没有陈述一个问题,你陈述了一个愿望。向我们展示 你的尝试(使用CODE按钮),并说明 你问题的性质。 没有免费帮助 2017.04.21 或者付钱给别人。每 一页的顶部都有一个链接自由职业者。 雇人写脚本 - 一般 - MQL5编程论坛 2018.05.12 也许你应该阅读手册。iADX - MQL4参考 MT4。学会编码吧。 MT5:开始学习编码吧。 如果你不学习MQL4/5,我们就没有共同的语言可以交流。如果我们告诉你需要什么,你就无法编码。如果我们给你代码,你不知道如何把它整合到你的代码中。 公牛的力量 熊的力量和加速器 编码帮助 需要编码方面的帮助 1...339340341342343344345346347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,mladen,请问你能不能为这个指标添加声音提示?谢谢
Mladen或编码员,
如何在mql4中创建像图片中这样的容器盒?Obj_label?
这个指标肯定是有用的,特别是当你把它和Zigzag结合起来的时候。
非常好的EA编码的开始。
这个指标肯定是有用的,尤其是当你把它和Zigzag结合起来的时候。
编写EA代码的良好开端。
你能不能把源文件.mql4发布出来?
谢谢
你好
我有 3 ma 交叉警报指示器。这个 inidcaotr 什么时候交叉 ma 发出警报。我想将代码(candel 价格触摸)添加到 3ma 指示器。如果价格触摸 ma1 ma2 ma3 发送通知我的 gsm。我该怎么办?谢谢你帮助我......对不起我的英语不好
请使用SRC按钮在你的帖子中加入代码。
============
Mq4的youtube编码课程--有视频的主题
============
关于MQL5向导的所有信息:无需编程即可创建机器人帮助我 -帐户余额 星期日
你好。
我从昨天开始尝试修补我所有一周以来的账户余额周日(市场成功开盘)显示的缓存。
我需要将周日成功开市时的EA账户余额正确地运行到股票经理那里。
double usedacc = 0;
...
如果(usedacc == 0 | | DayOfWeek () == 0) usedacc = 账户余额()。
...
只是不工作
也许有人可以帮助我,因为我是最好的。
对不起,我的英语不好
尊敬的先生...你是否得到了上述问题的答复或答案?
我正在尝试领取星期天的余额
谢谢
请帮助我了解如何在MTL4中编码ADX,包括+Di和-Di,谢谢
如何使用它来打开和关闭交易
<2个帖子由版主合并>
Asobeds: 如何使用它来打开和关闭交易
信息编辑
没有免费帮助 2017.04.21
或者付钱给别人。每 一页的顶部都有一个链接自由职业者。
雇人写脚本 - 一般 - MQL5编程论坛 2018.05.12
MT5:开始学习编码吧。
如果你不学习MQL4/5,我们就没有共同的语言可以交流。如果我们告诉你需要什么,你就无法编码。如果我们给你代码,你不知道如何把它整合到你的代码中。