错误、漏洞、问题 - 页 2470 1...246324642465246624672468246924702471247224732474247524762477...3184 新评论 Eugeni Neumoin 2019.05.22 14:27 #24691 Igor Zakharov:所以它不是在几秒钟内...这就是语言描述首先要做的事情。 而不是在那些你必须搜索的文章中。你应该在论坛上寻找的最后一件事就是这个。 否则,它看起来是这样的:我在书中寻找,但我看到一个图... Alexey Viktorov 2019.05.22 14:55 #24692 为什么会出现这种情况? IM 0 17:19:04.403 Terminal MetaTrader 5 x64 build 2056 started (MetaQuotes Software Corp.) NG 0 17:19:04.403 Terminal Windows 7 Service Pack 1 (build 7601) x64, IE 11, AMD FX-4170 Quad-Core Processor , Memory: 9408 / 12255 Mb, Disk: 20 / 238 Gb, GMT+3 我今天发现,工具规格中的最小体积是100,步长也是100。但是,它没有开仓,出现"无效量"的错误。 如果我设置0.01,按钮就不活跃。 将版本改为 "年轻 "版本。 KK 0 17:35:14.046 Terminal MetaTrader 5 x64 build 2025 started (MetaQuotes Software Corp.) IE 0 17:35:14.046 Terminal Windows 7 Service Pack 1 (build 7601) x64, IE 11, AMD FX-4170 Quad-Core Processor , Memory: 9182 / 12255 Mb, Disk: 20 / 238 Gb, GMT+3 没有变化。 然后用发布的版本替换了它。 FI 0 17:37:23.049 Terminal MetaTrader 5 x64 build 2007 started (MetaQuotes Software Corp.) RS 0 17:37:23.049 Terminal Windows 7 Service Pack 1 (build 7601) x64, IE 11, AMD FX-4170 Quad-Core Processor , Memory: 9180 / 12255 Mb, Disk: 20 / 238 Gb, GMT+3 而这就是结果。 为什么它只发生在一家公司身上?如果它是普遍的,问题早就解决了。 我应该向公司的支持发送什么方向? 补充:非常奇怪的是,2025年的build在同一个公司的cent账户上运行良好。所有的工具参数都是它们应该有的样子。 你可以在美分上进行交易。我自己想出来了......但我想要更多。 Sergey Dzyublik 2019.05.22 19:05 #24693 Ilyas:谢谢你的留言。 这是一个粗制滥造的问题,我们会解决的。@Ilyas,NonPOD结构也有类似问题。 struct NonPod{ uchar data[]; }; void OnStart(){ NonPod obj; obj = (NonPod)(obj); // '(' - invalid cast operation } Sergey Dzyublik 2019.05.22 21:00 #24694 有没有人知道,除了等待一个对类的命名空间支持的新版本外,如何绕过这个限制。template<typename T> class TestTypedef{ public: typedef void (* callback)(T &); // 'callback' - identifier already used callback eq; }; void ff(int&) {Print(__FUNCSIG__);} void OnStart(){ TestTypedef<int> int_value; int_value.eq = ff; int x = 5; int_value.eq(x); // Ok TestTypedef<string> int_value; //Compile error 'callback' - identifier already used }在类型化 功能中的全局命名空间声明区的问题 Sergey Dzyublik 2019.05.22 22:38 #24695 MT5 (build 2057) 在typedef中重复使用同一函数签名时出现编译错误。typedef void (* callback_0)(); // а без этой строки все ОК typedef void (* callback)(); void test_func(){} void OnStart(){ callback func_ptr = test_func; //'test_func' - type mismatch func_ptr(); } A100 2019.05.23 00:46 #24696 Sergey Dzyublik: MT5 (build 2057) 禁止在typedef中重复使用相同的签名的错误。而我有一个 两年多前的基本类似的脚本,给出了2056x32的结果:EX5加载失败 A100 2019.05.23 01:01 #24697 Sergey Dzyublik: 有没有人知道,除了等待一个对类的命名空间支持的新版本外,如何绕过这个限制。编译 void f(int&) {} void OnStart() { TestTypedef<int> int_value; TestTypedef<string> string_value; 它是可能的(甚至会起作用),但不能超过这个范围:那么,我们说,你不能编写 int_value.eq = f; }所以不要写如何 Sergey Dzyublik 2019.05.23 01:17 #24698 A100:编译,所以不要写如何不,它几乎不起作用,但它确实起作用...bool类型 在例子中的typedef中丢失了。 #define PRINT(x) ; Print(#x, ":", string(x)) #define CREATE_TestTypedef(type) \ class TestTypedef_##type{ \ public: \ typedef bool (* callback_##type)(type &); \ callback_##type eq; \ } bool f(int&) {return true;} void OnStart(){ CREATE_TestTypedef(int) int_value; CREATE_TestTypedef(string) string_value; int data = 5; int_value.eq = f; PRINT(int_value.eq(data)); // result: true } Sergey Dzyublik 2019.05.23 01:26 #24699 直到类型定义修复和命名空间更新(如果有的话)发布。 我们将不得不通过宏来分别声明每种类型的使用,然后使用宏来获得生成的类的名称,以创建一个类对象...... Igor Makanu 2019.05.23 05:51 #24700 解释一下为什么当我创建CChartObjectLabel 时,在这段代码中,在去初始化时没有删除指标中的对象。 //+------------------------------------------------------------------+ //| test.mq4 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict #property indicator_separate_window #include <ChartObjects\ChartObjectsTxtControls.mqh> CChartObjectLabel *LabelUP,*LabelDN; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { CreateLabel(LabelUP,"LabelUP",0); CreateLabel(LabelDN,"LabelDN",30); /* LabelUP=new CChartObjectLabel; LabelDN=new CChartObjectLabel; LabelUP.Create(0,"LabelUP",ChartWindowFind(),0,0); LabelUP.Color(clrYellow); LabelUP.FontSize(14); LabelUP.Description("LabelUP"); LabelDN.Create(0,"LabelDN",ChartWindowFind(),0,10); LabelDN.Color(clrYellow); LabelDN.FontSize(14); LabelDN.Description("LabelDN"); */ //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { delete LabelUP; delete LabelDN; } //+------------------------------------------------------------------+ //| 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(rates_total); } //+------------------------------------------------------------------+ void CreateLabel(CChartObjectLabel *l,string name,int y) { l=new CChartObjectLabel; l.Create(0,name,ChartWindowFind(),0,y); l.Color(clrYellow); l.FontSize(14); l.Description(name); } //+------------------------------------------------------------------+ 当切换TF时,我得到了日志记录:2019.05.23 09:49:02.044 tstlabel EURUSD,M30: 剩下2个CChartObjectLabel类型的对象。如果在OnInit()中取消文本标签的创建(CChartObjectLabel),那么一切都会正常工作。 我 向CreateLabel()函数传递了一个 指针,但我不能在之后 的OnDeinit()中删除它。 1...246324642465246624672468246924702471247224732474247524762477...3184 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以它不是在几秒钟内...
这就是语言描述首先要做的事情。
而不是在那些你必须搜索的文章中。你应该在论坛上寻找的最后一件事就是这个。
否则,它看起来是这样的:我在书中寻找,但我看到一个图...
为什么会出现这种情况?
我今天发现,工具规格中的最小体积是100,步长也是100。但是,它没有开仓,出现"无效量"的错误。 如果我设置0.01,按钮就不活跃。
将版本改为 "年轻 "版本。
没有变化。
然后用发布的版本替换了它。
而这就是结果。
为什么它只发生在一家公司身上?如果它是普遍的,问题早就解决了。
我应该向公司的支持发送什么方向?
补充:非常奇怪的是,2025年的build在同一个公司的cent账户上运行良好。所有的工具参数都是它们应该有的样子。
你可以在美分上进行交易。我自己想出来了......但我想要更多。
谢谢你的留言。
这是一个粗制滥造的问题,我们会解决的。
@Ilyas,NonPOD结构也有类似问题。
在类型化 功能中的全局命名空间声明区的问题
在typedef中重复使用同一函数签名时出现编译错误。
MT5 (build 2057)
禁止在typedef中重复使用相同的签名的错误。
而我有一个 两年多前的基本类似的脚本,给出了2056x32的结果:EX5加载失败
有没有人知道,除了等待一个对类的命名空间支持的新版本外,如何绕过这个限制。
编译
它是可能的(甚至会起作用),但不能超过这个范围:那么,我们说,你不能编写
所以不要写如何
编译,所以不要写如何
不,它几乎不起作用,但它确实起作用...
bool类型 在例子中的typedef中丢失了。
我们将不得不通过宏来分别声明每种类型的使用,然后使用宏来获得生成的类的名称,以创建一个类对象......
解释一下为什么当我创建CChartObjectLabel 时,在这段代码中,在去初始化时没有删除指标中的对象。
当切换TF时,我得到了日志记录:2019.05.23 09:49:02.044 tstlabel EURUSD,M30: 剩下2个CChartObjectLabel类型的对象。
如果在OnInit()中取消文本标签的创建(CChartObjectLabel),那么一切都会正常工作。
我 向CreateLabel()函数传递了一个 指针,但我不能在之后 的OnDeinit()中删除它。