新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1785 1...177817791780178117821783178417851786178717881789179017911792...1953 新评论 Mihail Matkovskij 2021.12.03 21:39 #17841 Nerd Trader #: 不见得 但其他人可以看到(CHARTEVENT_OBJECT_CLICK)。 Tretyakov Rostyslav 2021.12.03 22:07 #17842 Nerd Trader #:一切辉煌都是简单的。 我本可以这样做 void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(ObjectGetInteger(0,"button_bs",OBJPROP_STATE)) { int x =(int)lparam; int y =(int)dparam; datetime dt =0; double price =0; int window=0; if(id == CHARTEVENT_MOUSE_MOVE) { if(ChartXYToTimePrice(0,x,y,window,dt,price)) { if(ObjectFind(0,"H Line")!=window) { ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price); } else if(ObjectMove(0,"H Line",window,dt,price)) { ChartRedraw(0); } } } } else { ObjectDelete(0,"H Line"); } } Nerd Trader 2021.12.04 00:07 #17843 MakarFX #:我会这样做的。 同样的解决方案。但这对我来说是行不通的,因为在点击这一行后,我需要删除第一行,创建另一行,并让它跟随光标,在点击它后也被删除。我这样做了。 void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { datetime static dt = 0; double static price = 0; int static window = 0; string static line_name; if(id==CHARTEVENT_OBJECT_CLICK){ } //Нажатие кнопки создаёт line 1 if(sparam=="button"){ line_name = "line 1"; CreateLine(line_name, clrGreen); } //Нажатие на line 1 удаляет line 1 и создаёт line 2 if(sparam=="line 1"){ ObjectDelete(0,line_name); line_name = "line 2"; CreateLine(line_name, clrRed); } //Нажатие на line 2 удаляет line 2 if(sparam=="line 2"){ ObjectDelete(0,line_name); } } if(ObjectGetInteger(0,"button",OBJPROP_STATE)){ int x = (int)lparam; int y = (int)dparam; if(ChartXYToTimePrice(0,x,y,window,dt,price)){ if(id == CHARTEVENT_MOUSE_MOVE){ if(ObjectMove(line_name,0,0,price)) ChartRedraw(ChartID()); } } } } Mihail Matkovskij 2021.12.04 05:03 #17844 按下按钮 - 创建一条线。按下按钮--删除。有那么难猜吗? 另外,你可以显示和隐藏,这样你就不必一直创建和删除它们。 Tretyakov Rostyslav 2021.12.04 08:11 #17845 Nerd Trader #:也是一种解决办法。但这对我来说是行不通的,因为在点击这一行后,我需要删除第一行,创建另一行,并让它跟随光标,在点击它后也被删除。我这样做了。 void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { datetime static dt = 0; double static price = 0; int static window = 0; string static line_name; if(id==CHARTEVENT_OBJECT_CLICK){ } //Нажатие кнопки создаёт line 1 if(sparam=="button"){ line_name = "line 1"; CreateLine(line_name, clrGreen); } //Нажатие на line 1 удаляет line 1 и создаёт line 2 if(sparam=="line 1"){ line_name = "line 2"; ObjectSetString(0,"line 1",OBJPROP_NAME,line_name); ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed); } //Нажатие на line 2 удаляет line 2 if(sparam=="line 2"){ ObjectDelete(0,line_name); } } if(ObjectGetInteger(0,"button",OBJPROP_STATE)){ int x = (int)lparam; int y = (int)dparam; if(ChartXYToTimePrice(0,x,y,window,dt,price)){ if(id == CHARTEVENT_MOUSE_MOVE){ if(ObjectMove(line_name,0,0,price)) ChartRedraw(ChartID()); } } } } 而且我会在创建和删除对象之前留下一个检查。 законопослушный гражданин 2021.12.04 15:59 #17846 MakarFX #: 出了问题),信号根本就没有来。0个交易。 为什么要用双倍? 我的变量看起来像这样。 // Параметры советника input string sParametersEA = ""; // Параметры советника input double Lot = 0.01; // Количество лотов input double LotControl = 0.01; // Контрольная лотность input int StopLoss = 30; // Уровень убытка input int TakeProfit = 30; // Уровень прибыли input int Deviation = 20; // Отступ цены входа input int Slippage = 3; // Проскальзование (в пунктах) input int Magic = 1; // Индентификатор советника input double K_Martin1 = 2.0; // Множитель мартин 1 input double K_Martin2 = 2.0; // Множитель мартин 2 input double K_Martin3 = 2.0; // Множитель мартин 3 input int OrdersClose = 5; // Ограничение лотности мартин1 input int OrdersClose2 = 5; // Ограничение лотности мартин2 input int DigitsLot = 2; // Точность лотности // Параметры индикатора input string ParametersMA = ""; // Параметры индикатора input int PeriodMA = 14; // Период мувинга input int MovingShift = 1; // Сдвиг мувинга // Глобальные переменные string AC; datetime Start; double dMA; double MaxMartinLot; double MaxMartinLot2; double openPrice; // цена открытия позиции //+----------------------------------------------- 也许这就是问题所在? Tretyakov Rostyslav 2021.12.04 16:08 #17847 законопослушный гражданин #:出了问题),信号根本就没有来。0个交易。为什么要用双倍?我的变量看起来像这样。也许这就是问题所在?删除这个。double openPrice; // цена открытия позиции 并在代码中使用openPrice(); Tretyakov Rostyslav 2021.12.04 16:13 #17848 законопослушный гражданин #:为什么是双倍? double - 十进制数字 int - 整数 законопослушный гражданин 2021.12.04 16:47 #17849 MakarFX #:删掉这个! 而在代码中,使用 谢谢你!信号已经消失了。 законопослушный гражданин 2021.12.04 16:48 #17850 MakarFX #:double - 十进制数字int - 整数 清楚地 1...177817791780178117821783178417851786178717881789179017911792...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不见得
但其他人可以看到(CHARTEVENT_OBJECT_CLICK)。
一切辉煌都是简单的。
我本可以这样做
我会这样做的。
同样的解决方案。但这对我来说是行不通的,因为在点击这一行后,我需要删除第一行,创建另一行,并让它跟随光标,在点击它后也被删除。我这样做了。
按下按钮 - 创建一条线。按下按钮--删除。有那么难猜吗?
另外,你可以显示和隐藏,这样你就不必一直创建和删除它们。
也是一种解决办法。但这对我来说是行不通的,因为在点击这一行后,我需要删除第一行,创建另一行,并让它跟随光标,在点击它后也被删除。我这样做了。
而且我会在创建和删除对象之前留下一个检查。
出了问题),信号根本就没有来。0个交易。
为什么要用双倍?
我的变量看起来像这样。
也许这就是问题所在?
出了问题),信号根本就没有来。0个交易。
为什么要用双倍?
我的变量看起来像这样。
也许这就是问题所在?
删除这个。
并在代码中使用为什么是双倍?
double - 十进制数字
int - 整数
删掉这个!
而在代码中,使用谢谢你!信号已经消失了。
double - 十进制数字
int - 整数
清楚地