错误、漏洞、问题 - 页 2741 1...273427352736273727382739274027412742274327442745274627472748...3184 新评论 Vladimir Pastushak 2020.05.15 11:34 #27401 Ilyas: MT4中的调试器不会改变。 我们正在完全重新设计MQL代码的调试和分析系统。 新系统与MT4不兼容。 MT4 BILD 1262终端崩溃 2020.05.13 18:05:09.335 违反访问规定写到0x0335346E 2020.05.13 18:05:09.276 VR EURUSD,H4: 还剩1条泄漏的字符串 2020.05.13 18:11:11.126 对0x033403B7的访问违规写入 2020.05.13 18:37:13.585 违反访问规定写到0x03093648 你能说说这个问题吗? 我做了一个小型的源代码,再现了这个问题 Ilyas 2020.05.15 11:38 #27402 Vladimir Pastushak: MT 4 BILD 1262 终端碰撞 2020.05.13 18:05:09.335 违反访问规定写到0x0335346E 2020.05.13 18:05:09.276 VR EURUSD,H4: 还剩1条泄漏的字符串 2020.05.13 18:11:11.126 对0x033403B7的访问违规写入 2020.05.13 18:37:13.585 违反访问规定写到0x03093648 你能说说吗? 我做了一个小型的源代码来重现这个问题。 通过私信 把源代码发给我,我会检查的。 [删除] 2020.05.15 12:14 #27403 Ilyas: MT4中的调试器不会改变。 我们正在完全重新设计MQL代码的调试和分析系统,新系统与MT4不兼容。 酷。你可以忘记为MT4开发严肃的指标。 谢谢你,我们会知道的。 [删除] 2020.05.15 12:15 #27404 Andrey Khatimlianskii: 接口流中的指示器,在它们被计数之前,终端不画任何东西。这就是为什么它挂断了。 四是不会被纠正,很可能。 在五个类似的指标工作,但一切正常,没有冻结。 Sergey Dzyublik 2020.05.15 13:25 #27405 MT5(build 2419)在调试器下工作,去浏览器看了几分钟,然后回到MT,不知为何完全是空的。- 没有窗户,没有面板,没有工具,什么都没有......。 Sergey Dzyublik 2020.05.15 13:39 #27406 MT5,我如何通过Ctrl+鼠标滚轮以编程方式禁用价格缩放? 我做了一个面板,以编程方式抓住Ctrl + 鼠标滚轮,缩放面板元素。 然而,同样的事件触发了价格缩放,并加载了 "等待更新 "的标题,它完全无限期地覆盖了面板。 示例代码,被注释的内容也在项目 中使用,但不影响上述问题: void HideChart(long achart, color BackClr){ //ChartSetInteger(achart, CHART_SHOW, false); //ChartSetInteger(achart, CHART_SHOW_OHLC, false); //ChartSetInteger(achart, CHART_SHOW_BID_LINE, false); //ChartSetInteger(achart, CHART_SHOW_ASK_LINE, false); //ChartSetInteger(achart, CHART_SHOW_LAST_LINE, false); //ChartSetInteger(achart, CHART_SHOW_PERIOD_SEP, false); //ChartSetInteger(achart, CHART_SHOW_GRID, false); //ChartSetInteger(achart, CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE); //ChartSetInteger(achart, CHART_SHOW_OBJECT_DESCR, false); //ChartSetInteger(achart, CHART_SHOW_TRADE_LEVELS, false); //ChartSetInteger(achart, CHART_SHOW_DATE_SCALE, false); //ChartSetInteger(achart, CHART_SHOW_PRICE_SCALE, false); //ChartSetInteger(achart, CHART_FOREGROUND, false); //ChartSetInteger(achart, CHART_SHIFT, false); //ChartSetInteger(achart, CHART_MODE, CHART_LINE); //ChartSetInteger(achart, CHART_SCALE, 0); ChartSetInteger(achart, CHART_SCALEFIX, 0); ChartSetInteger(achart, CHART_SCALEFIX_11 , 0); ChartSetInteger(achart, CHART_SCALE_PT_PER_BAR, 0); ChartSetInteger(achart, CHART_EVENT_OBJECT_DELETE, 0); ChartSetInteger(achart, CHART_EVENT_OBJECT_CREATE, 0); ChartSetInteger(achart, CHART_EVENT_MOUSE_WHEEL,1); ChartSetInteger(achart, CHART_EVENT_MOUSE_MOVE, 0); ChartSetInteger(achart, CHART_MOUSE_SCROLL, 0); ChartSetInteger(achart, CHART_KEYBOARD_CONTROL, 0); ChartSetInteger(achart, CHART_QUICK_NAVIGATION, 0); //ChartSetInteger(achart, CHART_COLOR_BACKGROUND, BackClr); //ChartSetInteger(achart, CHART_COLOR_FOREGROUND, BackClr); //ChartSetInteger(achart, CHART_COLOR_CHART_LINE, BackClr); //ChartSetInteger(achart, CHART_COLOR_ASK, BackClr); //ChartSetInteger(achart, CHART_COLOR_BID, BackClr); //ChartSetDouble(achart, CHART_FIXED_MAX, 1); //ChartSetDouble(achart, CHART_FIXED_MIN, 1); //ChartSetString(achart, CHART_COMMENT, ""); //ChartSetInteger(achart, CHART_CROSSHAIR_TOOL, 0); //ChartSetInteger(achart, CHART_SHOW_ONE_CLICK, 0); //ChartSetInteger(achart, CHART_CONTEXT_MENU, 0); ChartRedraw(achart); } void OnInit() { HideChart(0, clrWhite); } Igor Zakharov 2020.05.15 13:49 #27407 文档中说它是可读的,但是 Print(i," - ",ObjectGetInteger(0,name,OBJPROP_XDISTANCE)," - ",ObjectGetInteger(0,name,OBJPROP_XSIZE)); 赠送 图表上有文字。 附上完整的代码 附加的文件: colored_text_lable.mq5 5 kb Sergey Dzyublik 2020.05.15 13:53 #27408 Igor Zakharov: 文档中的标签宽度说是可读的,但是 宽度只有在对象被完全渲染后才能使用。 我最近也在处理这个问题。 关于交易、自动交易系统和策略测试的论坛 缺陷、错误、问题 Sergey Dzyublik, 2020.05.12 19:32 在使用OBJ_EDIT时,出现了一个问题--需要设置OBJPROP_XSIZE和OBJPROP_YSIZE的尺寸,以便所有的文字都能适合相应的对象尺寸。 问题:如何确定OBJPROP_XSIZE和OBJPROP_YSIZE的大小以适应整个文本? 我已经考虑了两个选项。 1.创建OBJ_LABLE对象,读取尺寸,删除OBJ_LABLE对象。 不适合,因为只有在对象实际被创建后才能进行尺寸标注,当对象在ChartRedraw队列中时,不可能进行尺寸标注。 2. 使用TextSetFont,然后是TextGetSize。 不合适,因为结果与方法1的结果有根本性的不同,相差2.5-2.9倍,取决于字体大小。 原因可能是4K显示器和175%的DPI。 #define PRINT(x) ; Print(#x, ":", string(x)) void SetLabel(long achart, string name, int wnd, string text, color clr, int x, int y, int corn=0, int fontsize=8, string font="Tahoma") { ObjectCreate(achart, name, OBJ_LABEL, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn); ObjectSetString(achart, name, OBJPROP_TEXT, text); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr); ObjectSetInteger(achart, name, OBJPROP_FONTSIZE, fontsize); ObjectSetString(achart, name, OBJPROP_FONT, font); ObjectSetInteger(achart, name, OBJPROP_SELECTABLE, false); ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0); ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y); } void OnStart(){ string obj_name = "test_obj"; string text = "AAAA::BBBB"; int font_size = 7; string font_name = "Tahoma"; SetLabel(0, obj_name, 0, text, clrWhite, 100, 100, 0, font_size, font_name); ChartRedraw(0); Sleep(1000); uint dx_fixed_0 = int(ObjectGetInteger(0, obj_name, OBJPROP_XSIZE)); uint dy_fixed_0 = int(ObjectGetInteger(0, obj_name, OBJPROP_YSIZE)); ObjectDelete(0, obj_name); PRINT(dx_fixed_0); PRINT(dy_fixed_0); uint dx_fixed_1; uint dy_fixed_1; TextSetFont(font_name, -10 * font_size); TextGetSize(text, dx_fixed_1, dy_fixed_1); PRINT(1.0 * dx_fixed_0 / dx_fixed_1); // Result: 1.0 PRINT(1.0 * dy_fixed_0 / dy_fixed_1); // Result: 1.0 } 感谢Geess 提供的解决方案。 当把shuffle传给TextSetFont 时,我应该把它的大小乘以-10。 Igor Zakharov 2020.05.15 14:08 #27409 Sergey Dzyublik: 宽度只有在物体被完全渲染后才能使用。 最近也一直在处理这个问题。 谢谢你!解决办法见附件。 附加的文件: colored_text_lable.mq5 5 kb fxsaber 2020.05.15 15:33 #27410 如果一个MQL程序必须一直向文件(RAM-drive)追加一些东西,而另一个(和另一个终端)必须从文件中读取所有这些追加的数据,会有什么标志和隐患? 1...273427352736273727382739274027412742274327442745274627472748...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MT4中的调试器不会改变。
我们正在完全重新设计MQL代码的调试和分析系统。 新系统与MT4不兼容。
MT4 BILD 1262终端崩溃
2020.05.13 18:05:09.335 违反访问规定写到0x0335346E
2020.05.13 18:05:09.276 VR EURUSD,H4: 还剩1条泄漏的字符串
2020.05.13 18:37:13.585 违反访问规定写到0x03093648
你能说说这个问题吗? 我做了一个小型的源代码,再现了这个问题
MT 4 BILD 1262 终端碰撞
2020.05.13 18:05:09.335 违反访问规定写到0x0335346E
2020.05.13 18:05:09.276 VR EURUSD,H4: 还剩1条泄漏的字符串
2020.05.13 18:37:13.585 违反访问规定写到0x03093648
你能说说吗? 我做了一个小型的源代码来重现这个问题。
通过私信 把源代码发给我,我会检查的。
MT4中的调试器不会改变。
我们正在完全重新设计MQL代码的调试和分析系统,新系统与MT4不兼容。
酷。你可以忘记为MT4开发严肃的指标。
谢谢你,我们会知道的。
接口流中的指示器,在它们被计数之前,终端不画任何东西。这就是为什么它挂断了。
四是不会被纠正,很可能。
在五个类似的指标工作,但一切正常,没有冻结。
- 没有窗户,没有面板,没有工具,什么都没有......。
我做了一个面板,以编程方式抓住Ctrl + 鼠标滚轮,缩放面板元素。
然而,同样的事件触发了价格缩放,并加载了 "等待更新 "的标题,它完全无限期地覆盖了面板。
示例代码,被注释的内容也在项目 中使用,但不影响上述问题:
文档中说它是可读的,但是
赠送
图表上有文字。
附上完整的代码
文档中的标签宽度说是可读的,但是
宽度只有在对象被完全渲染后才能使用。
我最近也在处理这个问题。
关于交易、自动交易系统和策略测试的论坛
缺陷、错误、问题
Sergey Dzyublik, 2020.05.12 19:32
在使用OBJ_EDIT时,出现了一个问题--需要设置OBJPROP_XSIZE和OBJPROP_YSIZE的尺寸,以便所有的文字都能适合相应的对象尺寸。问题:如何确定OBJPROP_XSIZE和OBJPROP_YSIZE的大小以适应整个文本?
我已经考虑了两个选项。
1.创建OBJ_LABLE对象,读取尺寸,删除OBJ_LABLE对象。
不适合,因为只有在对象实际被创建后才能进行尺寸标注,当对象在ChartRedraw队列中时,不可能进行尺寸标注。
2. 使用TextSetFont,然后是TextGetSize。
不合适,因为结果与方法1的结果有根本性的不同,相差2.5-2.9倍,取决于字体大小。
原因可能是4K显示器和175%的DPI。
感谢Geess 提供的解决方案。
当把shuffle传给TextSetFont 时,我应该把它的大小乘以-10。
宽度只有在物体被完全渲染后才能使用。
最近也一直在处理这个问题。
谢谢你!解决办法见附件。