mql5语言的特点、微妙之处以及技巧 - 页 214 1...207208209210211212213214215216217218219220221...247 新评论 Vladimir Simakov 2021.11.18 13:25 #2131 fxsaber #: 我以前没有遇到过这样的条目。 使用它))) Fast235 2021.11.18 13:33 #2132 Vladimir Simakov #:使用它))))弗拉基米尔,你从哪里得到这样的方案?,我当时得到了帮助,在我的主题是寻找酒吧,最小的周期,是否有一个现成的图像的地方? 我是自学成才的,在一个不同的配置文件原来 只是把逻辑电路放在一起,加起来,在循环中滚动......。 A100 2021.11.18 13:37 #2133 Vladimir Simakov #:嗯,这是一个凶猛的错误。例子。内存被分配,当它被释放时,析构器被调用(这是根据RAII的预期行为的提示),但是当对象被创建 时,构造器被忘记调用))。 这是第2个{}错误。 关于交易、自动交易系统和策略测试的论坛 mql5的特殊性,技巧和窍门 A100, 2021.11.16 13:43 F5挂起。另外,这 也是一个 矛盾的 解决方法 提醒:第1次有盘旋,第3次有联合 TheXpert 2021.11.18 13:37 #2134 Vladimir Simakov #:利用优势))) 哦,那些增员后的轻声细语...。) Vladimir Simakov 2021.11.18 13:53 #2135 Fast235 #:弗拉基米尔,你从哪里得到这样的方案?,我当时在寻找酒吧的话题中得到了帮助,通过最小的周期,在某个地方有现成的图像吗? 我是自学成才的,在一个不同的配置文件中,原来 只要把逻辑电路放在一起,把它们加起来,通过循环滚动... 不要在不了解的情况下使用这样的东西,出了现成的。有了这样的记录,如果你需要比这里更复杂一点的东西,虫子,不一定容易找到,你可以在瞬间填满))))。 Fast235 2021.11.18 14:02 #2136 Vladimir Simakov #:不要在不了解的情况下使用这样的东西,现成的。有了这样的记录,如果你需要比这里更复杂一点的东西,你可以在瞬间做出bug,并不总是容易找到的))))。 你对酒吧的搜索,是用枚举和模板))。 我几乎把模板推迟了很久,但我在大约一个小时内就进入了它们。 把它们和枚举一起从代码中拿出来,你可能有一个更严肃的任务来使用它们 -- 增加 这一切都在论坛上,只是谢谢你。 Ilyas 2021.11.18 16:08 #2137 Vladimir Simakov #:嗯,这是一个凶猛的错误。例子。内存被分配,释放内存时调用析构器(这暗示了根据RAII的预期行为),但在创建对象 时忘记调用构造器))。 谢谢你的帖子。 纠正了。 这段代码将导致编译错误,因为MQL中的初始化序列仍然不完整。 对于结构,通过序列初始化没有被带有相关参数的构造函数调用所取代--我们正计划增加这一点(目前无限期推迟,但一些新代码已经 "泄露 "到生产中)。 mktr8591 2021.11.18 17:15 #2138 @A100 关于交易、自动交易系统和交易策略测试的论坛 mql5的特殊性,技巧和窍门 A100, 2021.11.16 13:43 这没有意义,因为。 struct X { int i; }; void OnStart() { X x[200000] = {}; } F5挂断电话。另外,这也是一个矛盾的 解决方法。 关于交易、自动交易系统和交易策略测试的论坛 mql5的特殊性,技巧和窍门 fxsaber, 2021.11.17 02:07 struct MqlTick2 : private MqlTick {}; void OnStart() { MqlTick2 Ticks[4] = {}; // OK ZeroMemory(Ticks); // 'Ticks' - not allowed for objects with protected members or inheritance } 关于交易、自动交易系统和交易策略测试的论坛 mql5的特殊性,技巧和窍门 A100, 2021.11.17 02:20 你自己犯了第四个错误。为什么ZeroMemory比{}差?也就是说,我们有一些未经批准的对私有的访问机制,而编译器由于某种原因无法检测到。 你认为开发商不会解决这个问题吗?从前,编译器对ZeroMemory 也没有反应。 如果你记得mql是从C++中衍生出来的,这两个例子(它们的对应物)在那里都很好用,因为这些类没有构造函数(即隐式构造函数)。 声明ClassX x[n]={};的结果是对数组的每个元素进行值初始化。 如果ClassX没有自定义构造函数(但有一个默认的未设置的构造函数),那么类对象的零初始化就完成了--不管是否有私有字段。 但如果有常量字段,默认构造函数将被隐式删除,所以编译器错误。 在C++中的例子。 #include <iostream> using namespace std; class X { int a; public: int get(){return a;} //X(){} //так массив x не обнуляется //а если нет конструктора - то обнуляется }; int main() { X x[10]={}; for (int i=0; i<10;i++) cout<<x[i].get()<<endl; } 因此,如果结构/类中没有常量字段,那么逻辑是正确的。 mktr8591 2021.11.18 17:41 #2139 我忘了补充,如果一个类有非琐碎的字段(对象),其默认的c-tor将在整个对象的零init后为这类字段调用。 Igor Makanu 2021.11.18 17:48 #2140 fxsaber #: 我以前没有见过这样的记录。 我看了看我在MQL5中的研究,可能更糟糕,我甚至在指标中抽出了几个TF的历史。 void FindHighLow(THL &hl[], const ENUM_TIMEFRAMES tf, const datetime start_time, const int sz_buf = 1000) { ZeroMemory(hl);//hl структура datetime st = start_time; MqlRates rates[]; for(int i = 0, c = CopyRates(_Symbol, tf, st, sz_buf, rates); ArraySize(rates) > 0 && i < ArraySize(hl); st = rates[0].time - PeriodSeconds(tf), c = CopyRates(_Symbol, tf, st, sz_buf, rates)) { for(int j = ArraySize(rates) - 1; j >= 0 && i < ArraySize(hl); j--) { .... } } 我可以在for语句中写很多东西 )))) 1...207208209210211212213214215216217218219220221...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我以前没有遇到过这样的条目。
使用它)))
使用它))))
弗拉基米尔,你从哪里得到这样的方案?,我当时得到了帮助,在我的主题是寻找酒吧,最小的周期,是否有一个现成的图像的地方? 我是自学成才的,在一个不同的配置文件原来
只是把逻辑电路放在一起,加起来,在循环中滚动......。嗯,这是一个凶猛的错误。例子。
内存被分配,当它被释放时,析构器被调用(这是根据RAII的预期行为的提示),但是当对象被创建 时,构造器被忘记调用))。
这是第2个{}错误。
关于交易、自动交易系统和策略测试的论坛
mql5的特殊性,技巧和窍门
A100, 2021.11.16 13:43
F5挂起。另外,这 也是一个 矛盾的 解决方法
提醒:第1次有盘旋,第3次有联合
利用优势)))
弗拉基米尔,你从哪里得到这样的方案?,我当时在寻找酒吧的话题中得到了帮助,通过最小的周期,在某个地方有现成的图像吗? 我是自学成才的,在一个不同的配置文件中,原来
只要把逻辑电路放在一起,把它们加起来,通过循环滚动...不要在不了解的情况下使用这样的东西,出了现成的。有了这样的记录,如果你需要比这里更复杂一点的东西,虫子,不一定容易找到,你可以在瞬间填满))))。
不要在不了解的情况下使用这样的东西,现成的。有了这样的记录,如果你需要比这里更复杂一点的东西,你可以在瞬间做出bug,并不总是容易找到的))))。
你对酒吧的搜索,是用枚举和模板))。
我几乎把模板推迟了很久,但我在大约一个小时内就进入了它们。
把它们和枚举一起从代码中拿出来,你可能有一个更严肃的任务来使用它们
--
增加
这一切都在论坛上,只是谢谢你。
嗯,这是一个凶猛的错误。例子。
内存被分配,释放内存时调用析构器(这暗示了根据RAII的预期行为),但在创建对象 时忘记调用构造器))。
谢谢你的帖子。
纠正了。
这段代码将导致编译错误,因为MQL中的初始化序列仍然不完整。
对于结构,通过序列初始化没有被带有相关参数的构造函数调用所取代--我们正计划增加这一点(目前无限期推迟,但一些新代码已经 "泄露 "到生产中)。
@A100
关于交易、自动交易系统和交易策略测试的论坛
mql5的特殊性,技巧和窍门
A100, 2021.11.16 13:43
这没有意义,因为。
F5挂断电话。另外,这也是一个矛盾的 解决方法。
关于交易、自动交易系统和交易策略测试的论坛
mql5的特殊性,技巧和窍门
fxsaber, 2021.11.17 02:07
关于交易、自动交易系统和交易策略测试的论坛
mql5的特殊性,技巧和窍门
A100, 2021.11.17 02:20
你自己犯了第四个错误。为什么ZeroMemory比{}差?也就是说,我们有一些未经批准的对私有的访问机制,而编译器由于某种原因无法检测到。
你认为开发商不会解决这个问题吗?从前,编译器对ZeroMemory 也没有反应。
如果你记得mql是从C++中衍生出来的,这两个例子(它们的对应物)在那里都很好用,因为这些类没有构造函数(即隐式构造函数)。
在C++中的例子。
因此,如果结构/类中没有常量字段,那么逻辑是正确的。
我以前没有见过这样的记录。
我看了看我在MQL5中的研究,可能更糟糕,我甚至在指标中抽出了几个TF的历史。
我可以在for语句中写很多东西 ))))