错误、漏洞、问题 - 页 2449

 
Alexey Navoykov:

这里有人建议从源头计算哈希值。 因此,为此你需要知道程序使用的所有源头(includniki),这意味着你需要努力解析代码。 它们不一定被明确指定(#include <file.mqh>),但可以被指定为宏。

好吧,如果某些东西依赖于宏,那么要改变结果就必须改变宏,也就是改变源。我在文章 中给出了对include-ums的所有依赖性的解读。顺便说一下,这里的注释被拿掉了,所以只剩下裸露的代码。

#property script_show_inputs

input string SourceFile = "filename.txt";
input string IncludesFolder = "";
input bool LoadIncludes = false;

void OnStart()
{
  Preprocessor loader(SourceFile, IncludesFolder, LoadIncludes);
  
  if(!loader.run())
  {
    Print("Loader failed");
    return;
  }

  // output entire data as it is assembled from one or many files
  int handle = FileOpen("dump.txt", FILE_WRITE | FILE_TXT | FILE_ANSI, 0, CP_UTF8);
  FileWriteString(handle, loader.text().get());
  FileClose(handle);
}
但我同意,一切都在编辑器本身,而不是手动操作,这更方便。
 
Stanislav Korotky:

好吧,如果某些东西依赖于宏,那么宏,即源代码,必须改变,以改变结果。我已经在文章 中用include-ums给出了所有的依赖性。顺便说一下,这里的注释被拿掉了,所以只剩下裸露的代码。

谢谢你,连我自己都不知道。 你在那里写的确实是关于绊倒宏的问题。 不过,我们会仔细检查的。

这个项目的发展仍然有巨大的潜力,特别是在内部改进语言方面,因为MQL中的许多东西还没有实现,许多东西工作得很糟糕(bug),而且据我所知,开发人员没有计划改进语言本身的任何东西。

 
CCanvas类中,FontGet、TextWidth、TextHeight和TextSize方法由于某种原因被声明为非常量,尽管它们没有对该类做出任何改变。他们的工作纯粹是为了获得数据。
 

我不明白,是否不可能为图形元素"Button "设置一个类似Enabled=false的属性,从而使按钮变得无法按下?

也就是说,用户最初按下按钮,某种过程开始,按钮应该保持在被按下的位置,而不对进一步的按下作出反应。 有可能做到这一点吗?

p.s. 找到了。将该对象的优先级设置为负值。
 

你如何从这个列表中检索数据(文本)?

 
fxsaber:

你能告诉我如何从这个列表中检索数据(文本)吗?

https://www.mql5.com/ru/docs/convert/enumtostring

Документация по MQL5: Преобразование данных / EnumToString
Документация по MQL5: Преобразование данных / EnumToString
  • www.mql5.com
//| Script program start function                                    |
 

我需要一个来自工具提示的所有enum的列表。

试过几个 窗口程序。不起作用,因为当焦点消失时,列表就消失了。
Программы для работы с окнами приложений | Темная сторона Силы | Blog. Just Blog
  • ManHunter / PCL
  • www.manhunter.ru
В процессе разработки программ, а также их исследования, очень часто приходится работать с окнами приложений на уровне системы. То есть просматривать или менять стили окон, передавать или отслеживать сообщения и уведомления, обрабатывать другие параметры окон. У меня накопилась небольшая подборка программ, значительно облегчающих выполнение...
 

帮助我解决OnTradeTransaction() 的问题。下面描述的行为是否正常?我在测试器中检查了它--它是这样的:( 在 "真实 "账户上呢?

OnTick()有一个循环,按顺序关闭头寸。

OnTradeTrancaction()计算未结头寸的数量。

专家顾问是这样做的:它首先将循环关闭到最后,然后转到OnTradeTransaction,以同样的顺序进行计算。

换句话说,它并不

закрытие тикета #1 -> подсчёт с учетом закрытия тикета #1 -> закрытие тикета #2 -> подсчёт с учетом закрытия тикета #2 -> ...

а

закрытие тикета #1 -> закрытие тикета #2 -> ... -> подсчёт с учетом закрытия тикета #1 -> подсчёт с учетом закрытия тикета #2 -> ...

也就是说,它是按顺序工作的,而不是并行的。

如果上述描述是正常的,那么事实证明,OnTradeTransaction()只能安全地用于只打开/关闭一个订单的专家顾问系统中。如果有一个网格或一个多符号网格(或多符号网格,这是在这里找到的:) )- 算法就会崩溃。

 
Igor Zakharov:

帮助我解决OnTradeTransaction() 的问题。下面描述的行为是否正常?我在测试器中检查了它--它是这样的:(在 "真实 "账户上呢?

真实账户上的一切总是比模拟账户和测试器上的更复杂。

OnTradeTransaction-概念考虑不周,但 "你只是不知道如何烹饪它们 "的意见不断传出。


要么不写交易数据,要么在程序中的任何地方从外部获取数据,而不等待OnTradeTransaction进入。

异步性对多符号网格来说是好的。因此,我将选择第二个选项。
 
终端64.exe或metatester64.exe是测试仪所在的位置吗?需要弄清楚修改哪个文件才能摆脱这个错误