错误、漏洞、问题 - 页 1360 1...135313541355135613571358135913601361136213631364136513661367...3184 新评论 Alexey Navoykov 2015.08.26 01:46 #13591 A100: 这就是我的建议。... 只有 == 和 != 操作受到变化的影响。 其他的一切,包括=运算符,都应该保持现在的样子(不改变)。如果现在导致指针和对象本身之间的混淆,怎么能不改变=操作符呢? 如果你对它使用*,那么它也应该被用于所有其他操作符。必须有一个单一的标准。 你所建议的是,编译器应该自己选择正确的标准--这是不对的。 会有很多难以发现的错误。 一切都应该是明确的:要么用一个对象,要么用一个指针进行操作。当然,所有这些星号都是被迫的拐杖。 我们必须改变开发者从一开始就选择的不是很好的整个概念,我认为。我们应该摆脱与C++的绑定,分别放弃使用指针作为独立的变量类型,用引用代替。 引用本质上与指针相同,只是被编译器解释为对象本身。因此,所有带有这些变量的操作,包括运算符,都被视为带有对象的操作。 如果你需要准确地比较或分配引用,请使用引用运算符。 因此,不会出现矛盾。 A a; // воздаём объект A& aref; // создаём неинициализированную ссылку &aref = &a; // присваиваем ссылку на a bool equalref = &aref==&a; // сравниваем ссылки aref = a; //вызываем оператор=() bool equal = aref==a; // вызываем оператор==()总而言之,如果开发者曾经设想过MQL6,我们应该朝这个方向发展。 与C++的绑定已经没有意义,因为它不符合语言的概念。 Vladimir Karputov 2015.08.26 03:44 #13592 A100: 你最近的更新是什么? MetaTrader和MetaEditor都建立了1159(Windows 10 32位)。在大型PC(64位)上,我不确定MetaEditor,但MetaTrader绝对是1159版本。 Gennadiy Stanilevych 2015.08.26 03:49 #13593 A100: 你最近的更新是什么? 我有1150。看不到升级到后来的1159的情况。 Vladimir Karputov 2015.08.26 03:55 #13594 Gennadiy Stanilevych: 我有1150。没有看到更新到后来的1159。 你需要连接到MetaQuotes-Demo服务器以获得最新的更新。 Alexey Volchanskiy 2015.08.26 05:20 #13595 A100: MetaQuotes-Demo是有意义的,因为之前它每个月更新2-3次。很明显,经纪人的更新频率要低得多。卡尔普托夫-弗拉基米尔。你需要连接到MetaQuotes-Demo服务器以获得最新的更新。同意,通过MetaQuotes-Demo更新,仍然是1150点!而终端几次通知我,更新已经下载,并提出重启,还是1150。好吧,我从http://www.metatrader5.com/ru/download 下载了分发包,在MetaQuotes-Demo上开了一个模拟账户,关闭和打开终端数次--1150!禁用UAC,Windows 7 SP1 - 64 Скачать MetaTrader 5 www.metatrader5.com Скачать торговый терминал MetaTrader 5 для комфортной и успешной работы на финансовых рынках. Терминал обладает внушительными торговыми и аналитическими возможностями и является одним из лучших в мире Alexey Volchanskiy 2015.08.26 05:26 #13596 我重复一下这个问题,因为没有人回答,而且因为关于OOP的激烈讨论,这个问题已经下去了。这个问题真的很重要,它是一个错误还是一个特点?我在MT4上注意到它。我遇到过这样一种情况:在程序执行 过程中,外部变量发生了变化,但当我改变时间框架时,它又会采用我在属性窗口中设置的值。例如,如果在开始之前我将TradeEnable设置为EnableAll,并在程序执行期间将该值改为EnableBuy,当图表变为另一个时间框架时,该值将返回EnableAll。我在定时器事件中定义的值并通过Comment输出,不可能有错误。enum ETradeEnable {EnableAll, EnableBuy, EnableSell, DisableAll}; extern ETradeEnable TradeEnable = EnableAll;TradeEnable变量不受图表之间翻转的影响。阅读帮助 -与输入变量不同,外部变量的值可以在程序运行时以编程方式改变。 这就是OnDeinit和OnInit的设置方式。 问题:我不明白的地方 或者改变TradeEnable是一个运行时错误?int LastDeinitReason = 0; void OnDeinit(const int reason) { LastDeinitReason = reason; if(reason==REASON_CHARTCHANGE || reason==REASON_TEMPLATE || reason==REASON_PARAMETERS) return; EventKillTimer(); // далее код при завершении работы советника } int OnInit() { if(LastDeinitReason==REASON_CHARTCHANGE || LastDeinitReason==REASON_TEMPLATE) { LastDeinitReason = 0; return(INIT_SUCCEEDED); } if(LastDeinitReason==REASON_PARAMETERS) { SetParams(); return(INIT_SUCCEEDED); } // далее код инициализации при запуске } Gennadiy Stanilevych 2015.08.26 06:46 #13597 Karputov Vladimir: 你必须连接到MetaQuotes-Demo服务器以获得最新的更新。 这并没有帮助。我甚至拆除了MT5。打开了MetaQuotes上的演示。还是1150。 Vladimir Karputov 2015.08.26 06:51 #13598 Gennadiy Stanilevych: 这并没有什么帮助。我甚至把MT5拿下来了。打开了一个关于元引号的演示。还是1150。 仅仅在MetaQuites-Demo服务器上开设一个演示账户是不够的:你还需要连接到这个演示账户进行更新。 Gennadiy Stanilevych 2015.08.26 06:56 #13599 Karputov Vladimir: 仅仅在MetaQuites-Demo服务器上开设一个模拟账户是不够的:你还需要连接到这个模拟账户进行更新。我当然连接了。然后再次重启了终端。仍然没有看到任何更新。 附加的文件: 20150826.log 7 kb Vladimir Karputov 2015.08.26 07:00 #13600 Gennadiy Stanilevych:我当然连接了。然后再次重启了终端。仍然没有看到任何更新。很奇怪(翻看了日志文件)。从经验来看--如果有更新,那么在连接后三秒内就开始下载。 1...135313541355135613571358135913601361136213631364136513661367...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是我的建议。
...
只有 == 和 != 操作受到变化的影响。
其他的一切,包括=运算符,都应该保持现在的样子(不改变)。
如果现在导致指针和对象本身之间的混淆,怎么能不改变=操作符呢? 如果你对它使用*,那么它也应该被用于所有其他操作符。必须有一个单一的标准。 你所建议的是,编译器应该自己选择正确的标准--这是不对的。 会有很多难以发现的错误。 一切都应该是明确的:要么用一个对象,要么用一个指针进行操作。
当然,所有这些星号都是被迫的拐杖。 我们必须改变开发者从一开始就选择的不是很好的整个概念,我认为。
我们应该摆脱与C++的绑定,分别放弃使用指针作为独立的变量类型,用引用代替。 引用本质上与指针相同,只是被编译器解释为对象本身。因此,所有带有这些变量的操作,包括运算符,都被视为带有对象的操作。 如果你需要准确地比较或分配引用,请使用引用运算符。 因此,不会出现矛盾。
总而言之,如果开发者曾经设想过MQL6,我们应该朝这个方向发展。 与C++的绑定已经没有意义,因为它不符合语言的概念。
你最近的更新是什么?
你最近的更新是什么?
我有1150。没有看到更新到后来的1159。
MetaQuotes-Demo是有意义的,因为之前它每个月更新2-3次。很明显,经纪人的更新频率要低得多。
同意,通过MetaQuotes-Demo更新,仍然是1150点!而终端几次通知我,更新已经下载,并提出重启,还是1150。
好吧,我从http://www.metatrader5.com/ru/download 下载了分发包,在MetaQuotes-Demo上开了一个模拟账户,关闭和打开终端数次--1150!禁用UAC,Windows 7 SP1 - 64
我重复一下这个问题,因为没有人回答,而且因为关于OOP的激烈讨论,这个问题已经下去了。这个问题真的很重要,它是一个错误还是一个特点?我在MT4上注意到它。
我遇到过这样一种情况:在程序执行 过程中,外部变量发生了变化,但当我改变时间框架时,它又会采用我在属性窗口中设置的值。例如,如果在开始之前我将TradeEnable设置为EnableAll,并在程序执行期间将该值改为EnableBuy,当图表变为另一个时间框架时,该值将返回EnableAll。我在定时器事件中定义的值并通过Comment输出,不可能有错误。
TradeEnable变量不受图表之间翻转的影响。阅读帮助 -与输入变量不同,外部变量的值可以在程序运行时以编程方式改变。
这就是OnDeinit和OnInit的设置方式。
问题:我不明白的地方 或者改变TradeEnable是一个运行时错误?
你必须连接到MetaQuotes-Demo服务器以获得最新的更新。
这并没有什么帮助。我甚至把MT5拿下来了。打开了一个关于元引号的演示。还是1150。
仅仅在MetaQuites-Demo服务器上开设一个模拟账户是不够的:你还需要连接到这个模拟账户进行更新。
我当然连接了。然后再次重启了终端。仍然没有看到任何更新。
我当然连接了。然后再次重启了终端。仍然没有看到任何更新。
很奇怪(翻看了日志文件)。从经验来看--如果有更新,那么在连接后三秒内就开始下载。