KimIV的有用功能 - 页 99

 
TarasBY писал(а)>>
我已经注意到TypeNearPos函数在满足条件时的一个错误。
市场价格=未平仓订单价格,那么这个订单就不会被这个函数考虑在内。
我不得不在代码中添加这个简单的条件。
这个条件在TypeNearPos()和PriceOpenNearPos()等函数中也会有用。


在条件中,将ti 与零进行比较更有意义,而不是pp

if (ti==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
}
但如果我们让条件保持不变,我们最好用break 而不是return 退出循环。
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
   if (pp==0)
      break;
}
 
你好,伊戈尔。 你好,各位。
伊戈尔,我是作为一个优秀的专家和你所在领域的专家对你说的。
我的问题的实质如下。
我在我的TS中使用五个指标,其中一个是TRAP。它很好地消除了所有不必要的 "噪音",但它也同样 "好"。它有三个绘图缓冲区:0用于信号线,1和2用于双色图。当TRAP信号线向下并在其下方有一个红色图表时--卖出。当信号线上升且图表为蓝色时--买入。
手动操作,一切正常,但当我试图从专家顾问那里获得其数据时,折磨就开始了,这种情况一直持续到今天。
该设计...
   TRAPsig0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,0);  // Сигнальная линия,       0 бар
   TRAPsig1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,1);  // Сигнальная линия,       1 бар
   TRAPmnR0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,0);  // Буфер цвета 1 (красн.), 0 бар
   TRAPmnR1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,1);  // Буфер цвета 1 (красн.), 1 бар
   TRAPmnB0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,0);  // Буфер цвета 2 (син.),   0 бар
   TRAPmnB1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,1);  // Буфер цвета 2 (син.),   1 бар
...读取数据,但数据完全不是我所期望的那样。试图从所有三个缓冲区读取0-7条的数据并在屏幕上显示。零条包含2147483647,第一条是价格,第二条是价格,第三条是价格,第四条还是2147483647等等。同时,所有的数据并不是逐点变化的,但当它变化时。有时经过一段相当长的时间,有时又很快,而且它们根据一个我尚未理解的奇怪系统改变其内容。如果首先那里有一个价格,那么它可能是这个神秘的数字,或者它可能是一个不同的价格或相同的价格(虽然线上升,价格应该上升),等等......
简而言之,我对这些读物进行系统化的所有尝试都导致了这样一个事实:我的大脑应该已经被赋予了sanitarians.... 的系统化。:)
我在呼救......。伊戈尔,也许你能告诉我如何战胜这个指标?
或者任何已经在处理这个问题的大师们。
请帮助,所有的工作费用...
提前感谢!
指标本身就在拖车里。
附加的文件:
trap.ex4  4 kb
 
请勿使用零栏....它只是在形成,这意味着指标值随着每一次嘀嗒 声而变化....
 

顺便说一句--伊戈尔本人在哪里?他已经有四五个月没有被人看到了!

 
kharko >>:
не используйте нулевой бар.... Он только формируется, а значит, значение индикатора меняется с каждым тиком....

问题是,我已经试过第一、第二、第三和......。在每个缓冲区都试过每条杠,最多7条。信号不对。显示价格的信号,比如说,1.3478,可能会一直保持到价格下一次上涨到1.3478的水平,然后急剧变成1.3486,或者价格消失,出现一个未知的值2147483647,它可能在所有三个缓冲区的读数中从一个柱子游移到另一个柱子...上帝保佑...它可能存在于不同条形的三个缓冲区的读数中,当你改变一个条形的价格时,这个读数会移动到另一个条形或缓冲区...我无法战胜他的逻辑......。

 
artmedia70 >>:

вообще цена пропадает и появляется непонятное значение 2147483647...

2147483647是0x7FFFFFFFF。

用于表示参数和变量的状态的特殊常数。可以是以下值。

EMPTY_VALUE 0x7FFFFFFFF 默认值,指向一个空值的指针。用于自定义指标
 
artmedia70 писал(а)>>

问题是,我已经试过第一、第二、第三和......。在每个缓冲区都试过每条杠,最多7条。信号不对。显示价格的信号,比如说,1.3478,可能会一直保持到价格下一次上涨到1.3478的水平,然后急剧变成1.3486,或者价格消失,出现一个未知的值2147483647,它可能在所有三个缓冲区的读数中从一个柱子游移到另一个柱子...上帝保佑...它可能存在于不同条形的三个缓冲区的读数中,当你改变一个条形的价格时,这个读数会移动到另一个条形或缓冲区...我无法战胜他的逻辑......。


打开数据窗口(Ctrl+D),将鼠标移到你的指标上,看看它有哪些条形图。它不在零条上计算,关于EMPTY_VALUE你已经写过了。

 
PapaYozh >>:


откройте окно данных (Ctrl+D), поводите мышью по своему индикатору и посмотрите что он имеет в барах. На нулевом баре он не рассчитан, а про EMPTY_VALUE Вам уже написали.

哦,该死!你要活到老,学到老!我曾经做了一个非交易性的专家顾问,将这些数据绘制在图表上......。:)))一个茶壶,它也是沸腾的热......:)
这一切都变得如此简单... 非常感谢!!!!

 
PapaYozh >>:


Логичнее, в условии сравнивать с нулём не pp, a ti

Если же оставить условие как есть, то из цикла лучше выходить не по return, а по break.

解释一下原因。"用break 而不是return 退出循环更好。" ? ?
我通过return 退出一个函数,但我只通过 break 退出一个循环。有什么诀窍?

 

帮助,请...已经尝试了所有的方法...我不能....=( 我需要找到指标的交叉 点...所有给我的提示都没有帮助我......=(也许你可以帮助......)

附加的文件:
lastlast.mq4  13 kb