[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 373 1...366367368369370371372373374375376377378379380...432 新评论 Chiripaha 2013.05.31 04:49 #3721 sv.: 奇怪。,它显示了一切。,也许图表需要垂直压缩,如果通道很宽,放大后可能看不到。 。 调整参数后出现了一些问题。只有一个非常狭窄的范围符合EA的条件。向左走一步,向右走一步--什么都没有。而这些条件并不符合平面的定义。我在4位数的100分时得到一个平局。而且一切都显示得很准确。//+------------------------------------------------------------------+ //| ind_FletChannel_07.mq4 | //| Copyright © 2013, sv. | //+------------------------------------------------------------------+ #property copyright "Copyright © 2013, sv." #property link "7009731@mail.ru" //---- #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 Blue #property indicator_color4 Red #property indicator_width1 3 #property indicator_width2 3 #property indicator_width3 3 #property indicator_width4 3 //---- extern int Distans = 20; // Количество баров для определения канала extern int Channel = 1000; // Размер в пипсах канала extern int ZoneUnSence = 80; // Размер выхода за границы канала, в пипсах extern int PauseBar = 1; // А это по ходу дела - смещение баров,т.е. где нужно считать. //---- double Up[]; double Down[]; double UpSupport[]; double DownResistance[]; double pnt; double high, low; double high_1 = 0, low_1 = 0; bool up_chanel, dn_chanel, FirstChanel; bool DrawChannel = false; int limit, History=0; // 0- все бары int n=0, n_up=0, n_dn=0; int Bar; //+------------------------------------------------------------------+ int init() { //---- // pnt=Point; // if(Digits==5 || Digits==3) pnt*=10; // IndicatorDigits(Digits); // IndicatorBuffers(4); //---- SetIndexBuffer(0,Up); SetIndexStyle(0,DRAW_LINE); SetIndexEmptyValue(0,0.0); SetIndexBuffer(1,Down); SetIndexStyle(1,DRAW_LINE); SetIndexEmptyValue(1,0.0); SetIndexBuffer(2,UpSupport); SetIndexStyle(2,DRAW_LINE); SetIndexEmptyValue(2,0.0); SetIndexBuffer(3,DownResistance); SetIndexStyle(3,DRAW_LINE); SetIndexEmptyValue(3,0.0); //---- return(0); } //+------------------------------------------------------------------+ int start() { limit = Bars-IndicatorCounted()-1; if(limit > 1) limit = Bars-1; if(History!=0 && limit>History) limit = History-1; // кол-во пересчетов по истории Bar = limit; // ------------------------------------------------------------------ for(int i=limit; i>=0; i--) { if(i < Bar-PauseBar) { // если не активна отрисовка канала, ищем канал. if(DrawChannel==false) { // отределяется минимум и максимум на заданном интервале Distans double low = iLow (NULL,0,iLowest (NULL,0,MODE_LOW, Distans,i)); double high = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,Distans,i)); // и если разность между максимумом и минимумом меньше заданной ширины канала Channel if( (high-low) < Channel*Point ) DrawChannel=true; } } // ------------------------------------------------------------------ if(DrawChannel) { // определяются границы канала как максимум и минимум на интервале Distans // отрисовка первоначального отправного канала if(FirstChanel) { Up[i] = high; Down[i] = low; } if(up_chanel) { Up[i] = high; UpSupport[i] = high - Channel*Point; } // отрисовка канала тренда вверх if(dn_chanel) { Down[i] = low; DownResistance[i] = low + Channel*Point; } // отрисовка канала тренда вниз // определяются границы отправного первоначального канала // ------------------------------------------------------------------ if( high_1==0 && low_1==0 ) { FirstChanel=true; high_1=high; low_1=low; } else // если первоначальный отправной канал уже определён и отрисован { if(high > high_1) // если верхняя граница нового канала выше верхней границы предыдущего канала, то это восходящий тренд { up_chanel=true; // активируем флаг отрисовки канала тренда вверх high_1 = high; // и перезаписываем значение low_1 = low; } if(low < low_1) // если нижняя граница нового канала ниже нижней границы предыдущего канала, то это нисходящий тренд { dn_chanel=true; // активируем флаг отрисовки канала тренда вниз high_1=high; // и перезаписываем значение low_1=low; } } // ------------------------------------------------------------------ if(Up[i]!=0 && UpSupport[i]!=0) // пока условие выполняется, границы канала не изменяются { if ((Close[i] > Up[i] + ZoneUnSence*Point) || (Close[i] < UpSupport[i] - ZoneUnSence*Point)) { // если условие не выполняется, флаг сбрасывается - Т.е. если не в границах канала up_chanel=false; dn_chanel=false; FirstChanel=false; DrawChannel=false; } } // ------------------------------------------------------------------ if(Down[i]!=0 && DownResistance[i]!=0) { if ((Close[i] > DownResistance[i]+ZoneUnSence*Point) || (Close[i] < Down[i]-ZoneUnSence*Point)) { // если условие не выполняется, флаг сбрасывается - Т.е. если не в границах канала up_chanel=false; dn_chanel=false; FirstChanel=false; DrawChannel=false; } } if(Up[i]!=0 && Down[i]!=0) { if ((Close[i] > Up[i] + ZoneUnSence*Point) || (Close[i] < Down[i] - ZoneUnSence*Point)) { // если условие не выполняется, флаг сбрасывается up_chanel=false; dn_chanel=false; FirstChanel=false; DrawChannel=false; } } Bar = i; } } // Конец перебора // ------------------------------------------------------------------ return(0); } //+------------------------------------------------------------------+我把它改了一下--我试着去理解它。但它是这样工作的。我用的是H1。糟糕的是,由于参数的选择,我没能在其他TF上显示出来。例如,在5分钟和15分钟。- 人们可以建议,使用这些TFs就有可能实现平坦。(如果有更有经验的人给出了一些想法或指出了错误)。我没有注意到渲染方面的任何问题。在你的指标中,以及在大多数人的情况下,画一次的东西就是正常的指标书写 模板。但是现在发生的事情(如你所说--在当前柱状体上)并不符合这个指标的条件。因此,在目前的酒吧没有问题。 sv_ 2013.05.31 07:47 #3722 Chiripaha:调整参数后出现了一些问题。只有一个非常狭窄的范围符合EA的条件。向左走一步,向右走一步--什么都没有。而这些条件并不符合平面的定义。我在4位数的100分时得到一个平局。一切都画得很清楚。我可能改动了一下--我试着去理解它。但它是这样工作的。我用的是H1。糟糕的是,我没能通过参数选择在其他TFs上显示它。例如,在5分钟和15分钟。- 人们可以建议,使用这些TFs就有可能实现平坦。(如果有更有经验的人给出了一些想法或指出了错误)。 我没有注意到绘画方面的任何问题。你在这个指标中所拥有的,以及绝大多数,都是在渲染曾经的东西;这对于指标编写模板来说是正常的。但是现在发生的事情(如你所说--在当前柱状体上)并不符合这个指标的条件。因此,在目前的酒吧里没有任何问题。 参数PauseBar是将一个通道与另一个通道分开的最小距离,在你的版本中,这个参数应该大于5,然后在不同的其他参数下绘制。 但是,用新条子渲染的问题仍然存在。 Chiripaha 2013.05.31 09:42 #3723 sv.: 参数PauseBar是一个通道与另一个通道之间的最小距离,在你的版本中,这个参数应该大于5,然后它与其他不同的参数一起绘制。 但随着新酒吧的到来,渲染的问题仍然存在。 说实话,我不理解你的指标的工作逻辑(尽管我理解其本质)。但是...看--问题恰恰就在这块。 if(FirstChanel) { Up[i] = high; Down[i] = low; } // отрисовка первоначального отправного канала if(up_chanel) { Up[i] = high; UpSupport[i] = high - Channel*Point; } // отрисовка канала тренда вверх if(dn_chanel) { Down[i] = low; DownResistance[i] = low + Channel*Point; } // отрисовка канала тренда вниз在某些时候,值不会被写入缓冲区,因此它们被分配的值是 "零"。因此,棍子倒了--到了零。如何建立逻辑,添加什么--我无法理解。但数据显然没有被写入,因为你有标志,包括参数DrawChannel=false;因此,这些值不会被分配到缓冲区。- 你需要以某种方式来玩弄这个。 sv_ 2013.05.31 09:51 #3724 Chiripaha:我还不能说得更具体--说实话,我不理解你的指标的逻辑(尽管我确实理解)。但是...看--问题恰恰就在这块。在某些时候,值不会被写入缓冲区,因此它们被分配的值是 "零"。因此,棍子倒了--到了零。如何建立逻辑,添加什么--我无法理解。但数据显然没有被写入,因为你有标志,包括参数因此,这些值不会被分配到缓冲区。- 你需要以某种方式来玩弄这个。 我明白了,所以这是个逻辑问题。我会考虑的。 谢谢你的帮助。P.S. 检查一下,在你的历史上,增加PauseBar参数与另一组其他参数,是否一切都渲染得很好,还是也有问题? Vasiliy Smirnov 2013.05.31 10:06 #3725 如何查看和显示扩展的ascicode表符号? Chiripaha 2013.05.31 10:09 #3726 sv.: 我明白了,所以这是个逻辑问题。我将继续思考。 谢谢你的帮助。P.S. 你至少要检查一下,当用一组不同的其他参数增加PauseBar参数时,你的历史记录上是否能正确显示一切,还是也有问题? 我通过增加PauseBar检查,在1分钟和5分钟时得到了这些棒子。但我想不出如何正确绕过它们。我理解,你需要写上大概(但不是很明显),如果价值 DrawChannel=false;вif(dn_chanel) { Down[i] = low; DownResistance[i] = low + Channel*Point; } // отрисовка канала тренда вниз前一个条形图的值 - 类似这样。if(dn_chanel) { Down[i] = Down[i+1]; DownResistance[i] = DownResistance[i+1]; } // отрисовка канала тренда вниз 但当我尝试这样做时,我的整个指标都 "动 "了起来--因为我不明白其中的逻辑,也不明白应该把它放在哪里,在什么条件下。 Vadim Zhunko 2013.05.31 11:39 #3727 zfs: 如何查看和显示扩展的ascicode表字符? 这被称为ANSI。脚本附后。 附加的文件: ansi.mq4 2 kb [Deleted] 2013.05.31 13:58 #3728 第一次在论坛上,我决定问一个我感兴趣的问题--是否有可能在终端进行修改,在已经开仓的情况下插入我的评论(1次或多次)? 不是在你打开评论时立即进行。而是在你已经打开的情况下--使当前评论出现? Arles 2013.05.31 15:17 #3729 请告知如何解决这个问题:同一个EA在几个图表上,一个开单的信号同时出现在两个图表上,比如说。然而,我们需要第二个订单不要打开。EA有一个检查未平仓订单的功能,但这没有帮助,因为第一个EA可能已经平仓了,第二个也发出了平仓请求。是否有任何可能的解决方案? PapaYozh 2013.05.31 15:46 #3730 Twoberg: 第一次在论坛上,我决定问一个我感兴趣的问题--是否有可能在终端进行这样的修改,在已经打开的位置上插入我的评论(1次或多次)? 不是在你打开评论时立即进行。而是在你已经打开它时--这样就会出现当前的评论? 没有 1...366367368369370371372373374375376377378379380...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
奇怪。
,它显示了一切。
,也许图表需要垂直压缩,如果通道很宽,放大后可能看不到。
。
调整参数后出现了一些问题。只有一个非常狭窄的范围符合EA的条件。向左走一步,向右走一步--什么都没有。而这些条件并不符合平面的定义。我在4位数的100分时得到一个平局。而且一切都显示得很准确。
我把它改了一下--我试着去理解它。但它是这样工作的。我用的是H1。糟糕的是,由于参数的选择,我没能在其他TF上显示出来。例如,在5分钟和15分钟。- 人们可以建议,使用这些TFs就有可能实现平坦。(如果有更有经验的人给出了一些想法或指出了错误)。
我没有注意到渲染方面的任何问题。
在你的指标中,以及在大多数人的情况下,画一次的东西就是正常的指标书写 模板。但是现在发生的事情(如你所说--在当前柱状体上)并不符合这个指标的条件。因此,在目前的酒吧没有问题。
调整参数后出现了一些问题。只有一个非常狭窄的范围符合EA的条件。向左走一步,向右走一步--什么都没有。而这些条件并不符合平面的定义。我在4位数的100分时得到一个平局。一切都画得很清楚。
我可能改动了一下--我试着去理解它。但它是这样工作的。我用的是H1。糟糕的是,我没能通过参数选择在其他TFs上显示它。例如,在5分钟和15分钟。- 人们可以建议,使用这些TFs就有可能实现平坦。(如果有更有经验的人给出了一些想法或指出了错误)。
我没有注意到绘画方面的任何问题。
你在这个指标中所拥有的,以及绝大多数,都是在渲染曾经的东西;这对于指标编写模板来说是正常的。但是现在发生的事情(如你所说--在当前柱状体上)并不符合这个指标的条件。因此,在目前的酒吧里没有任何问题。
参数PauseBar是将一个通道与另一个通道分开的最小距离,在你的版本中,这个参数应该大于5,然后在不同的其他参数下绘制。
但是,用新条子渲染的问题仍然存在。
参数PauseBar是一个通道与另一个通道之间的最小距离,在你的版本中,这个参数应该大于5,然后它与其他不同的参数一起绘制。
但随着新酒吧的到来,渲染的问题仍然存在。
说实话,我不理解你的指标的工作逻辑(尽管我理解其本质)。但是...
看--问题恰恰就在这块。
在某些时候,值不会被写入缓冲区,因此它们被分配的值是 "零"。因此,棍子倒了--到了零。如何建立逻辑,添加什么--我无法理解。但数据显然没有被写入,因为你有标志,包括参数
DrawChannel=false;因此,这些值不会被分配到缓冲区。- 你需要以某种方式来玩弄这个。
我还不能说得更具体--说实话,我不理解你的指标的逻辑(尽管我确实理解)。但是...
看--问题恰恰就在这块。
在某些时候,值不会被写入缓冲区,因此它们被分配的值是 "零"。因此,棍子倒了--到了零。如何建立逻辑,添加什么--我无法理解。但数据显然没有被写入,因为你有标志,包括参数
因此,这些值不会被分配到缓冲区。- 你需要以某种方式来玩弄这个。
我明白了,所以这是个逻辑问题。我会考虑的。
谢谢你的帮助。
P.S.
检查一下,在你的历史上,增加PauseBar参数与另一组其他参数,是否一切都渲染得很好,还是也有问题?
我明白了,所以这是个逻辑问题。我将继续思考。
谢谢你的帮助。
P.S.
你至少要检查一下,当用一组不同的其他参数增加PauseBar参数时,你的历史记录上是否能正确显示一切,还是也有问题?
我通过增加PauseBar检查,在1分钟和5分钟时得到了这些棒子。但我想不出如何正确绕过它们。我理解,你需要写上大概(但不是很明显),如果价值
DrawChannel=false;в
前一个条形图的值 - 类似这样。
但当我尝试这样做时,我的整个指标都 "动 "了起来--因为我不明白其中的逻辑,也不明白应该把它放在哪里,在什么条件下。如何查看和显示扩展的ascicode表字符?
这被称为ANSI。
脚本附后。
第一次在论坛上,我决定问一个我感兴趣的问题--是否有可能在终端进行这样的修改,在已经打开的位置上插入我的评论(1次或多次)? 不是在你打开评论时立即进行。而是在你已经打开它时--这样就会出现当前的评论?
没有