错误、漏洞、问题 - 页 2391

 
Kisolen:
当在MT5上进入Windows 10(我不记得是哪一个,但它是现代的和interprise ltsb 1607(相当老的))的待机状态时,EA停止连接到图表,交易停止执行,但一些功能(图形自写窗口的输出,这是功能)保持活跃。这是MT的错误还是EA的问题?谢谢你。

待机模式是指计算机实际上处于关闭状态。所有程序都被停止。

 
谢谢你对上次评论的回应。还有一个问题。MT5。我做了一个界面模板,在图表上没有 "网格",我把这个模板称为 "默认",所以它是默认启用的,在MT本身中一切正常,但在EA可视化窗口中却不工作。谢谢你。
 
Kisolen:
谢谢你对上一条评论的答复。还有一个问题。MT5。我正在制作一个界面模板,没有图表上的 "网格",我把这个模板称为 "默认",所以它是默认启用的,在MT本身一切正常,但在EA可视化窗口中却不工作。谢谢你。

默认.tpl "图表模板适用于在终端中打开一个新的图表,而 "tester.tpl "图表模板适用于在可视化模式下运行一个策略测试器。

点击这里了解更多信息:模板和简介 - 高级功能 - 报价、技术和基本面分析图表

 

大家好。

我想提请开发人员注意MT5(build 2006)中的以下错误。当用属性标识符CHART_WIDTH_IN_BARSCHART_VISIBLE_BARS 调用ChartGetInteger 函数时,如果另一个窗口处于活动状态,具有相同的符号但TF较小,该函数返回不正确的值。如果图表有最大的缩放比例(5),返回的值就会比实际值少5。如果缩放比例为4,返回的值就会小10。如果缩放比例为3,那么分别为20,等等。以下是测试指标的代码,以重现该故障。这个故障在TF D1和RTS-3.19仪器上稳定地再现了。 为了清楚起见,我还录制了一个带有故障演示的视频。在Build 274中(从历史记录 来看),类似的错误已经被修复,但显然没有修复到最后。:)

//+------------------------------------------------------------------+
//|                                                     DBS_Bug2.mq5 |
//|                                            Copyright © 2019, DBS |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1                                         //количество индикаторных буферов
#property indicator_plots   1                                         //количество графических построений
//+------------------------------------------------------------------+ 
//| Функция инициализации индикатора                                 | 
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+ 
//| Функция расчёта индикатора                                       | 
//+------------------------------------------------------------------+
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[])
  {
//---Debug
   int chart_bars=int(ChartGetInteger(0,CHART_WIDTH_IN_BARS));     //к-во баров на экране
   int vis_bars=int(ChartGetInteger(0,CHART_VISIBLE_BARS));        //к-во баров видимых на экране
   PrintFormat("%s: Debug #2! rates_total=%i chart_bars=%i vis_bars=%i",__FUNCTION__,rates_total,chart_bars,vis_bars);
   return(rates_total);
  }
//+------------------------------------------------------------------+

我曾经得到过这个函数更有趣的返回值(特别是在加载终端时)。在最大的图表比例(5)下,返回值=5(无论图表上实际有多少条)。如果缩放是4,那么返回值=10。如果缩放比例为3,那么分别=20,等等。不幸的是,我没有设法在视频中捕捉到这个故障。然而,我花了一整天时间来理解为什么我的指标在D1上工作不正确,而在其他TF上却正常。


P.S. 几个小时后(连接中断后),来自同一图表(RTS-3.19,D1)的日志。现实上,图表上显示的是55条。而MT5在日志中说,只有5个适合放在屏幕上,而且根本没有可见的条形

2019.02.24 21:27:09.692 DBS_Volume (RTS-3.19,D1)        DBS Volume (VOLUME_REAL): SetVolScale: Debug #1!  max_vol_idx=3 max_vol=402550 time=2019.02.19 00:00 rates_total=220 chart_bars=5 vis_bars=0
MetaTrader 5 Client Terminal build 274
MetaTrader 5 Client Terminal build 274
  • 2010.05.15
  • MetaQuotes Software Corp.
  • www.metatrader5.com
Terminal: Исправлено отображение истории торговли на чарте. Terminal: Исправлена ошибка в навигации чарта (при отключеном сдвиге и автоскроле). Terminal: Исправления по сообщениям на форуме и крешлогам. Terminal: В файл помощи добавлено описание Тестера Стратегий MetaTester: Исправлена ошибка в загрузке параметров тестирования при смене...
 
Dmitriy Burlachenko:

开发人员你好。

MQL5标准库帮助中有WindowHandle 函数,但当使用它时,编译器说'WindowHandle' - 函数未定义'。问题:是谁对代码或编译器产生了故障?:)

它是SB。

int CChart::WindowHandle(void) const;
 
Dmitriy Burlachenko:

开发人员你好。

MQL5标准库帮助中有WindowHandle 函数,但当使用它时,编译器说'WindowHandle' - 函数未定义'。问题:是谁对代码或编译器产生了故障?:)


你对帮助的使用是不正确的。

仔细观察:MQL5参考标准库价格图表WindowHandle

返回一步,阅读价格图表 部分


已添加。

用例(注意--你需要先执行Attach 方法),然后才对对象进行操作

//+------------------------------------------------------------------+
//|                       Gets window handle of the chart (HWND).mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property description "Gets window handle of the chart (HWND)"
//---
#include <Charts\Chart.mqh>
CChart   m_chart;                      // CChart object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   m_chart.Attach(); // assigns the current chart to the class instance

   Print("CChart.WindowHandle: ",m_chart.WindowHandle());
   Print("CChart.ChartId: ",m_chart.ChartId());
  }
//+------------------------------------------------------------------+

结果。

2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.WindowHandle: 13830128
2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.ChartId: 131571247244850547
附加的文件:
 
Dmitriy Burlachenko:

开发人员你好。

MQL5标准库帮助中有WindowHandle 函数,但当使用它时,编译器说'WindowHandle' - 函数未定义'。问题:是谁对代码或编译器产生了故障?:)

使用。

ChartGetInteger(0,CHART_WINDOW_HANDLE,0);
 
Vladimir Karputov:

你在使用错误的帮助。

仔细看看:MQL5参考标准库价格图表窗口手柄

再往前走一步,阅读价格图表


已添加。

用例(注意--你需要先执行Attach 方法),然后才对对象进行操作

结果。

谢谢你。

 
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2019.02.21
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

MQL5 ME 2006

#property strict

class A
 { 
public:
  int f();
 };

void OnStart()
  {
   A a;
   a.f();
  }

在MQL4中也有同样的代码,因为它应该是"函数'f'必须有一个主体"