任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 318 1...311312313314315316317318319320321322323324325...1178 新评论 Sergey Dzyublik 2013.12.06 07:28 #3171 muzzletop: 下午。我有一个EA,它在策略测试器中运行良好(它打开订单和一切)。但当我只是把它放在一个图表上时,什么也没有发生。该EA不起作用。我还注意到图表上EA的名字旁边有一个十字。如何解决这个问题? 当你把EA放在图表上时,会打开一个带有参数的窗口,有不同的标签--在第一个标签 "常规 "中,你必须在"允许EA交易"前面打上勾。 如果该EA已经出现在图表上,并且显示为十字形--在工具栏上,点击 "EA "按钮(黄色立方体的帽子上有一个红色的圆圈,圆圈内有一个白色的正方形)。 satorifx 2013.12.06 10:31 #3172 下午好。帮助我处理一个奇怪的问题。 重点是:我正在编写一个多时段指标,即一个指标,它在任何时候打开,都会计算并给出所有其他时间的信号。 该指标的基础是RSI。 在init()中,当切换时间框架时,一个单独的数组被放在指标线 的对应位置。对于每个人来说,当你在这个或那个时间,线都会被显示出来,但其他时间的计算却没有进行(函数iRSI在计算中愚蠢地追寻零)。也就是说,当前时间被计算出来了,但其他时间却没有。 我正在粘贴代码。 #property indicator_separate_window #property indicator_minimum 20 #property indicator_maximum 80 #property indicator_level1 20 // уровень RSI #property indicator_level2 42 // уровень RSI #property indicator_level3 50 // уровень RSI #property indicator_level4 58 // уровень RSI #property indicator_level5 80 // уровень RSI #property indicator_levelcolor White // цвет уровней #property indicator_buffers 1 #property indicator_color1 Red #property indicator_width1 2 // толщина RSI //--- buffers double RSI_M1[]; // буферы под RSI double RSI_M5[]; double RSI_M15[]; double RSI_M30[]; double RSI_H1[]; double RSI_H4[]; double RSI_D1[]; double RSI_W1[]; double RSI_MN[]; int RSI_per = 12; // период RSI int RSIPriceType = PRICE_CLOSE; // покакой цене считать RSI //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorShortName("test"); switch(Period()) { case PERIOD_M1: SetIndexBuffer(0, RSI_M1); break; case PERIOD_M5: SetIndexBuffer(0, RSI_M5); break; case PERIOD_M15: SetIndexBuffer(0, RSI_M15); break; case PERIOD_M30: SetIndexBuffer(0, RSI_M30); break; case PERIOD_H1: SetIndexBuffer(0, RSI_H1); break; case PERIOD_H4: SetIndexBuffer(0, RSI_H4); break; case PERIOD_D1: SetIndexBuffer(0, RSI_D1); break; case PERIOD_W1: SetIndexBuffer(0, RSI_W1); break; case PERIOD_MN1: SetIndexBuffer(0, RSI_MN); break; } SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); SetIndexLabel(0,"RSI(" + RSI_per + ")"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int shift, _Bars; static int _counted_bars_W1 = 0, _counted_bars_D1 = 0; //-------------------------------------------------------------------- _Bars = iBars(NULL, PERIOD_W1); shift = _Bars - _counted_bars_W1 - 1; // Индекс первого непосчитанного _counted_bars_W1 = _Bars - 1; while(shift >= 0) { // Цикл по непосчитанным барам RSI_W1[shift] = iRSI(NULL, PERIOD_W1, RSI_per, RSIPriceType, shift); Print(RSI_W1[shift]); shift--; } //------------------------------------------ _Bars = iBars(NULL, PERIOD_D1); shift = _Bars - _counted_bars_D1 - 1; // Индекс первого непосчитанного _counted_bars_D1 = _Bars - 1; while(shift >= 0) { // Цикл по непосчитанным барам RSI_D1[shift] = iRSI(NULL, PERIOD_D1, RSI_per, RSIPriceType, shift); shift--; } //------------------------------------------ return(0); } //+------------------------------------------------------------------+ 有趣的是,如果我们只为指标线留下一个数组,并在任何时候只计算W1,那么在任何(!)时候都能正确计算和绘制。 有什么诀窍?在初始化过程中,不可能根据时间的不同,为指标线采取不同的数组? Boris 2013.12.06 11:25 #3173 satorifx: 下午好。帮助我处理一个奇怪的问题。 重点是:我正在编写一个多时段指标,即一个指标,它在任何时候打开,都会计算并给出所有其他时间的信号。 该指标的基础是RSI。 在init()中,当切换时间框架时,一个单独的数组被放在指标线的对应位置。对于每个人来说,当你在这个或那个时间,线都会被显示出来,但其他时间的计算却没有进行(函数iRSI在计算中愚蠢地追寻零)。也就是说,当前时间被计算出来了,但其他时间却没有。 我正在粘贴代码。 有趣的是,如果我们只为指标线留下一个数组,并在任何时候只计算W1,那么在任何(!)时候都能正确计算和绘制。 有什么诀窍?在初始化过程中,不可能根据时间的不同,为指标线采取不同的数组? 只有W1和D1被读取!你想要什么?为其他人完成它! satorifx 2013.12.06 11:37 #3174 borilunad: 只有W1和D1被读取!你想要什么?为其他人完成它! 这不是问题的关键。我只给出了D1和W1的计算结果,这样代码就不会太长。注意:在每个时间框架的每一个刻度 上,W1的计算值都会被打印出来。因此,如果除W1以外的任何时间被打开,就会打印出零。如果它对W1有效,对其他人也会有效。 Boris 2013.12.06 11:43 #3175 satorifx: 这不是问题的关键。我只给出了D1和W1的计算结果,以便不使代码太长。请注意:在任何时间框架上的每一个刻度,W1的计算值都会被打印出来。因此,如果除W1以外的任何时间被打开,就会打印出零。如果它对W1有效,就会对其他所有的人有效。 对了!我们必须打开周线图才能在其他图表上显示出来! satorifx 2013.12.06 12:00 #3176 borilunad: 正确的!要在其他图表上显示,你必须同时打开周线图! 说实话,我并不理解这种说法。 而且没有必要展示其他东西。如果你运行代码,你会看到它已经显示了我想要的东西:在D1显示图表RSI D1,在W1--图表RSI W1,但同时,如果D1是开放的,那么W1的RSI都是零,如果W1是开放的,那么D1的计算是零。问题是为什么会出现这种情况,以及如何解决这个问题。 satorifx 2013.12.06 13:19 #3177 问题是,索引数组 初始化和调整自己的大小是正确的。 所以当我打开D1 - RSI_D1[]成为索引,一切都很好,但其他数组仍然处于胚胎状态。 我是这样试的:我这样声明所有的数组。 double RSI_W1[] = {0}; 我把init()中的开关改成了这样: case PERIOD_D1: SetIndexBuffer(0, RSI_D1); ArrayResize(RSI_W1, iBars(NULL, PERIOD_W1)); break; 然而,在ArrayResize上GetLastError给出了一个错误。 EURUSD,日线:无法调整数组大小EURUSD,Daily: Some array error 总之,谁能告诉我如何解决这个问题? Artyom Trishkin 2013.12.06 13:27 #3178 satorifx:问题是,索引数组初始化和调整自己的大小是正确的。 所以当我打开D1 - RSI_D1[]成为索引,一切都很好,但其他数组仍然处于胚胎状态。 我是这样试的:我这样声明所有的数组。 我把init()中的开关改成了这样: 然而,在ArrayResize上GetLastError给出了一个错误。 EURUSD,日线:无法调整数组大小EURUSD,Daily: Some array error 总之,谁能告诉我如何解决这个问题? 如果数组是动态的,确保当你向其中写入数值时,你会增加数组的大小 以容纳新的数据。阵列调整大小() satorifx 2013.12.06 13:34 #3179 artmedia70: 如果数组是动态的,在向其写入数值时,一定要增加数组的大小以容纳新的数据。ArrayResize() 我在上面写到: 但ArrayResizeGetLastError 给出了一个错误: EURUSD,Daily: 不能调整数组大小 EURUSD,Daily: 一些数组错误 Boris 2013.12.06 15:55 #3180 satorifx: 这就是我上面写到的。 然而在ArrayResize上GetLastError给出了一个错误。 EURUSD,日线:无法调整数组大小 欧元兑美元,日线:一些阵列错误satorifx: 说实话,我并不理解这句话。 而且没有必要展示其他东西。如果你运行我的代码,你会看到一切都已经显示出来了:RSI D1显示在D1上,RSI W1显示在W1上,但同时,如果D1打开,那么W1的RSI都是空的,如果W1打开,那么D1的RSI都是空的。问题是为什么会出现这种情况,以及如何解决这个问题。 因为缓冲区是单独的,并在你的电话中逐一显示出来! #property indicator_buffers 1 你真的认为我除了下载你的 "代码 "并测试它们之外没有其他更好的事情可做吗?我在帮你提供建议。如果有什么不对,都在上面等着你呢!还是懒惰比你更早出生? 1...311312313314315316317318319320321322323324325...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午。我有一个EA,它在策略测试器中运行良好(它打开订单和一切)。但当我只是把它放在一个图表上时,什么也没有发生。该EA不起作用。我还注意到图表上EA的名字旁边有一个十字。如何解决这个问题?
当你把EA放在图表上时,会打开一个带有参数的窗口,有不同的标签--在第一个标签 "常规 "中,你必须在"允许EA交易"前面打上勾。
如果该EA已经出现在图表上,并且显示为十字形--在工具栏上,点击 "EA "按钮(黄色立方体的帽子上有一个红色的圆圈,圆圈内有一个白色的正方形)。
下午好。帮助我处理一个奇怪的问题。
重点是:我正在编写一个多时段指标,即一个指标,它在任何时候打开,都会计算并给出所有其他时间的信号。
该指标的基础是RSI。
在init()中,当切换时间框架时,一个单独的数组被放在指标线 的对应位置。对于每个人来说,当你在这个或那个时间,线都会被显示出来,但其他时间的计算却没有进行(函数iRSI在计算中愚蠢地追寻零)。也就是说,当前时间被计算出来了,但其他时间却没有。
我正在粘贴代码。
有趣的是,如果我们只为指标线留下一个数组,并在任何时候只计算W1,那么在任何(!)时候都能正确计算和绘制。
有什么诀窍?在初始化过程中,不可能根据时间的不同,为指标线采取不同的数组?
下午好。帮助我处理一个奇怪的问题。
重点是:我正在编写一个多时段指标,即一个指标,它在任何时候打开,都会计算并给出所有其他时间的信号。
该指标的基础是RSI。
在init()中,当切换时间框架时,一个单独的数组被放在指标线的对应位置。对于每个人来说,当你在这个或那个时间,线都会被显示出来,但其他时间的计算却没有进行(函数iRSI在计算中愚蠢地追寻零)。也就是说,当前时间被计算出来了,但其他时间却没有。
我正在粘贴代码。
有趣的是,如果我们只为指标线留下一个数组,并在任何时候只计算W1,那么在任何(!)时候都能正确计算和绘制。
有什么诀窍?在初始化过程中,不可能根据时间的不同,为指标线采取不同的数组?
只有W1和D1被读取!你想要什么?为其他人完成它!
这不是问题的关键。我只给出了D1和W1的计算结果,这样代码就不会太长。注意:在每个时间框架的每一个刻度 上,W1的计算值都会被打印出来。因此,如果除W1以外的任何时间被打开,就会打印出零。如果它对W1有效,对其他人也会有效。
这不是问题的关键。我只给出了D1和W1的计算结果,以便不使代码太长。请注意:在任何时间框架上的每一个刻度,W1的计算值都会被打印出来。因此,如果除W1以外的任何时间被打开,就会打印出零。如果它对W1有效,就会对其他所有的人有效。
正确的!要在其他图表上显示,你必须同时打开周线图!
说实话,我并不理解这种说法。
而且没有必要展示其他东西。如果你运行代码,你会看到它已经显示了我想要的东西:在D1显示图表RSI D1,在W1--图表RSI W1,但同时,如果D1是开放的,那么W1的RSI都是零,如果W1是开放的,那么D1的计算是零。问题是为什么会出现这种情况,以及如何解决这个问题。
问题是,索引数组 初始化和调整自己的大小是正确的。
我把init()中的开关改成了这样:所以当我打开D1 - RSI_D1[]成为索引,一切都很好,但其他数组仍然处于胚胎状态。
我是这样试的:我这样声明所有的数组。
然而,在ArrayResize上GetLastError给出了一个错误。
EURUSD,日线:无法调整数组大小
EURUSD,Daily: Some array error
总之,谁能告诉我如何解决这个问题?
问题是,索引数组初始化和调整自己的大小是正确的。
我把init()中的开关改成了这样:所以当我打开D1 - RSI_D1[]成为索引,一切都很好,但其他数组仍然处于胚胎状态。
我是这样试的:我这样声明所有的数组。
然而,在ArrayResize上GetLastError给出了一个错误。
EURUSD,日线:无法调整数组大小
EURUSD,Daily: Some array error
总之,谁能告诉我如何解决这个问题?
如果数组是动态的,在向其写入数值时,一定要增加数组的大小以容纳新的数据。ArrayResize()
但ArrayResizeGetLastError 给出了一个错误:
EURUSD,Daily: 不能调整数组大小
EURUSD,Daily: 一些数组错误
这就是我上面写到的。
然而在ArrayResize上GetLastError给出了一个错误。
EURUSD,日线:无法调整数组大小
欧元兑美元,日线:一些阵列错误
说实话,我并不理解这句话。
而且没有必要展示其他东西。如果你运行我的代码,你会看到一切都已经显示出来了:RSI D1显示在D1上,RSI W1显示在W1上,但同时,如果D1打开,那么W1的RSI都是空的,如果W1打开,那么D1的RSI都是空的。问题是为什么会出现这种情况,以及如何解决这个问题。
因为缓冲区是单独的,并在你的电话中逐一显示出来!