Вдимо мне никто отвечать не собирается,хотя я задал вопрос по 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.
врубаешься?

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мне надо чтобы при отскоке от низа канала открывался бай,от верха селл.На случай пробоя границы канала и ухода цены дальше будет трейлинг(с этим я сам справлюсь).
Так вот я не пойму как сделать границы канала,так сказать,чувствительными.
Если можно то опишите работу кода подробными комментариями.
вот код индюка:
//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+