初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1245 1...123812391240124112421243124412451246124712481249125012511252...1503 新评论 [删除] 2020.08.18 09:01 #12441 Artyom Trishkin:不是所有的数组都有相同的方向。 我明白了,但我还设置了ArraySetAsSeries(barsBuffer1 ,true); ! 嗯,这就是一半的麻烦。但我不知道如何添加一个新的蜡烛。 我是这样试的。 ......... else { Print("tick_count = ",++tick_count); if(tick_count >= 5) { Print("Добавляем свечу."); double O[1], H[1], L[1], C[1]; O[0] = newCandles_Open[3]; H[0] = newCandles_High[3]; L[0] = newCandles_Low[3]; C[0] = newCandles_Close[3]; ArrayResize(barsBuffer1,ArraySize(barsBuffer1)+1); ArrayResize(barsBuffer2,ArraySize(barsBuffer2)+1); ArrayResize(barsBuffer3,ArraySize(barsBuffer3)+1); ArrayResize(barsBuffer4,ArraySize(barsBuffer4)+1); ArrayInsert(barsBuffer1,O,0); ArrayInsert(barsBuffer2,H,0); ArrayInsert(barsBuffer3,L,0); ArrayInsert(barsBuffer4,C,0); tick_count = 0; } } //--- return value of prev_calculated for next call return(rates_total); } 不起作用...((( Artyom Trishkin 2020.08.18 09:07 #12442 Сергей Таболин:我明白了,但我还设置了ArraySetAsSeries(barsBuffer1 ,true); !嗯,这是一半的麻烦。但如何添加一个新的蜡烛--我想不出来。我是这样试的。不起作用...((( 我很抱歉,但分配给指示器缓冲区的数组 不能被调整大小--终端的子系统做这个。 SetIndexBuffer(0, barsBuffer1, INDICATOR_DATA); SetIndexBuffer(1, barsBuffer2, INDICATOR_DATA); SetIndexBuffer(2, barsBuffer3, INDICATOR_DATA); SetIndexBuffer(3, barsBuffer4, INDICATOR_DATA); ArrayResize(barsBuffer1,ArraySize(barsBuffer1)+1); ArrayResize(barsBuffer2,ArraySize(barsBuffer2)+1); ArrayResize(barsBuffer3,ArraySize(barsBuffer3)+1); ArrayResize(barsBuffer4,ArraySize(barsBuffer4)+1); 重新考虑一下你的逻辑。我根本就不知道,只能说明明显的错误之处。 [删除] 2020.08.18 09:14 #12443 Artyom Trishkin:当然,我很抱歉,但分配给指示器缓冲区的数组 不能被调整大小--这是由终端子系统处理的。重新考虑一下你的逻辑。我根本就不知道,只能说明公然的错误之处。 我也是这样理解的,但是......。 Artem,如果指标缓冲区 是由子系统控制的,这意味着这个子系统也会增加它的大小?换句话说,在新的蜡烛图出现之前,不能在图表中绘制新的指标蜡烛图? Artyom Trishkin 2020.08.18 09:20 #12444 Сергей Таболин:我也是这样理解的,但是......。Artem,如果指标缓冲区 是由一个子系统管理的,这意味着它也会增加其大小?换句话说,在图表上出现新的蜡烛图之前,图表上也不能画出新的指标蜡烛图? 什么叫 "画出一个新的烛台"? 你可以画它们,但不能添加条形图--它们还没有出现。 是的,终端会照顾到指标阵列的大小。它还提供了关于他们中有多少人在上一次通话中的数据。 [删除] 2020.08.18 09:29 #12445 Artyom Trishkin:你说的 "画一支新的蜡烛 "是什么意思?你可以画出各种各样的东西,但你不能添加酒吧--它们还不存在。是的,终端本身就能照顾到指标阵列的大小。它还提供了关于他们中有多少人在上一次通话中的数据。 谢谢你,现在我明白为什么会失败了。 那么最后一个问题。我知道我们可以在指标中显示另一个时间框架的蜡烛图。如果指标显示H2的蜡烛和H1的蜡烛,这意味着我们应该在 一个蜡烛的有效期内画出两个蜡烛。如果缓冲区只是由系统增加,那是怎么发生的?或者给我一个例子的链接,如果不是太麻烦的话。也许我会想出办法 )))) Artyom Trishkin 2020.08.18 09:53 #12446 Сергей Таболин:谢谢你,现在我明白为什么它对我不起作用了。那么最后一个问题。我知道你可以在指标中显示另一个时间框架的蜡烛图。如果该指标显示来自H1的蜡烛,这意味着我们应该在 一个蜡烛周期内画出2根蜡烛。如果缓冲区只是由系统增加,那是怎么发生的?或者给我一个例子的链接,如果不是太麻烦的话。也许我会想出办法)))。 我在最近关于指标的文章中给出了一些例子,但它们是基于图书馆的。 为了了解如何绘制两个蜡烛图而不是一个,请看一下图表。看一下H2上的蜡烛打开的时间,以及H1上相同时间的蜡烛的位置。一切都会变得清晰。 [删除] 2020.08.18 12:05 #12447 Artyom Trishkin:我在上一篇关于指标的文章中举了一些例子,但它们都是基于图书馆的。而要了解如何画两根蜡烛而不是一根,请看图表。看看H2上的蜡烛被打开的时间和H1上相同时间的蜡烛的位置。一切都会变得清晰。 Artem,事情是这样的:我不明白! 例如,H2的蜡烛图是在12:00打开的。下一次将在14:00举行。但在H1,下一次将是在13:00。根据这一逻辑,直到蜡烛在更高的TF上打开,指标阵列将不会增加这意味着我将无法在指标中画出第二根蜡烛?还是什么? 解释给我听,不清楚的takomu.....为什么以及如何在一个图表上画两个(或实际上是n个)蜡烛图?为什么如果我在指标缓冲区的 第0个索引中填入新的数值(简单的赋值),指标就不会改变? 也许我应该向开发人员询问这种可能性?我给这个缓冲区添加了一个新的元素--它的绘制是将之前所有的元素向左移动。毕竟,这是我的指标我想怎么写就怎么写!我不想把它与图表上的新条形图的开口绑定在一起!这能有多难? [删除] 2020.08.20 05:58 #12448 感谢Artem和Vladimir!你的回答和解释让我有了想法,指标就出来了。再次感谢你们。 Sayberix 2020.08.21 17:34 #12449 能否请你告诉我什么是错的? 有一个简单的变量声明。 input double StopLoss=150.0; 在真实数据上进行调试时,StopLoss变量的设定值为 "150"。但如果我启用历史数据的调试,同一代码中的同一变量就有不同的值。这方面的原因可能是什么?那么如何处理这个问题呢? Alexey Viktorov 2020.08.21 17:52 #12450 Sayberix:能否请你告诉我什么是错的?有一个简单的变量声明。在真实数据上进行调试时,StopLoss变量的设定值为 "150"。但如果我启用历史数据的调试,同一代码中的同一变量就有不同的值。这方面的原因可能是什么?那么如何处理这个问题呢? 检查策略测试器的 "参数 "标签中的数值。当你在真实数据上启用调试时,专家顾问从输入变量中获取数值,如果你在历史数据上启用调试,数值则从测试器设置中获取。 1...123812391240124112421243124412451246124712481249125012511252...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不是所有的数组都有相同的方向。
我明白了,但我还设置了ArraySetAsSeries(barsBuffer1 ,true); !
嗯,这就是一半的麻烦。但我不知道如何添加一个新的蜡烛。
我是这样试的。
不起作用...(((
我明白了,但我还设置了ArraySetAsSeries(barsBuffer1 ,true); !
嗯,这是一半的麻烦。但如何添加一个新的蜡烛--我想不出来。
我是这样试的。
不起作用...(((
我很抱歉,但分配给指示器缓冲区的数组 不能被调整大小--终端的子系统做这个。
SetIndexBuffer(0, barsBuffer1, INDICATOR_DATA); SetIndexBuffer(1, barsBuffer2, INDICATOR_DATA); SetIndexBuffer(2, barsBuffer3, INDICATOR_DATA); SetIndexBuffer(3, barsBuffer4, INDICATOR_DATA);
ArrayResize(barsBuffer1,ArraySize(barsBuffer1)+1); ArrayResize(barsBuffer2,ArraySize(barsBuffer2)+1); ArrayResize(barsBuffer3,ArraySize(barsBuffer3)+1); ArrayResize(barsBuffer4,ArraySize(barsBuffer4)+1);
重新考虑一下你的逻辑。我根本就不知道,只能说明明显的错误之处。
当然,我很抱歉,但分配给指示器缓冲区的数组 不能被调整大小--这是由终端子系统处理的。
重新考虑一下你的逻辑。我根本就不知道,只能说明公然的错误之处。
我也是这样理解的,但是......。
Artem,如果指标缓冲区 是由子系统控制的,这意味着这个子系统也会增加它的大小?换句话说,在新的蜡烛图出现之前,不能在图表中绘制新的指标蜡烛图?
我也是这样理解的,但是......。
Artem,如果指标缓冲区 是由一个子系统管理的,这意味着它也会增加其大小?换句话说,在图表上出现新的蜡烛图之前,图表上也不能画出新的指标蜡烛图?
什么叫 "画出一个新的烛台"?
你可以画它们,但不能添加条形图--它们还没有出现。
是的,终端会照顾到指标阵列的大小。它还提供了关于他们中有多少人在上一次通话中的数据。
你说的 "画一支新的蜡烛 "是什么意思?
你可以画出各种各样的东西,但你不能添加酒吧--它们还不存在。
是的,终端本身就能照顾到指标阵列的大小。它还提供了关于他们中有多少人在上一次通话中的数据。
谢谢你,现在我明白为什么会失败了。
那么最后一个问题。我知道我们可以在指标中显示另一个时间框架的蜡烛图。如果指标显示H2的蜡烛和H1的蜡烛,这意味着我们应该在 一个蜡烛的有效期内画出两个蜡烛。如果缓冲区只是由系统增加,那是怎么发生的?或者给我一个例子的链接,如果不是太麻烦的话。也许我会想出办法 ))))
谢谢你,现在我明白为什么它对我不起作用了。
那么最后一个问题。我知道你可以在指标中显示另一个时间框架的蜡烛图。如果该指标显示来自H1的蜡烛,这意味着我们应该在 一个蜡烛周期内画出2根蜡烛。如果缓冲区只是由系统增加,那是怎么发生的?或者给我一个例子的链接,如果不是太麻烦的话。也许我会想出办法)))。
我在最近关于指标的文章中给出了一些例子,但它们是基于图书馆的。
为了了解如何绘制两个蜡烛图而不是一个,请看一下图表。看一下H2上的蜡烛打开的时间,以及H1上相同时间的蜡烛的位置。一切都会变得清晰。
我在上一篇关于指标的文章中举了一些例子,但它们都是基于图书馆的。
而要了解如何画两根蜡烛而不是一根,请看图表。看看H2上的蜡烛被打开的时间和H1上相同时间的蜡烛的位置。一切都会变得清晰。
Artem,事情是这样的:我不明白!
例如,H2的蜡烛图是在12:00打开的。下一次将在14:00举行。但在H1,下一次将是在13:00。根据这一逻辑,直到蜡烛在更高的TF上打开,指标阵列将不会增加这意味着我将无法在指标中画出第二根蜡烛?还是什么?
解释给我听,不清楚的takomu.....为什么以及如何在一个图表上画两个(或实际上是n个)蜡烛图?为什么如果我在指标缓冲区的 第0个索引中填入新的数值(简单的赋值),指标就不会改变?
也许我应该向开发人员询问这种可能性?我给这个缓冲区添加了一个新的元素--它的绘制是将之前所有的元素向左移动。毕竟,这是我的指标我想怎么写就怎么写!我不想把它与图表上的新条形图的开口绑定在一起!这能有多难?
感谢Artem和Vladimir!你的回答和解释让我有了想法,指标就出来了。再次感谢你们。
能否请你告诉我什么是错的?
有一个简单的变量声明。
在真实数据上进行调试时,StopLoss变量的设定值为 "150"。但如果我启用历史数据的调试,同一代码中的同一变量就有不同的值。这方面的原因可能是什么?那么如何处理这个问题呢?
能否请你告诉我什么是错的?
有一个简单的变量声明。
在真实数据上进行调试时,StopLoss变量的设定值为 "150"。但如果我启用历史数据的调试,同一代码中的同一变量就有不同的值。这方面的原因可能是什么?那么如何处理这个问题呢?
检查策略测试器的 "参数 "标签中的数值。当你在真实数据上启用调试时,专家顾问从输入变量中获取数值,如果你在历史数据上启用调试,数值则从测试器设置中获取。