新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1080 1...107310741075107610771078107910801081108210831084108510861087...1953 新评论 Maksims Ignatovs 2020.02.24 14:12 #10791 Artyom Trishkin: 这里最好的建议是多阅读帮助。 它规定了可以为图检索/设置的属性。 特别是--用鼠标左键滚动图表。 这是我看过的文档中的地方。 当CHART_EVENT_MOUSE_MOVE = 1时,图表会收到鼠标移动的信息,但当CHART_EVENT_MOUSE_MOVE = 0时,它不会收到。这是可以理解的。 但这与我的问题没有关系......不管CHART_EVENT_MOUSE_MOVE设置的是什么值,我总是有可能在关闭AUTOSCROLL的情况下 "移动 "图表。 只需按下鼠标左键,在不松开按钮的情况下将鼠标向右移动,就可以将窗口中的图形 "移 "到过去(就时间而言)。 这将使窗口中的图形始终保持移动。 然而,如果我按下Ctrl+F(调用Crosshair)--然后当我按下鼠标左键,按住它并移动图形时,我将看到光束 工具提示将显示鼠标移动的数据和鼠标指针所在级别的价格。 而最重要的是--那一刻的图形本身不会在窗口中移动。 这就是如何在不启用Crosshair的情况下实现这种效果,这就是我所问的...... P.S. 我可以拍一段屏幕的视频,让你看看它的样子。 Artyom Trishkin 2020.02.24 15:01 #10792 Maksims Ignatovs: 我在文件中看到过这个地方。 当CHART_EVENT_MOUSE_MOVE = 1时,图表会得到关于鼠标移动的信息,但如果CHART_EVENT_MOUSE_MOVE = 0,则不会。这是可以理解的。 但这与我的问题没有关系......不管CHART_EVENT_MOUSE_MOVE设置的是什么值,我总是有可能在关闭AUTOSCROLL的情况下 "移动 "图表。 只需按下鼠标左键,在不松开按钮的情况下将鼠标向右移动,就可以将窗口中的图形 "移 "到过去(就时间而言)。 这将使窗口中的图形始终保持移动。 然而,如果我按下Ctrl+F(调用Crosshair)--然后当我按下鼠标左键,按住它并移动图形时,我将看到光束 工具提示将显示鼠标移动的数据和鼠标指针所在级别的价格。 而最重要的是--那一刻的图形本身不会在窗口中移动。 那就是如何在不开启十字准星的情况下实现这种效果,这就是我所问的... P.S. 我可以拍一段屏幕视频,让你看看它是什么样子。 我不是已经回答了吗? 如果你用鼠标移动图表上的东西,你就禁止在这一点上移动图表。只要你松开鼠标按钮,你就可以让图形移动。 Seric29 2020.02.24 15:10 #10793 是否可以使用索引来访问结构的字段,即作为一个一维数组?是否可以创建一个结构字段的数组? 因此,这个想法是这样的。有一个结构 struct MyStruct {int qw;double qe;}; MyStruct qr; //пример по сложнее struct MyStruct1{int qw[5];double qe[5];}; MyStruct1 qr1; 那么,当把任何结构传递给一个函数时,我们必须对每个元素分别进行命名。 qr.qw qr.q51e,等等。当然,你不可能把它放到一个循环中,用一个线程来处理它。我想创建一个字段数组来存储这些项目,如下所示 Massiv[2]; //Massiv[0] отвечает за эту запись qr.qw //Massiv[1] отвечает за эту запись qr.qе 因此,我们可以通过索引来解决这些项目,当然,第二个结构可以放入一个循环,通过循环处理qw qe。 是否可以这样做,我前段时间在网上看到过这样的条目,但也许我误解了什么,因为我已经失去了这个网站?也许typedef enum union宏可以提供帮助? Maksims Ignatovs 2020.02.24 15:28 #10794 Artyom Trishkin: 我不是已经回答了吗? 如果你用鼠标在图形上移动什么东西,你就会在那一刻禁用图形移 位。只要你松开鼠标按钮,你就可以让图形移动。 我不在图表上移动任何东西。如果我设置CHART_EVENT_MOUSE_MOVE = 0,则无济于事--图表仍然可以被移动。,我不知道如何为图表禁用ChartNavigate处理。我在文档中也没有找到。 同时,"十字准线 "以某种方式应对了这种情况。这就是为什么我问--如何? 你回答我--只要为CHART_EVENT_MOUSE_MOVE 设置正确的值。 我试过了--它没有帮助。 在CHART_EVENT_MOUSE_MOVE的任何数值下,你仍然可以用鼠标在时间上来回移动图形,只需在图形上按住鼠标左键并移动鼠标。 同时,根据水平移动鼠标的方向,图表会在窗口中移动 如果我向右移动鼠标,图表会向左移动(向过去的历史), ,如果我向左移动鼠标,图表会向未来移动,直到出现当前条形图。 此后,试图用鼠标将其向左移动将不起作用。但这是可以理解的。 如果我使用ChartNavigate将窗口中的图表移动到过去的某个日期,我应该怎样做才能确保在任何情况下(不在图表上进行点击和鼠标移动的操作),我看到的图表部分不会被移动?我必须要做什么? pivalexander 2020.02.24 16:25 #10795 Maksims Ignatovs: 我不在图表上移动任何东西。如果我设置 CHART_EVENT_MOUSE_MOVE = 0,则无济于事--图表仍然可以被移动。 ,我不知道 如何为图表禁用ChartNavigate处理。我在文档中也没有找到。 ChartSetInteger(0, CHART_MOUSE_SCROLL, 0); // Выключим прокрутку графика vebster005 2020.02.24 20:54 #10796 下午好,请修复该指标,你需要通过按钮显示服务器时间,前提是按钮在其原始位置应显示 这是我没有得到的东西。 #property copyright "Copyright 2014, ForexDE" #property link "" #property version "1.00" #property strict #property indicator_chart_window string s1=""; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { PutButton("B",50,50,"KNOPKA"); if(DayOfWeek()==1) s1="Понедельник / "; if(DayOfWeek()==2) s1="Вторник / "; if(DayOfWeek()==3) s1="Среда / "; if(DayOfWeek()==4) s1="Четверг / "; if(DayOfWeek()==5) s1="Пятница / "; if(DayOfWeek()==6) s1="Суббота / "; if(DayOfWeek()==0) s1="Воскресенье / "; ObjectCreate("WeekDay1",OBJ_LABEL,0,0,0); ObjectSet("WeekDay1",OBJPROP_CORNER,CORNER_RIGHT_LOWER); ObjectSet("WeekDay1",OBJPROP_XDISTANCE,5); ObjectSet("WeekDay1",OBJPROP_YDISTANCE,2); ObjectSet("WeekDay1",OBJPROP_SELECTABLE,false); ObjectSet("WeekDay1",OBJPROP_HIDDEN,true); ObjectSet("WeekDay1",OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER); ObjectSet("WeekDay1",OBJPROP_COLOR,Black); ObjectSet("WeekDay1",OBJPROP_SELECTABLE,false); ObjectSet("WeekDay1",OBJPROP_SELECTED,false); ObjectSetText("WeekDay1",s1+TimeToString(CurTime(),TIME_DATE)+" - " +TimeToString(CurTime(),TIME_SECONDS),13,"Arial",Red); 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[]) { if(DayOfWeek()==1) s1="Понедельник / "; if(DayOfWeek()==2) s1="Вторник / "; if(DayOfWeek()==3) s1="Среда / "; if(DayOfWeek()==4) s1="Четверг / "; if(DayOfWeek()==5) s1="Пятница / "; if(DayOfWeek()==6) s1="Суббота / "; if(DayOfWeek()==0) s1="Воскресенье / "; ObjectSetText("WeekDay1",s1+TimeToString(CurTime(),TIME_DATE)+" - " +TimeToString(CurTime(),TIME_SECONDS),13,"Arial",Red); return(rates_total); }/*******************************************************************/ /********************************************************************/ void OnChartEvent(const int id, // идентификатор события const long& lparam, // параметр события типа long const double& dparam, // параметр события типа double const string& sparam // параметр события типа string ) { if(id == CHARTEVENT_CLICK) { if(!ObjectGetInteger(0,"B",OBJPROP_STATE,false)) { ObjectSet("WeekDay1",OBJPROP_XDISTANCE,7000); // скрываю } else { ObjectSet("WeekDay1",OBJPROP_XDISTANCE,5); // показываю обратно } } } /*******************************************************************/ void PutButton(string name,int x,int y,string text) { ObjectCreate(0,name,OBJ_BUTTON,0,0,0); //--- установим координаты кнопки ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); //--- установим размер кнопки ObjectSetInteger(0,name,OBJPROP_XSIZE,80); ObjectSetInteger(0,name,OBJPROP_YSIZE,30); //--- установим угол графика, относительно которого будут определяться координаты точки ObjectSetInteger(0,name,OBJPROP_CORNER,2); //--- установим текст ObjectSetString(0,name,OBJPROP_TEXT,text); //--- установим шрифт текста ObjectSetString(0,name,OBJPROP_FONT,"Arial"); //--- установим размер шрифта ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12); //--- установим цвет текста ObjectSetInteger(0,name,OBJPROP_COLOR,Red); //--- установим цвет фона ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White); //--- установим цвет границы ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue); } Maxim Kuznetsov 2020.02.24 22:02 #10797 vebster005: Добрый день, исправьте пожалуйста индикатор, нужно вывести серверное время через кнопку, при условии что кнопка в исходном положении должна показывать Вот что у меня НЕ получилось: 到底是什么原因造成的? 也就是说,用你自己的话说,你想做什么...。 制作了一个按钮,当你按下它时,它就会跑出屏幕(如果它不宽)。 为什么你对结果不满意? vebster005 2020.02.24 22:19 #10798 Maxim Kuznetsov: 到底是什么原因造成的? 也就是说,用你自己的话说,你想做什么...。 按钮是做出来的,当你按下它时,它就会跑出屏幕(如果它不宽)。 这个结果有什么问题呢? 结果是,当你点击按钮时,时间被隐藏了,然后又重新出现,因为它被更新了,因为在计算器中的事实是 vebster005 2020.02.24 22:21 #10799 Maxim Kuznetsov: 你到底没能做什么? 即用你自己的话说,你想做什么...... 制作了一个按钮,当你按下它时,它就会跑出屏幕(如果它不宽)。 为什么你对结果不满意? 你能不能让它对秒和其他一切都起作用,就像在终端,你可以禁用这个按钮 因为当我禁用这个按钮时(从屏幕上移开),时间又出现了。 Artyom Trishkin 2020.02.24 22:38 #10800 vebster005: 你能不能得到这样的结果,秒和其他一切工作,像在终端,你可以禁用按钮 因为当我禁用这个按钮时(从屏幕上移开),时间又出现了。 这里有很多人几乎可以达到任何结果。 重要的是,你自己要努力实现这些目标,而不是乞求别人为你做这些。他们总是愿意提供帮助,但是是为了帮助,而不是为了替你做这件事。 1...107310741075107610771078107910801081108210831084108510861087...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这里最好的建议是多阅读帮助。
它规定了可以为图检索/设置的属性。
特别是--用鼠标左键滚动图表。
这是我看过的文档中的地方。
当CHART_EVENT_MOUSE_MOVE = 1时,图表会收到鼠标移动的信息,但当CHART_EVENT_MOUSE_MOVE = 0时,它不会收到。这是可以理解的。
但这与我的问题没有关系......不管CHART_EVENT_MOUSE_MOVE设置的是什么值,我总是有可能在关闭AUTOSCROLL的情况下 "移动 "图表。
只需按下鼠标左键,在不松开按钮的情况下将鼠标向右移动,就可以将窗口中的图形 "移 "到过去(就时间而言)。
这将使窗口中的图形始终保持移动。
然而,如果我按下Ctrl+F(调用Crosshair)--然后当我按下鼠标左键,按住它并移动图形时,我将看到光束
工具提示将显示鼠标移动的数据和鼠标指针所在级别的价格。
而最重要的是--那一刻的图形本身不会在窗口中移动。
这就是如何在不启用Crosshair的情况下实现这种效果,这就是我所问的......
P.S. 我可以拍一段屏幕的视频,让你看看它的样子。
我在文件中看到过这个地方。
当CHART_EVENT_MOUSE_MOVE = 1时,图表会得到关于鼠标移动的信息,但如果CHART_EVENT_MOUSE_MOVE = 0,则不会。这是可以理解的。
但这与我的问题没有关系......不管CHART_EVENT_MOUSE_MOVE设置的是什么值,我总是有可能在关闭AUTOSCROLL的情况下 "移动 "图表。
只需按下鼠标左键,在不松开按钮的情况下将鼠标向右移动,就可以将窗口中的图形 "移 "到过去(就时间而言)。
这将使窗口中的图形始终保持移动。
然而,如果我按下Ctrl+F(调用Crosshair)--然后当我按下鼠标左键,按住它并移动图形时,我将看到光束
工具提示将显示鼠标移动的数据和鼠标指针所在级别的价格。
而最重要的是--那一刻的图形本身不会在窗口中移动。
那就是如何在不开启十字准星的情况下实现这种效果,这就是我所问的...
P.S. 我可以拍一段屏幕视频,让你看看它是什么样子。
是否可以使用索引来访问结构的字段,即作为一个一维数组?是否可以创建一个结构字段的数组?
因此,这个想法是这样的。有一个结构
那么,当把任何结构传递给一个函数时,我们必须对每个元素分别进行命名。
qr.qw qr.q51e,等等。当然,你不可能把它放到一个循环中,用一个线程来处理它。我想创建一个字段数组来存储这些项目,如下所示
因此,我们可以通过索引来解决这些项目,当然,第二个结构可以放入一个循环,通过循环处理qw qe。
是否可以这样做,我前段时间在网上看到过这样的条目,但也许我误解了什么,因为我已经失去了这个网站?也许typedef enum union宏可以提供帮助?
我不是已经回答了吗?
我不在图表上移动任何东西。如果我设置CHART_EVENT_MOUSE_MOVE = 0,则无济于事--图表仍然可以被移动。
,我不知道如何为图表禁用ChartNavigate处理。我在文档中也没有找到。
同时,"十字准线 "以某种方式应对了这种情况。这就是为什么我问--如何?
你回答我--只要为CHART_EVENT_MOUSE_MOVE 设置正确的值。 我试过了--它没有帮助。
在CHART_EVENT_MOUSE_MOVE的任何数值下,你仍然可以用鼠标在时间上来回移动图形,只需在图形上按住鼠标左键并移动鼠标。
同时,根据水平移动鼠标的方向,图表会在窗口中移动 如果我向右移动鼠标,图表会向左移动(向过去的历史),
,如果我向左移动鼠标,图表会向未来移动,直到出现当前条形图。 此后,试图用鼠标将其向左移动将不起作用。但这是可以理解的。
如果我使用ChartNavigate将窗口中的图表移动到过去的某个日期,我应该怎样做才能确保在任何情况下(不在图表上进行点击和鼠标移动的操作),我看到的图表部分不会被移动?我必须要做什么?
我不在图表上移动任何东西。如果我设置 CHART_EVENT_MOUSE_MOVE = 0,则无济于事--图表仍然可以被移动。
,我不知道 如何为图表禁用ChartNavigate处理。我在文档中也没有找到。
这是我没有得到的东西。
vebster005:
Добрый день, исправьте пожалуйста индикатор, нужно вывести серверное время через кнопку, при условии что кнопка в исходном положении должна показывать
Вот что у меня НЕ получилось:
到底是什么原因造成的? 也就是说,用你自己的话说,你想做什么...。
制作了一个按钮,当你按下它时,它就会跑出屏幕(如果它不宽)。
为什么你对结果不满意?
到底是什么原因造成的? 也就是说,用你自己的话说,你想做什么...。
按钮是做出来的,当你按下它时,它就会跑出屏幕(如果它不宽)。
这个结果有什么问题呢?
结果是,当你点击按钮时,时间被隐藏了,然后又重新出现,因为它被更新了,因为在计算器中的事实是
你到底没能做什么? 即用你自己的话说,你想做什么......
制作了一个按钮,当你按下它时,它就会跑出屏幕(如果它不宽)。
为什么你对结果不满意?
你能不能让它对秒和其他一切都起作用,就像在终端,你可以禁用这个按钮
因为当我禁用这个按钮时(从屏幕上移开),时间又出现了。
你能不能得到这样的结果,秒和其他一切工作,像在终端,你可以禁用按钮
因为当我禁用这个按钮时(从屏幕上移开),时间又出现了。
这里有很多人几乎可以达到任何结果。
重要的是,你自己要努力实现这些目标,而不是乞求别人为你做这些。他们总是愿意提供帮助,但是是为了帮助,而不是为了替你做这件事。