初学者的问题 MQL5 MT5 MetaTrader 5 - 页 991 1...984985986987988989990991992993994995996997998...1503 新评论 Artyom Trishkin 2019.01.26 09:20 #9901 kopeyka2:这正是我所想的。误解的问题是 "参数 "这个词。所以我开始查看所有涉及到句柄 --> CopyBuffer的变量。 1) 我的问题从一开始就是要切换时间框架SCREEN来保存手柄数据。正如在MT4中一样。 而事实上,结果也是如此。 总是在所有的时间框架上 给出相同的数值10。 在这里一无所获后,我继续前进。 2)我引用一下。"将指定指标的指定缓冲区的数据以指定的数量获取到缓冲区阵列中"。 也就是说,通过 手工 设置计数,我们应该有一个INTERVAL的数值 。 他们就在那里!BUT!!!!!!只有当处理周期对应于 监视器屏幕上的PERIOD_H1时间框架。 所有的价值都被清晰地传送。但移到另一个时间框架,屏幕上没有数据。 它们不会以任何方式传播,!!!! 而我的问题正是如此。如果不是有!!!!,条数在这里并不那么重要。 我看了看提议的指标MTF_LRMA.mq5 ,但它有同样的东西。 它在屏幕上切换到另一个时间框架,数据按屏幕上的时间框架进行。我需要它在手持设备上。 例如:iClose(NULL, PERIOD_H1, 5); 在所有的时间段都会给出相同的值--H1的10条。 到目前为止,所有的例子都是关于 CopyBuffer 计数的修正。 但数组是空的。 你错了。处理在任何时间范围内给出的数据。我将在大约10小时后给你一个例子。我在手机上做不到这一点。 kopeyka2 2019.01.26 09:30 #9902 Artyom Trishkin: 你错了。处理在任何时间范围内给出的数据。我将在大约10小时后给你一个例子。我将无法从我的手机上进行操作。好的。谢谢你的答复。 自己纠正了。 Напррмер: iClose(NULL, PERIOD_H1, 5); на всех таймфреймах будут давать одно и тоже значение : Закрытие на 5 баре по Н1. 我想它可能是这样的 MqlParam params[]; //--- create iMA("EURUSD",PERIOD_M15,8,0,MODE_EMA,PRICE_CLOSE); ArrayResize(params,4); //--- set ma_period params[0].type =TYPE_INT; params[0].integer_value=0; //--- set ma_shift params[1].type =TYPE_INT; params[1].integer_value=0; //--- set ma_method params[2].type =TYPE_INT; params[2].integer_value=MODE_EMA; //--- set applied_price params[3].type =TYPE_INT; params[3].integer_value=PRICE_CLOSE; //--- create MA h_MA=IndicatorCreate("EURUSD",PERIOD_M15,IND_MA,4,params); //--- release indicators (first h_MACD) if(h_MA==INVALID_HANDLE) { Print("The iMA (",string(PERIOD_M15),") object was not created: Error ",GetLastError()); return INIT_FAILED; } //--- return(INIT_SUCCEEDED); 但如果你改变主意,我将等待第一种方法来获得技术指标(iMA)的值。但我还是不明白。 Aleksey Vyazmikin 2019.01.26 09:48 #9903 kopeyka2:好的。谢谢你的答复。 自己纠正了。 我想它可能是这样的 但如果你改变主意,我将等待第一种方法来获得技术指标(iMA)的值。但我现在不明白了......我在上面表明,不同TF上的条数是不同的,因此要复制的条数也不同,这取决于应该计算指标的那个TF。你应该检查由BarsCalculated()计算的条数,并将其作为基础。 //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { if(rates_total==prev_calculated) return(rates_total); //--- int i; double diff; //--- check for rates count if(rates_total<=ExtPeriodRSI) return(0); //--- if(TF!=PERIOD_CURRENT) { if(handle==INVALID_HANDLE) { handle=iCustom(Symbol(),TF,ind_name,Variant,RSIPeriod,Levl_Up,Levl_Down,PERIOD_CURRENT); return(0); } else { int bars_calculated=BarsCalculated(handle); //Print("Начнем расчет - " , bars_calculated); if(bars_calculated<=0) return(0); if(Bars(Symbol(),TF)!=bars_calculated) { for(i=rates_total-prev_calculated-1;i>=0;i--) { Delta[i]=0.0; } return(prev_calculated); } } kopeyka2 2019.01.26 09:51 #9904 Aleksey Vyazmikin:我在上面表明,不同TF上的条数是不同的,因此你应该要求不同的条数来复制,这取决于TF,应该由指标来计算。你应该检查指标通过BarsCalculated()计算的条数,并将其作为基础,这里有一个MTF的例子。 谢谢你。我将尝试一下。但如前所述,该数组完全是空的。我一直在阵列上做手写的sdigs。这都是空的。 Artyom Trishkin 2019.01.26 09:59 #9905 kopeyka2: 谢谢你。我会试一试的。但正如前面所指出的,这个数组完全是空的。我一直在阵列上做手写的sdigs。这都是空的。 你是否忽略了我们必须等待从另一个时间框架加载数据?我给了你例子。所示指标 中的数据仅取自较高的时间框架。如果我们设置为低于或等于当前的时间框架,则数据取自当前的时间框架。所有这些都在代码中,但你却没有费心去研究它。但你是在做一个声明。 kopeyka2 2019.01.26 10:14 #9906 Artyom Trishkin: 你是否忽略了你必须等待数据从不同的时间框架加载?我已经给你举了例子。所示指标中的数据仅取自较高的时间框架。如果我们设置为低于或等于当前的时间框架,则数据取自当前的时间框架。这一切都在代码中,但你还没有审查它。但你是在做一个声明。 我不只是看,我把你的指标拆成了碎片。我从一开始就有数据延迟的想法。而且,从第一次观看开始,我就立即看到了你的Timer。我会朝这个方向看的。 Artyom Trishkin 2019.01.26 10:17 #9907 kopeyka2: 我不仅看了,而且还把你的指标一块一块地拆开。这里是关于数据延迟的想法,从一开始就有。而且,从第一次观看开始,我就立即看到了你的Timer。我会朝这个方向看的。 最后一个周期与数据转换 到当前的时间框架评论,并在任何图形缓冲区通过计算缓冲区的数据MAshek,你会在图表上看到你想要看到的东西。 kopeyka2 2019.01.26 10:19 #9908 暂时 其他(非本地)时间框架 Artyom Trishkin 2019.01.26 10:28 #9909 kopeyka2: 暂时 其他(非本地)时间框架 你是否特意注释了返回字符串,以防止没有收到数据?为什么?如果你拧开车轮,说电机嗡嗡作响,方向盘转动,但车不走,因此它不在工作状态,这就有点苛刻了。 Aleksey Vyazmikin 2019.01.26 10:29 #9910 kopeyka2: 我试试。我将尝试一下。但正如我之前指出的,这个数组根本就是空的。我用我的手来做阵列的读数。这都是空的。早些时候,我给了你一段带打印的指标代码,你是否试着复制它?日志中没有出现任何内容,没有错误或数字? 1...984985986987988989990991992993994995996997998...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这正是我所想的。误解的问题是 "参数 "这个词。所以我开始查看所有涉及到句柄 --> CopyBuffer的变量。
1) 我的问题从一开始就是要切换时间框架SCREEN来保存手柄数据。正如在MT4中一样。
而事实上,结果也是如此。
总是在所有的时间框架上 给出相同的数值10。
在这里一无所获后,我继续前进。
2)我引用一下。"将指定指标的指定缓冲区的数据以指定的数量获取到缓冲区阵列中"。
也就是说,通过 手工 设置计数,我们应该有一个INTERVAL的数值 。 他们就在那里!BUT!!!!!!只有当处理周期对应于
监视器屏幕上的PERIOD_H1时间框架。 所有的价值都被清晰地传送。但移到另一个时间框架,屏幕上没有数据。
它们不会以任何方式传播,!!!! 而我的问题正是如此。如果不是有!!!!,条数在这里并不那么重要。
我看了看提议的指标MTF_LRMA.mq5 ,但它有同样的东西。 它在屏幕上切换到另一个时间框架,数据按屏幕上的时间框架进行。我需要它在手持设备上。
例如:iClose(NULL, PERIOD_H1, 5); 在所有的时间段都会给出相同的值--H1的10条。
到目前为止,所有的例子都是关于 CopyBuffer 计数的修正。 但数组是空的。
你错了。处理在任何时间范围内给出的数据。我将在大约10小时后给你一个例子。我将无法从我的手机上进行操作。
好的。谢谢你的答复。
自己纠正了。
我想它可能是这样的
但如果你改变主意,我将等待第一种方法来获得技术指标(iMA)的值。但我还是不明白。
好的。谢谢你的答复。
自己纠正了。
我想它可能是这样的
但如果你改变主意,我将等待第一种方法来获得技术指标(iMA)的值。但我现在不明白了......
我在上面表明,不同TF上的条数是不同的,因此要复制的条数也不同,这取决于应该计算指标的那个TF。你应该检查由BarsCalculated()计算的条数,并将其作为基础。
我在上面表明,不同TF上的条数是不同的,因此你应该要求不同的条数来复制,这取决于TF,应该由指标来计算。你应该检查指标通过BarsCalculated()计算的条数,并将其作为基础,这里有一个MTF的例子。
谢谢你。我会试一试的。但正如前面所指出的,这个数组完全是空的。我一直在阵列上做手写的sdigs。这都是空的。
你是否忽略了你必须等待数据从不同的时间框架加载?我已经给你举了例子。所示指标中的数据仅取自较高的时间框架。如果我们设置为低于或等于当前的时间框架,则数据取自当前的时间框架。这一切都在代码中,但你还没有审查它。但你是在做一个声明。
我不仅看了,而且还把你的指标一块一块地拆开。这里是关于数据延迟的想法,从一开始就有。而且,从第一次观看开始,我就立即看到了你的Timer。我会朝这个方向看的。
暂时
其他(非本地)时间框架
暂时
其他(非本地)时间框架
我试试。我将尝试一下。但正如我之前指出的,这个数组根本就是空的。我用我的手来做阵列的读数。这都是空的。
早些时候,我给了你一段带打印的指标代码,你是否试着复制它?日志中没有出现任何内容,没有错误或数字?