外部和输入之间的区别 - 页 4 1234567 新评论 Aleksey Semenov 2019.06.29 16:10 #31 Igor Makanu: 声明一个枚举类型的 变量如何? 隐式枚举转换 tst1.mq5 24 17 你也可以检查EnumToString()... 我认为没有声明变量的类型只是在编译中被抛出,因为没有使用。 我的意思是,你可以不小心声明一个与已经在使用的枚举中相同名称的变量,然后有一个非常漫长和痛苦的时间来寻找我在哪里和哪里射中自己的膝盖。 Dmitry Fedoseev 2019.06.29 16:12 #32 Maksim Neimerik: 那么判决结果如何,先生们?如果我用.mqh(#include)写一个.mq5程序,我可以安全地写extern,而不用担心出现意想不到的后果(就像我在mql4中那样),或者使用input ? 在MT5中使用输入来声明外部变量。MT5中的Extern有一个不同的目的。 Igor Makanu 2019.06.29 16:16 #33 Dmitry Fedoseev: 在MT5中使用输入来声明外部变量。MT5中的Extern有一个不同的目的。 为什么在MT5中不能使用extern?- 我在MT5中编译了我的例子,我没有看到根本的区别 Artyom Trishkin 2019.06.29 16:20 #34 Igor Makanu: 为什么在MT5中不能使用extern?- 我在MT5中编译了我的例子,我没有看到任何根本的区别 因为人们出于习惯,从旧的MQL4开始,试图使用extern来输入参数。 而在新的MQL4和MQL5中,input与#property strict一起使用,extern则用于其他目的。 这就是为什么说不要使用extern。 Igor Makanu 2019.06.29 16:25 #35 Artyom Trishkin: 因为人们出于习惯,从古老的MQL4开始就尝试使用extern来输入参数。 而在新的MQL4和MQL5中,input与#property strict一起使用,extern则用于其他目的。 这就是为什么我告诉你不要使用extern。 因此,每个人都想写大量的bukuffs,结果是他们不应该只在MQL5中使用,也不应该在其他地方使用))) 好了,重要的论点来了,我认为--如果你在旧代码中看到extern,用input代替它,并修复所有的警告,愿MQL的力量跟随你!!!!。 Artyom Trishkin 2019.06.29 16:29 #36 Igor Makanu: 你看,每个人都试图写很多的bukuffs,最后却只在MT5中不使用,或者根本不在任何地方使用))))。 好了,重要的论点来了,我认为--如果你在旧代码中看到extern,用input代替它,并纠正所有的警告,愿MQL的力量与你同在!!!!。 我不明白这里写的很多东西。 但我的意思不是在MQL5和MQL4中使用extern与#property strict来声明程序的外部参数,而是用于帮助中描述的目的(含糊不清)。 Maksim Neimerik 2019.06.29 16:43 #37 我一直在想,只是一个想法......在MQL5中,使用iCustom()不是比在MQL4中更有问题吗(或一般在MQL4中使用指标调用)?是这样吗?如果是,那么我将继续。 我刚刚开始一点点学习MQL5... 我可能会启动一个新的主题。 Igor Makanu 2019.06.29 16:50 #38 Maksim Neimerik: 我只是在想...在MQL5中,使用iCustom()比在MQL4中(或一般在MQL4中调用指标)要困难得多,不是吗?是这样吗?如果是,那么我将继续。 没有更多的问题,只是在MQL5中,你必须分两步来处理iCustom()。 1.获得指示器手柄 2.通过CopyBuffer()请求指标缓冲区的值 在MQL4中--iCustom()作为一个带参数的函数调用工作--你调用它,接收它 在MQL5中也是如此 - 开发人员故意减少了内置函数的功能,使访问时间序列变得不方便 - 他们最近才在MQL5中增加了iClose()、iHigh(),之前他们需要像CopyBuffer()那样将数据复制到一个数组中。 一般来说,MT5比MT4有更多的写法 Maksim Neimerik 2019.06.29 17:20 #39 Igor Makanu: 没有更多的问题,只是在MQL5中,你必须分两步来处理iCustom()。 1.获得指示器手柄 2.通过CopyBuffer()请求指标缓冲区的值 在MQL4中--iCustom()作为一个带参数的函数调用工作--你调用它,接收它 在MQL5中也是如此 - 开发人员故意减少了内置函数的功能,使访问时间序列变得不方便 - 他们最近才在MQL5中增加了iClose()、iHigh(),之前他们需要像CopyBuffer()那样将数据复制到一个数组中。 一般来说,MT5比MT4有更多的写法 https://www.mql5.com/ru/forum/316800 MQL4 & MQL5 2019.06.29www.mql5.com Я тут вот что думаю, просто мысли... В MQL5 ведь намного проблемнее работа с iCustom() чем в MQL4 (да и вообще с вызовом индикаторов в советнике... Alexey Navoykov 2019.06.30 06:02 #40 不幸的是,MQL5中的外部变量的实现还没有最终确定,这就是为什么我不建议使用它--它可能会引起问题。 我是指缺乏对这些变量的强制性一次性 初始化的控制。 例如,你可以这样写。 extern int a=1; extern int a=2; 想象一下,这些初始化是在不同的插件中进行的。然后,最终的结果将取决于这些文件被包含的顺序。 或者我们可以像这样写(可执行文件)。 extern int a; void OnStart() { Print(a); } 这里我们根本没有初始化这个外部变量,但也没有错误。 相应地,我们无法控制相同的变量是否在其他文件中被定义。 你可以不小心改变它的名字,但程序会像什么都没发生一样被编译,尽管在其他文件中我们有一个不同名字的变量。 总而言之,它不适合任何地方。这就是为什么最好使用函数而不是外部变量。 它们保证只有一个定义,不多也不少。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
声明一个枚举类型的 变量如何?
隐式枚举转换 tst1.mq5 24 17
你也可以检查EnumToString()...
我认为没有声明变量的类型只是在编译中被抛出,因为没有使用。
我的意思是,你可以不小心声明一个与已经在使用的枚举中相同名称的变量,然后有一个非常漫长和痛苦的时间来寻找我在哪里和哪里射中自己的膝盖。
那么判决结果如何,先生们?如果我用.mqh(#include)写一个.mq5程序,我可以安全地写extern,而不用担心出现意想不到的后果(就像我在mql4中那样),或者使用input ?
在MT5中使用输入来声明外部变量。MT5中的Extern有一个不同的目的。
在MT5中使用输入来声明外部变量。MT5中的Extern有一个不同的目的。
为什么在MT5中不能使用extern?- 我在MT5中编译了我的例子,我没有看到根本的区别
为什么在MT5中不能使用extern?- 我在MT5中编译了我的例子,我没有看到任何根本的区别
因为人们出于习惯,从旧的MQL4开始,试图使用extern来输入参数。
而在新的MQL4和MQL5中,input与#property strict一起使用,extern则用于其他目的。
这就是为什么说不要使用extern。
因为人们出于习惯,从古老的MQL4开始就尝试使用extern来输入参数。
而在新的MQL4和MQL5中,input与#property strict一起使用,extern则用于其他目的。
这就是为什么我告诉你不要使用extern。
因此,每个人都想写大量的bukuffs,结果是他们不应该只在MQL5中使用,也不应该在其他地方使用)))
好了,重要的论点来了,我认为--如果你在旧代码中看到extern,用input代替它,并修复所有的警告,愿MQL的力量跟随你!!!!。
你看,每个人都试图写很多的bukuffs,最后却只在MT5中不使用,或者根本不在任何地方使用))))。
好了,重要的论点来了,我认为--如果你在旧代码中看到extern,用input代替它,并纠正所有的警告,愿MQL的力量与你同在!!!!。
我不明白这里写的很多东西。
但我的意思不是在MQL5和MQL4中使用extern与#property strict来声明程序的外部参数,而是用于帮助中描述的目的(含糊不清)。
我一直在想,只是一个想法......在MQL5中,使用iCustom()不是比在MQL4中更有问题吗(或一般在MQL4中使用指标调用)?是这样吗?如果是,那么我将继续。
我刚刚开始一点点学习MQL5...
我可能会启动一个新的主题。我只是在想...在MQL5中,使用iCustom()比在MQL4中(或一般在MQL4中调用指标)要困难得多,不是吗?是这样吗?如果是,那么我将继续。
没有更多的问题,只是在MQL5中,你必须分两步来处理iCustom()。
1.获得指示器手柄
2.通过CopyBuffer()请求指标缓冲区的值
在MQL4中--iCustom()作为一个带参数的函数调用工作--你调用它,接收它
在MQL5中也是如此 - 开发人员故意减少了内置函数的功能,使访问时间序列变得不方便 - 他们最近才在MQL5中增加了iClose()、iHigh(),之前他们需要像CopyBuffer()那样将数据复制到一个数组中。
一般来说,MT5比MT4有更多的写法
没有更多的问题,只是在MQL5中,你必须分两步来处理iCustom()。
1.获得指示器手柄
2.通过CopyBuffer()请求指标缓冲区的值
在MQL4中--iCustom()作为一个带参数的函数调用工作--你调用它,接收它
在MQL5中也是如此 - 开发人员故意减少了内置函数的功能,使访问时间序列变得不方便 - 他们最近才在MQL5中增加了iClose()、iHigh(),之前他们需要像CopyBuffer()那样将数据复制到一个数组中。
一般来说,MT5比MT4有更多的写法
https://www.mql5.com/ru/forum/316800
不幸的是,MQL5中的外部变量的实现还没有最终确定,这就是为什么我不建议使用它--它可能会引起问题。 我是指缺乏对这些变量的强制性一次性 初始化的控制。
例如,你可以这样写。
想象一下,这些初始化是在不同的插件中进行的。然后,最终的结果将取决于这些文件被包含的顺序。
或者我们可以像这样写(可执行文件)。
这里我们根本没有初始化这个外部变量,但也没有错误。
相应地,我们无法控制相同的变量是否在其他文件中被定义。 你可以不小心改变它的名字,但程序会像什么都没发生一样被编译,尽管在其他文件中我们有一个不同名字的变量。
总而言之,它不适合任何地方。这就是为什么最好使用函数而不是外部变量。 它们保证只有一个定义,不多也不少。