错误、漏洞、问题 - 页 2394

 
嗨!

给出:在MT5终端中的两个图表,例如:EURUSD H1,EURUSD H1。当从左到右编号时,让图表分别有数字1和2。

如果 "面板"(实际上是任何面板)被放在编号为1的图表上,那么,在过渡到图表2并返回到1的图表后,面板被最小化--最小化到左上角。

同时,如果 "面板 "被放置在图表2中,与现有的,当然是图表1,那么在过渡到1和返回到2的图表后,最小化-最小化的 "面板 "到左上角不会发生:)。

谁能解释是什么问题以及如何处理?

小组-01小组-02
附加的文件:
 
SEM:

你好!

最新版本(build 2007,2019年2月 25日)发现了两个错误。

1) 1) 当打开程序(或改变配置文件)时,许多图表(共41个)显示永恒的 "等待更新"。

22)关闭程序时,它没有完全关闭,任务管理器显示程序没有关闭,尽管从视觉上看它已经不再显示。

3) 有争议的错误(在2018年12月的版本上,一切工作正常,没有错误),也许是指标的错误,当启动程序或改变配置文件时,指标的计算不正确,你可以从渲染的数据中看到,一些数据没有正确计算。当你重新应用模板或打开和关闭指标属性时,数据被正确计算。

4) 由于某些原因,代理在更新后停止了在云端的工作(账户被列出)。测试通过586次,时间通过0小时0分钟。

渲染图表时出错,标准指标也会发生,只有重启终端和通过任务管理器强制关闭才有帮助。

什么会是错误?符号历史被加载。

错误

 
SEM:

渲染图形的错误,发生在标准指标上,只有重启终端,并通过任务管理器强制关闭才有帮助。

可能的错误是什么?符号历史被加载。


主要是在我处理对象(标签等)的指标中。 可能与大量的指标数组有关。 平均约有40个 "INDICATOR_DATA "和 "INDICATOR_CALCULATIONS"。顺便说一下,如果我没记错的话,在这种情况下,即使编译成功后,终端也不会更新指标,但我不确定这一点。

对代码进行了优化,以在单位时间内处理尽可能少的这些阵列的数据,阵列的数量相同或更多。

Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
  • www.metatrader5.com
Определение трендов, построение каналов, выявление циклов и уровней поддержки/сопротивления — все эти и многие другие задачи решаются при помощи аналитических объектов. Всего в торговой платформе доступно 46 таких инструментов. Среди них имеются геометрические фигуры, различные каналы, инструменты Ганна, Фибоначчи, Эллиотта и многое другое. В...
 
Ilya Malev:

我不知道这样的微妙之处,因为我过去没有参与过在MT5上开发自己的TS。怎么拿的是市场化的东西,有什么新闻?如果他们遇到缺口,应该在第一次报价时执行,即在加码的情况下限制滑点。优质的经纪商可能允许在真实账户上这样做。但当然,这不是一个规则。但如果每条杠的价差是最大的,它将补偿限制的利润。

可能是在策略测试器中检查滑移的最快方法

关于交易、自动交易系统和策略测试的论坛

图书馆:TradePanel_Csharp

fxsaber, 2019.03.05 10:10

演示

查看SlipPage专栏

SlipPage一栏显示了开盘(按限价)和收盘(按取价)时的滑点,单位为点。我们完全可以看到,在真正的ticks模式下,测试仪是如何高估利润的。

 
这在其他编译器中可能吗?
void OnInit()
{
  OnInit2(); // Пропишите внизу OnInit
}

#define OnInit OnInit2
现在,编译器给出了
'OnInit2' - function not defined        Test3.mq5       3       3
1 error(s), 0 warning(s)                2       1


我希望它能发出

'OnInit2' - function not defined        Test3.mq5       3       3 Пропишите внизу OnInit
1 error(s), 0 warning(s)                2       1
 
fxsaber:
其他编译器有这个功能吗?


我希望它能输出

在编译器中不太可能,最有可能的是在解释器中。 编译器通常对函数调用或变量进行静态指针绑定(应该是这样听的),即所有的指针偏移都将在编译时进行计算。

在你的例子中,一切都是老一套,#define和#ifndef ( _DEBUG ? )

 
Igor Makanu:

在编译器中不太可能,在解释器中最有可能,编译器通常使用指针与函数调用或变量的静态绑定(听起来应该是这样的),即所有指针的偏移量都将在编译时计算出来

在你的例子中,一切都是老一套,#define和#ifndef ( _DEBUG ? )

我只是想让编译器用一行注释来完成错误信息

 
Vjacheslav Lapaev:

我也遇到过这种情况,我不能说是在最新的版本中,但在以前的版本中是肯定的。 主要是在指标中,在那里我与对象(标签等)一起工作。可能与大量的指标数组有关。平均而言,大约40个,包括 "INDICATOR_DATA "和 "INDICATOR_CALCULATIONS"。顺便说一下,如果我没记错的话,在这种情况下,即使编译成功后,终端也不会更新指标,但我不确定这一点。

对代码进行了优化,以在单位时间内处理尽可能少的这些阵列的数据,阵列的数量相同或更多。

谢谢你的提示!当然,很遗憾的是,这个程序不稳定,在12月的版本中没有这种错误。
 
Ilyas:

没有进入所展示的代码,让我试着猜测一下--问题是两个EA都使用相同的图形资源工作。

这是一个使用标准库类 CAppDialog的例子

如果你使用这个类,当切换图表时,Minimize()方法总是被调用。

我不想去理解它,我只是自己写了一个OnClickButtonMinMax(),它很乱,但它的工作没有问题。

CAppDialog::OnClickButtonMinMax()
  {
   if(Width()<200) Minimized_state=false;
   if(Minimized_state)
     {
      Minimize();
     }
   else
     {
      Maximize();
      ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true);
      ObjectSet(TS2.Name()+"Label",OBJPROP_BACK,true);
      ObjectSet(CP.Name()+"Label",OBJPROP_BACK,true);
     }
  }

在CAppDialog类中还有一个错误,在Minimize()和Maximize()之后,CCheckBox类的属性OBJPROP_BACK发生了变化,复选框变成了 "方形 "边框,我在这段代码中迅速修复了ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true); ...

 
Vjacheslav Lapaev:
你好!

给出:在MT5终端中的两个图表,例如:EURUSD H1,EURUSD H1。让图表分别有数字1和2,从左到右进行编号。

如果 "面板"(实际上是任何)被放在编号为1的图表上,那么,在过渡到图表2并返回到1的图表后,面板被最小化--最小化到左上角。

同时,如果 "面板 "被放置在图表2中,与现有的,当然是图表1,那么在过渡到1和返回到2的图表后,最小化-最小化 "面板 "到左上角的情况不会发生:)。

谁能解释一下重点是什么,以及如何处理它?

删除了我之前的回复

窗口崩溃,因为它不适合在图表上。
如果你退出 "图表到整个终端窗口 "模式,你将看到图表的实际尺寸。

为了避免图表上的面板塌陷,你需要增加图表的尺寸。
之后,你可以将图表扩展到整个终端,并尝试在它们之间切换