新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1555 1...154815491550155115521553155415551556155715581559156015611562...1953 新评论 Mihail Matkovskij 2021.07.31 16:25 #15541 MakarFX:它没有发出任何错误。 错误也可以是算法上的,而不仅仅是运行时的错误。 如果你想找到原因,你需要代码。 MakarFX: 在这些坐标下,按钮会被颠倒过来,因为按钮的长度是从X点开始计算的+/-。 你为什么需要这样一个奇怪的按钮......? законопослушный гражданин 2021.07.31 16:28 #15542 MakarFX:我可以建议在达到盈利或亏损时选择 ExpertRemove()。 谢谢 我读过它,但我不完全理解行动的逻辑 当达到一个指定的事件时,专家顾问被禁用并从图表中删除,对吗? Tretyakov Rostyslav 2021.07.31 16:30 #15543 Mihail Matkovskij:错误也可以是算法上的,而不仅仅是运行时的错误。 如果你想找到原因,你需要代码。你为什么需要这样一个奇怪的按钮......? 我写道,我无意中发现了这样一个错误 这是代码...如果你有兴趣的话 //+------------------------------------------------------------------+ //| BAG.mq4 | //| Copyright 2020, DrMak. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, DrMak." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping CreateButton(0,"Button_1",0,200,100,100,50,CORNER_RIGHT_UPPER," ","START","Arial Black",10, clrWhite,clrGreen,BORDER_SUNKEN,false,false,false,false,false,0); CreateButton(0,"Button_2",0,200,100,-100,-50,CORNER_RIGHT_UPPER," ","START","Arial Black",10, clrWhite,clrGreen,BORDER_SUNKEN,false,false,false,false,false,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectsDeleteAll(0,"Button_"); } //+------------------------------------------------------------------+ //| 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+ //| Создает кнопку | //+------------------------------------------------------------------+ bool CreateButton(const long chart_ID=0, // ID графика const string name="Button", // имя кнопки const int sub_window=0, // номер подокна const int x=0, // координата по оси X const int y=0, // координата по оси Y const int width=50, // ширина кнопки const int height=18, // высота кнопки const int corner=0, // угол графика для привязки const string tool="TOOLTIP", // TOOLTIP const string text="Button", // текст const string font="Arial", // шрифт const int font_size=10, // размер шрифта const color clr=clrBlack, // цвет текста const color back_clr=C'236,233,216', // цвет фона ENUM_BORDER_TYPE border_type=BORDER_FLAT, // тип границы const bool state=false, // нажата/отжата const bool back=false, // на заднем плане const bool selection=false, // выделить для перемещений const bool selected=false, // выделить для перемещений const bool hidden=true, // скрыт в списке объектов const long z_order=0) // приоритет на нажатие мышью { //--- сбросим значение ошибки ResetLastError(); //--- создадим кнопку if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0)) { Print(__FUNCTION__, ": не удалось создать кнопку! Код ошибки = ",GetLastError()); return(false); } ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width); ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); ObjectSetString(chart_ID,name,OBJPROP_TOOLTIP,tool); ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); ObjectSetString(chart_ID,name,OBJPROP_FONT,font); ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size); ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border_type); ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selected); ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- успешное выполнение return(true); } //+------------------------------------------------------------------+ Tretyakov Rostyslav 2021.07.31 16:30 #15544 законопослушный гражданин:谢谢我已经读过了,但我不太理解行动的逻辑当达到一个指定的事件时,EA被停用并从图表中完全删除,对吗?是 Mihail Matkovskij 2021.07.31 16:33 #15545 MakarFX:我写道,我无意中发现了这样一个错误 这是代码...如果你有兴趣的话。 所以这里没有一个按钮会有反应。OnChartEvent 处理程序是空的... Tretyakov Rostyslav 2021.07.31 16:42 #15546 Mihail Matkovskij:所以这里没有一个按钮会有反应。OnChartEvent 处理程序是空的... 试试吧)一个按钮会被按下,另一个则不会。 Mihail Matkovskij 2021.07.31 16:45 #15547 MakarFX: 试试吧)一个按钮按了,另一个却没有 到底是谁做的,设置了负面的尺寸,为什么,我不好意思问......? законопослушный гражданин 2021.07.31 16:45 #15548 MakarFX: 是 明白了。这对我来说是行不通的。你可以回到创建一个全局变量,这样当猫头鹰被关闭时,该地段就会被重置为起始点。至少是这样的 你创建一个全局变量 datetime Start; int OnInit() { Start=TimeCurrent(); ..................... } void OnTick() { if (!IsTradeAllowed()) { DrawLABEL("Торговля",0,0,0,Red,"Торговля запрещена"); Start=TimeCurrent(); return; } ..................... } 然后,如果没有开放/关闭的订单,稍后 "开始" Lots=Lot; 但我仍然不知道如何正确创建它。 Документация по MQL5: Основы языка / Переменные / Глобальные переменные www.mql5.com Глобальные переменные - Переменные - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Tretyakov Rostyslav 2021.07.31 16:51 #15549 законопослушный гражданин:明白了。这对我来说是行不通的。你可以回到创建一个全局变量,这样当猫头鹰被关闭时,该批次就会被重置到开始的位置。至少是这样的 你创建一个全局变量 然后,如果没有开放/关闭的订单,稍后 "开始"。 但我仍然不知道如何正确创建它。 我会给你做一个按钮) Tretyakov Rostyslav 2021.07.31 16:52 #15550 Mihail Matkovskij:到底是谁做的,设置了负面的尺寸,为什么,我不好意思问......? 我无意中发现了这个错误,想知道 1...154815491550155115521553155415551556155715581559156015611562...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它没有发出任何错误。
错误也可以是算法上的,而不仅仅是运行时的错误。
如果你想找到原因,你需要代码。
在这些坐标下,按钮会被颠倒过来,因为按钮的长度是从X点开始计算的+/-。
你为什么需要这样一个奇怪的按钮......?
我可以建议在达到盈利或亏损时选择 ExpertRemove()。
谢谢
我读过它,但我不完全理解行动的逻辑
当达到一个指定的事件时,专家顾问被禁用并从图表中删除,对吗?
错误也可以是算法上的,而不仅仅是运行时的错误。
如果你想找到原因,你需要代码。
你为什么需要这样一个奇怪的按钮......?
我写道,我无意中发现了这样一个错误
这是代码...如果你有兴趣的话
谢谢
我已经读过了,但我不太理解行动的逻辑
当达到一个指定的事件时,EA被停用并从图表中完全删除,对吗?
我写道,我无意中发现了这样一个错误
这是代码...如果你有兴趣的话。
所以这里没有一个按钮会有反应。OnChartEvent 处理程序是空的...
所以这里没有一个按钮会有反应。OnChartEvent 处理程序是空的...
试试吧)一个按钮按了,另一个却没有
到底是谁做的,设置了负面的尺寸,为什么,我不好意思问......?
是
明白了。这对我来说是行不通的。
你可以回到创建一个全局变量,这样当猫头鹰被关闭时,该地段就会被重置为起始点。
至少是这样的
你创建一个全局变量
然后,如果没有开放/关闭的订单,稍后 "开始"
明白了。这对我来说是行不通的。
你可以回到创建一个全局变量,这样当猫头鹰被关闭时,该批次就会被重置到开始的位置。
至少是这样的
你创建一个全局变量
然后,如果没有开放/关闭的订单,稍后 "开始"。
我会给你做一个按钮)
到底是谁做的,设置了负面的尺寸,为什么,我不好意思问......?