新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1935 1...192819291930193119321933193419351936193719381939194019411942...1953 新评论 Artyom Trishkin 2022.03.22 22:35 #19341 Valeriy Yastremskiy #: 在Windows的帮助下。图形设置大的小的字体也应该调整。 如果有两个显示器怎么办?不同的人... Valeriy Yastremskiy 2022.03.23 03:40 #19342 Artyom Trishkin #:如果有两个显示器怎么办?不同的... 然后你需要了解显示图像的屏幕的分辨率。该对象也可以到2个显示器),但这是一个更复杂的任务。是的,通过负的TextSetFont() 值绑定到系统的标准字体是一个好的 解决方案。 IrishDance 2022.03.24 11:26 #19343 帮助优化指标。该指标可以工作,但很慢,用它来优化EA需要很长的时间。请告知有什么地方做错了?如何加快其工作速度? //+------------------------------------------------------------------+ //| Momentum.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2022, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_maximum 1 #property indicator_minimum 0 #property indicator_width1 2 //---- input parameters extern int MomPeriod = 10; extern int WindowOfNorm = 45; // ширина окна нормирования в барах extern int MA_Length = 10; // Average Period extern int MA_Mode = 0; // Mode of Moving Average //---- buffers double NormBuffer[],MomBuffer[],AvgVolumes[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line SetIndexStyle(2,DRAW_NONE); SetIndexBuffer(2,NormBuffer); SetIndexStyle(1,DRAW_NONE); SetIndexBuffer(1,MomBuffer); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,AvgVolumes); //---- return(0); } //+------------------------------------------------------------------+ //| Momentum | //+------------------------------------------------------------------+ int start() { for(int i = 1;i <= 130; i++) { MomBuffer[i]=iMA(NULL,0,MomPeriod,0,0,0,i)*100/iMA(NULL,0,MomPeriod,0,0,0,i+MomPeriod); // нормирование NormBuffer[i]=Norm(WindowOfNorm,i); //----- AvgVolumes[i] = iMAOnArray(NormBuffer,0,MA_Length,0,MA_Mode,i); } return(0); } //+------------------------------------------------------------------+ // нормирование double Norm(int norm, int i) { // экстремумы double max=MomBuffer[ArrayMaximum(MomBuffer,norm,i)]; double min=MomBuffer[ArrayMinimum(MomBuffer,norm,i)]; // вычисление осциллятора double delta=max-min; // размах if(delta==0) return(1); else return((MomBuffer[i]-min)/delta); } 附加的文件: ind-MomentumSmooth_v1_EA.mq4 5 kb Alexey Viktorov 2022.03.24 13:09 #19344 IrishDance #:帮助优化指标。该指标可以工作,但很慢,用它来优化EA需要很长的时间。请告知有什么地方做错 了?如何让它更快地工作? 不是这样做的。请注意这一行 //| Copyright © 2004, MetaQuotes Software Corp. | 18年来,编程语言已经发生了很大的变化,以至于它根本就不应该工作。我不明白为什么MQ还没有完全禁用int init()和int start()。 Valeriy Yastremskiy 2022.03.24 15:58 #19345 什么是错的,有2个参数的VLine在测试器中出现错误 2022.03.24 18:24:27.615 TestGenerator: unmatched data error (volume limit 263 at 2022.03.18 14:30 exceeded) 如果删除第一个参数time1,则一切正常。 bool FlagOpOr=false; bool FlagClOr=false; bool Work=true; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- static bool FlagNDay=true, FlagVLRed=false,FlagVLBlue=false; static datetime Data = 0, NData=0; Data = Day(); if(NData!=Data){FlagVLRed=true; FlagVLBlue=true;NData=Data;} if(FlagVLRed==true && Hour()==0){ VLine(1,clrRed); FlagVLRed=false;} if(FlagVLBlue==true && Hour()==1){ VLine(1,clrBlue); FlagVLBlue=false; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnDeinit(const int reason)//int deinit(void)void { int i; int obj_total=ObjectsTotal(); for(i=obj_total-1;i>=0;i--) { string sn=ObjectName(i); string Head=StringSubstr(sn,0,4);// Извлекаем первые 4 сим if(Head == "VLin") { ObjectDelete(sn); } } Comment(""); return; } //+------------------------------------------------------------------+ bool VLine( int time1=0, color clr = clrRed ){ string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); string NameLine="VLine_" + "_"+var1; bool created=ObjectCreate(0,NameLine,OBJ_VLINE,0,TimeCurrent(),0); if(created)// если создался - сделаем ему тюнинг { //--- точка привязки сверху, чтобы не наезжать на бар ObjectSetInteger(0,NameLine,OBJPROP_STYLE,STYLE_SOLID); //--- последний штрих - покрасим ObjectSetInteger(0,NameLine,OBJPROP_COLOR,clr); //--- установим толщину линии ObjectSetInteger(0,NameLine,OBJPROP_WIDTH,2); } else return(false );time1=0; return(true); } DanilaMactep 2022.03.25 08:59 #19346 大家下午好。在交易过程中,我有20-40个图表打开。我必须花很多时间在所有仪器的底部或顶部菜单项 "窗口 "中找到正确的仪器。如果我可以用脚本来加速,我把脚本放在输入参数中,输入必要的符号,它就会打开,就像用眼睛发现并点击一样。如何实现这样的事情? Valeriy Yastremskiy 2022.03.25 09:09 #19347 DanilaMactep #:大家下午好。在交易过程中,我有20-40个图表打开。我不得不花很多时间在所有仪器的底部或顶部菜单项 "窗口 "中找到正确的仪器。如果我可以用脚本来加速,我把脚本放在输入参数中,输入必要的符号,它就会打开,就像用眼睛发现并点击一样。如何才能做到这一点呢? 作为逻辑,脚本应该找出有多少个图表/窗口被打开,以及哪些工具被打开,记住它们(符号和chart_idies),然后,根据工具的数量,画一个面板,上面写有工具名称的按钮。在按下按钮时,带有所需工具的图表将其属性改为展开(可以折叠)和全部,并且脚本关闭。 DanilaMactep 2022.03.25 11:36 #19348 Valeriy Yastremskiy #:从逻辑上讲,脚本应该找出有多少个图表/窗口被打开,以及哪些工具被打开,记住它们(符号和chart_idies),然后,根据工具的数量,画一个面板,上面写有工具名称的按钮。在按下按钮时,带有所需工具的图表将其属性改为展开(可以折叠)和全部,并且脚本关闭。 糟糕的逻辑--这有什么区别--在哪个按钮上看--在底部、在菜单窗口还是在脚本绘制的按钮?必须以某种方式使你在输入参数中输入所需的符号,而脚本已经为你打开了这个窗口--这样会更容易和更快。有没有人有这样的奇迹,请分享一下? законопослушный гражданин 2022.03.25 11:49 #19349 你好! 我正在寻找一个EA,一个电网运营商。 在一个网格中打开市场订单。 当网格达到一定(%)的利润时,关闭订单。 我曾见过这样的专家顾问,但现在我找不到了。 我曾见过这样的专家顾问,现在我找不到了。 Valeriy Yastremskiy 2022.03.25 13:33 #19350 DanilaMactep #: 糟糕的逻辑--看哪个按钮有什么区别--在底部、在菜单窗口还是在脚本绘制的按钮?必须以某种方式做到这一点,即在输入参数中输入所需的符号,并且脚本已经为你打开了这个窗口--这样会更容易和更快。有没有人有这样的奇迹,请分享一下? 打开一个新的窗口(在没有EA和默认模板的情况下打开)或提高或扩大一个已经打开的窗口。https://www.mql5.com/ru/forum/160683/page1930看看附件中的代码,有一个图表枚举和按条件在图表上绘图。也许会有帮助。 1...192819291930193119321933193419351936193719381939194019411942...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在Windows的帮助下。图形设置大的小的字体也应该调整。
如果有两个显示器怎么办?不同的人...
如果有两个显示器怎么办?不同的...
帮助优化指标。该指标可以工作,但很慢,用它来优化EA需要很长的时间。请告知有什么地方做错了?如何加快其工作速度?
帮助优化指标。该指标可以工作,但很慢,用它来优化EA需要很长的时间。请告知有什么地方做错 了?如何让它更快地工作?
不是这样做的。请注意这一行
//| Copyright © 2004, MetaQuotes Software Corp. |
18年来,编程语言已经发生了很大的变化,以至于它根本就不应该工作。我不明白为什么MQ还没有完全禁用int init()和int start()。
什么是错的,有2个参数的VLine在测试器中出现错误 2022.03.24 18:24:27.615 TestGenerator: unmatched data error (volume limit 263 at 2022.03.18 14:30 exceeded)
如果删除第一个参数time1,则一切正常。
大家下午好。在交易过程中,我有20-40个图表打开。我必须花很多时间在所有仪器的底部或顶部菜单项 "窗口 "中找到正确的仪器。如果我可以用脚本来加速,我把脚本放在输入参数中,输入必要的符号,它就会打开,就像用眼睛发现并点击一样。如何实现这样的事情?
大家下午好。在交易过程中,我有20-40个图表打开。我不得不花很多时间在所有仪器的底部或顶部菜单项 "窗口 "中找到正确的仪器。如果我可以用脚本来加速,我把脚本放在输入参数中,输入必要的符号,它就会打开,就像用眼睛发现并点击一样。如何才能做到这一点呢?
作为逻辑,脚本应该找出有多少个图表/窗口被打开,以及哪些工具被打开,记住它们(符号和chart_idies),然后,根据工具的数量,画一个面板,上面写有工具名称的按钮。在按下按钮时,带有所需工具的图表将其属性改为展开(可以折叠)和全部,并且脚本关闭。
从逻辑上讲,脚本应该找出有多少个图表/窗口被打开,以及哪些工具被打开,记住它们(符号和chart_idies),然后,根据工具的数量,画一个面板,上面写有工具名称的按钮。在按下按钮时,带有所需工具的图表将其属性改为展开(可以折叠)和全部,并且脚本关闭。
你好!
我正在寻找一个EA,一个电网运营商。
在一个网格中打开市场订单。
当网格达到一定(%)的利润时,关闭订单。
我曾见过这样的专家顾问,但现在我找不到了。
我曾见过这样的专家顾问,现在我找不到了。
糟糕的逻辑--看哪个按钮有什么区别--在底部、在菜单窗口还是在脚本绘制的按钮?必须以某种方式做到这一点,即在输入参数中输入所需的符号,并且脚本已经为你打开了这个窗口--这样会更容易和更快。有没有人有这样的奇迹,请分享一下?