Новичек на mql

 
Ребята подскажите пожалуйста. Как сравнить high у 3-х предидущих баров и low у тех же предидущих 3-х баров одновременно? И если мое условие верно открыть ордер отложенный ордер buylimit или selllimit. При этом надо сравнивать постоянно. Если опять условие верно то старый buylimit или selllimit закрыть, а новый открыть. Заранее благодарен.
 
Сравнить с чем?
 
sergey_r:
Ребята подскажите пожалуйста. Как сравнить high у 3-х предидущих баров и low у тех же предидущих 3-х баров одновременно? И если мое условие верно открыть ордер отложенный ордер buylimit или selllimit. При этом надо сравнивать постоянно. Если опять условие верно то старый buylimit или selllimit закрыть, а новый открыть. Заранее благодарен.

High всегда больше Low
 
Vinin:

High всегда больше Low

Но High 1 бара не всегда больше Low 3 бара.:)
 
sergey_r: Как сравнить high у 3-х предидущих баров и low у тех же предидущих 3-х баров одновременно?

Что значит "одновременно"? Без ясного условия сравнения говорить не о чем. Покажите на картинке или напишите так.

P.S. Вы когда-нибудь на чем-нибудь что-нибудь писали? Я имею в виду программы на языке программирования (желательно С, но можно и другие - Бейсик или Паскаль/Делфи).

 
Vinin:

High всегда больше Low

Остроумно :))) и главное как всегда коротко и ясно :)

 


Всем спасибо хотел сделать Так:

if(order_opened){return(0);}
cena_buy=Low[2]-0.0008; // расчет цены входа в рынок
tp_buy= cena_buy+0.0015; // расчет tp для этой цены
sl_buy=0; // без sl

//Если High[2] больше High[3] и High[1] больше High[2]

if (High[2]>High[3] && High[1]>High[2] )
{
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); //тогда открываем ордер buylimit
order_opened = true; // если ордер сработал больше не открываем
}
return(0);
}

Знаю не рационально.

Теперь Другой вопрос как сделать так чтобы после того как ордер отработал открывался новый по этому же условию

 
sergey_r:


Всем спасибо хотел сделать Так:

if(order_opened){return(0);}
cena_buy=Low[2]-0.0008; // расчет цены входа в рынок
tp_buy= cena_buy+0.0015; // расчет tp для этой цены
sl_buy=0; // без sl

//Если High[2] больше High[3] и High[1] больше High[2]

if (High[2]>High[3] && High[1]>High[2] )
{
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); //тогда открываем ордер buylimit
order_opened = true; // если ордер сработал больше не открываем
}
return(0);
}

Знаю не рационально.

Теперь Другой вопрос как сделать так чтобы после того как ордер отработал открывался новый по этому же условию


if(OrdersTotal() == 0)


OrderSend(......);

Конечно, между этими строчками вставьте условия входа. А вообще. как открылся отработанный ордер, также откроется новый, раз нет ордеров.

Так что и добавлять не нужно.

 

Если без условия ставлю штампует постоянно. Как только условие High[2]>High[3] && High[1]>High[2] срабатывает сразу открывает много ордеров. Как использовать здесь

cena_buy=Low[2]-0.0008; // расчет цены входа в рынок
tp_buy= cena_buy+0.0015; // расчет tp для этой цены
sl_buy=0; // без sl

//Если High[2] больше High[3] и High[1] больше High[2]

if (High[2]>High[3] && High[1]>High[2] )
{
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); //тогда открываем ордер buylimit
order_opened = true; // если ордер сработал больше не открываем
}

 
все получилось Всем спасибо можно закрывать мою тему
 
Vinin:

High всегда больше Low
Не всегда. Иногда они равны.