как сделать границы канала чувствительными?

 
Я тут состряпал индикатор,как получилось так получилось,конечно наверное можно и проще.
Мне надо чтобы при отскоке от низа канала открывался бай,от верха селл.На случай пробоя границы канала и ухода цены дальше будет трейлинг(с этим я сам справлюсь).
Так вот я не пойму как сделать границы канала,так сказать,чувствительными.
Если можно то опишите работу кода подробными комментариями.

вот код индюка:

//+------------------------------------------------------------------+
//| bar1. mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
ObjectDelete("1");

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("1");

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int minindex2=Lowest(NULL,0,MODE_LOW,100,50);
int minindex1=Lowest(NULL,0,MODE_LOW,20,2);
double minbar2=iLow(NULL,0,minindex2);
double minbar1=iLow(NULL,0,minindex1);
int maxindex=Highest(NULL,0,MODE_HIGH,50,2);
double maxbar=iHigh(NULL,0,maxindex);

//----

ObjectCreate("1",OBJ_CHANNEL,0,Time[minindex2],minbar2,Time[minindex1], minbar1,Time[maxindex],maxbar);
ObjectSet("1",OBJPROP_COLOR,Yellow) ;



//----
return(0);
}
//+------------------------------------------------------------------+
 

Вдимо мне никто отвечать не собирается,хотя я задал вопрос по MQL4.
Если использовать функцию ObjectGetValueByShift("1",0),то она будет возвращать цену только по линии у которой 2 координаты(в моем случае это нижняя линия).
К примеру вот так if(Bid-ObjectGetValueByShift("1",0)>=10*Point ){OrderSend. ...}
Так вот я спрашиваю,как отслеживать цену по второй линии равноудаленного канала стандартной функцией.Если это не возможно без дополнительных вычислений,то так и скажите.

 
Во-первых, большинство (как мне кажется) даже и не смотрит код без оформления. Глазки тупятся.
Во-вторых - потому и не отвечают.

Это не брюзжание, просто мысли.
 
А что тут оформлять?
Это пример,простейший код только для того чтобы нарисовать равноудаленный канал и все.
Задам вопрос по другому, как определять значение цены в нужных мне точках на обоих линиях равноудаленного канала?
 
Да забудь про равноудаленный канал (если там нет того, что тебе нужно) и рисуй две трендовые линии. А для трендовых линий бетон есть такая возможность.
 
 
 
 
vizirn писал (а):
А что тут оформлять?
Это пример,простейший код только для того чтобы нарисовать равноудаленный канал и все.
Задам вопрос по другому, как определять значение цены в нужных мне точках на обоих линиях равноудаленного канала?

Ну вообще- то вам сделали замечание по делу! И действительно не мешало бы воспользоваться кнопочкой «MQL» в редакторе сообщений.

А по поводу Вашего вопроса то там ничего сложного нет. В MQL есть доступ к каждому бару, где можно посмотреть все его характеристики, соответственно указывайте определенный номер периода и получаете характеристики бара и анализируйте нездоровье.
 
vizirn писал (а):
Задам вопрос по другому, как определять значение цены в нужных мне точках на обоих линиях равноудаленного канала?

вместо ObjectGetValueByShift использую такое:

double ray_value(double B1, double P1, double B2, double P2, double AAA){return(P1+( AAA -B1)*(P2-P1)/(B2-B1));}
где б1 и п1 - бар и цена т.1 на линии,
а б2 и п2 - бар и цена т.2 на линии..
ааа - номер нужного бара....



а в твоем случае цена на верхней границе = цене на нижней + ширина канала.

а ширина канала это maxbar минус значение нижней линии на баре maxindex.

врубаешься?
Причина обращения: