初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1311 1...130413051306130713081309131013111312131313141315131613171318...1503 新评论 Alexey Viktorov 2021.05.31 20:34 #13101 Sprut 185:谢谢你的参与。 不幸的是,ObjectSet*** 函数并不适合我的任务。 我自己用OnDeinit()函数 解决了这个问题。 现在一切都在正常工作。 但在你的问题中,有这样的话 Sprut 185: 请帮助我解决一个问题! 我只是在学习写代码,在这方面,我请你宽恕我的文盲身份。 我想帮助你理解OnChartEvent 函数,当你改变时间框架,或改变指标菜单中的设置,它将更新图表中的图形对象。 我知道你必须先删除 图形对象,然后再重新创建它们。但如果对象被删除,就无法访问其属性,那么如何 重新创建这些对象.......。 也许我不明白?或者也许有其他方法--更新图表上的图形对象? 请写一个例子,并对如何做到这一点提出意见。 而为了不被删除,只需通过ObjectSet***函数之一改变所需的对象属性。 至于删除所有对象.........,在不分青红皂白地删除所有对象时应该非常小心......在图表上的对象中,可能有手动创建的对象或由其他专家顾问/指标创建的对象。如果你喜欢删除对象,你应该注意通过前缀删除。确实,你必须用前缀来创建。这并不困难。 Aleksei Skrypnev 2021.06.02 13:29 #13102 什么是结果iSpread ?我看到,如果你在终端的Symbols/Bars中查询条形图,它与点差值大致相似。当然,这些值并不对应于SYMBOL_SPREAD给出的真实值。为什么有这样的差别?那么使用iSpread 显示的如此不真实的价差是什么呢? Vladimir Karputov 2021.06.02 15:21 #13103 Aleksei Skrypnev: 该函数显示的结果是什么iSpread ? 我看到,如果你在终端的Symbols/Bars中查询条形图,它与点差值大致相似。 当然,这些值并不对应于SYMBOL_SPREAD给出的真实值。 为什么有这样的差别?那么使用iSpread 显示的如此不真实的价差是什么呢? 每条的最小差价。 我添加了一个用于检查的缓冲区--它从指标数组spread[]中获取数据,并显示当前条形的注释--iSpread的结果。 如何做到这一点:传播控制 Spread Control www.mql5.com Просмотр спреда 附加的文件: Spread_Control_2.mq5 10 kb Alexey Belyakov 2021.06.03 15:23 #13104 问候! 你能告诉我为什么变量 "ATR14 "没有变化,我怎么能看到它的变化? void OnTick() { double ATR14=iATR(NULL,PERIOD_CURRENT,14); Comment( "ATR14==: ",ATR14,"\n"); } Vladimir Karputov 2021.06.03 15:35 #13105 Alexey Belyakov:问候!你能告诉我为什么变量 "ATR14 "没有变化吗? 我怎样才能看到它的变化? 因为在MQL5中,指标句柄(顺便说一下,它有int类型)是一次性创建的,并且是在OnInit中完成的。 而对于来自指示器的数据接收,则使用CopyBuffer。 Alexey Belyakov 2021.06.03 16:05 #13106 Vladimir Karputov:因为在MQL5中,指标句柄(顺便说一下,它有int类型)是一次性创建的,并且是在OnInit中完成的。而对于来自指示器的数据接收,则使用CopyBuffer。 好吧,让我们假设一下。 double ATR14m[]; int ATR14; int OnInit() { ATR14=iATR(NULL,PERIOD_CURRENT,14); return(0); } void OnDeinit(const int reason) { //--- } void OnTick() { CopyBuffer(ATR14,0,0,3,ATR14m); Comment( "ATR14==: ",ATR14,"\n"); } 什么都没有改变。 SanAlex 2021.06.03 16:17 #13107 Alexey Belyakov:问候!你能告诉我为什么变量 "ATR14 "没有变化吗? 我怎样才能看到它的变化? 下面是一个例子һttp://www.mql5.com/ru/docs/indicators/iatr Документация по MQL5: Технические индикаторы / iATR www.mql5.com iATR - Технические индикаторы - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Vladimir Karputov 2021.06.03 16:20 #13108 Alexey Belyakov:好吧,我们只能说什么都没有改变。 你几乎得到了它。我建议调用数组'array_atr'而不是'ATR14m'。然后你会更快地看到你在调用'评论'时的错误。 Alexey Belyakov 2021.06.03 16:40 #13109 Vladimir Karputov:你几乎说对了。我建议调用数组'array_atr'而不是'ATR14m'。然后你会更快地在"评论"调用中看到你的错误。double array_atr[]; int ATR14; int OnInit() { ATR14=iATR(NULL,PERIOD_CURRENT,14); return(0); } void OnDeinit(const int reason) { //--- } void OnTick() { CopyBuffer(ATR14,0,0,3,array_atr); Comment( "ATR14==: ",array_atr,"\n"); } 改变了它,得到了错误:" 'array_atr' - 无效的阵列访问 " Alexey Viktorov 2021.06.03 16:42 #13110 Vladimir Karputov:你几乎说对了。我建议调用数组'array_atr'而不是'ATR14m'。然后你会更快地看到你在调用'评论'时的错误。 你认为把孩子的便盆命名为夜光瓶会改变什么吗? 那里有如此大的误解,我甚至不敢提出建议......你必须读50遍文档才能理解...... 1...130413051306130713081309131013111312131313141315131613171318...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你的参与。
不幸的是,ObjectSet*** 函数并不适合我的任务。
现在一切都在正常工作。
但在你的问题中,有这样的话
请帮助我解决一个问题!
我只是在学习写代码,在这方面,我请你宽恕我的文盲身份。
我想帮助你理解OnChartEvent 函数,当你改变时间框架,或改变指标菜单中的设置,它将更新图表中的图形对象。
我知道你必须先删除 图形对象,然后再重新创建它们。但如果对象被删除,就无法访问其属性,那么如何 重新创建这些对象.......。 也许我不明白?或者也许有其他方法--更新图表上的图形对象?
请写一个例子,并对如何做到这一点提出意见。
而为了不被删除,只需通过ObjectSet***函数之一改变所需的对象属性。
至于删除所有对象.........,在不分青红皂白地删除所有对象时应该非常小心......在图表上的对象中,可能有手动创建的对象或由其他专家顾问/指标创建的对象。如果你喜欢删除对象,你应该注意通过前缀删除。确实,你必须用前缀来创建。这并不困难。
iSpread ?
我看到,如果你在终端的Symbols/Bars中查询条形图,它与点差值大致相似。
当然,这些值并不对应于SYMBOL_SPREAD给出的真实值。
为什么有这样的差别?那么使用iSpread 显示的如此不真实的价差是什么呢?
该函数显示的结果是什么
iSpread ?
我看到,如果你在终端的Symbols/Bars中查询条形图,它与点差值大致相似。
当然,这些值并不对应于SYMBOL_SPREAD给出的真实值。
为什么有这样的差别?那么使用iSpread 显示的如此不真实的价差是什么呢?
每条的最小差价。
我添加了一个用于检查的缓冲区--它从指标数组spread[]中获取数据,并显示当前条形的注释--iSpread的结果。
如何做到这一点:传播控制
问候!
你能告诉我为什么变量 "ATR14 "没有变化,我怎么能看到它的变化?
问候!
你能告诉我为什么变量 "ATR14 "没有变化吗? 我怎样才能看到它的变化?
因为在MQL5中,指标句柄(顺便说一下,它有int类型)是一次性创建的,并且是在OnInit中完成的。
而对于来自指示器的数据接收,则使用CopyBuffer。
因为在MQL5中,指标句柄(顺便说一下,它有int类型)是一次性创建的,并且是在OnInit中完成的。
而对于来自指示器的数据接收,则使用CopyBuffer。
好吧,让我们假设一下。
什么都没有改变。
问候!
你能告诉我为什么变量 "ATR14 "没有变化吗? 我怎样才能看到它的变化?
下面是一个例子һttp://www.mql5.com/ru/docs/indicators/iatr
好吧,我们只能说
什么都没有改变。
你几乎得到了它。我建议调用数组'array_atr'而不是'ATR14m'。然后你会更快地看到你在调用'评论'时的错误。
你几乎说对了。我建议调用数组'array_atr'而不是'ATR14m'。然后你会更快地在"评论"调用中看到你的错误。
你几乎说对了。我建议调用数组'array_atr'而不是'ATR14m'。然后你会更快地看到你在调用'评论'时的错误。
你认为把孩子的便盆命名为夜光瓶会改变什么吗?
那里有如此大的误解,我甚至不敢提出建议......你必须读50遍文档才能理解......