Ордер после ордера

 

Как сделать так чтобы, если ордер закрылся тейкпрофитом, то он не открывался заново...

Например, ордер открывается с ТП 100 при пересечении определенной линии и при достижении 100 пунктов снимается профит и после этого ордер по изначальному условию должен по идее открыться, но этого не надо...

Прикладываю советник строки //Открытие сделки на покупку с TP и //Открытие сделки на продажу с TP

Файлы:
pivot.mq4  4 kb
 

Чтобы сделать так,надо в историю смотреть. И ориентироваться по тому ордеру который интересует.У вас будет Magic и OrderProfit() по ним и принимается решение.

Но,мне кажется Вы не совсем правы с постановкой правил открытия. Если движение по вашему индикатору будет более 100п,Вы возьмёте 100, а дальше ?.

Желаю успехов.

 
zhuki >>:

Чтобы сделать так,надо в историю смотреть. И ориентироваться по тому ордеру который интересует.У вас будет Magic и OrderProfit() по ним и принимается решение.

Но,мне кажется Вы не совсем правы с постановкой правил открытия. Если движение по вашему индикатору будет более 100п,Вы возьмёте 100, а дальше ?.

Желаю успехов.

А дальше стоит еще один ордер.

Смысл следующий:

Если ориентироваться по уровню пивота, то очень хорошая прибыль получается при длинных позициях в несколько дней. А основной проигрыш во внутридневном флете относительно уровня, т.е. когда цена пересекает пивот несколько раз в течении дня. Таким образом я решил что если каждый раз открывать 2 сделки: первая с ТП на 200 и СЛ на 100, а вторая только со СЛ 100, то потери от 2 неверных сделок будут перекрываться ТП от одной верной, а длинная сделка останется на следующий день. При наступлении следующего дня СЛ по длинной сделке двигается на уровень пивота.

Если есть в этом что-то интересное то пиши на мыло lexxsakhalin@gmail.com

 
Мне не интересно. Извини.Если в этом у тебя есть интерес,то просто опиши в советнике и попробуй в тестере всё сразу станет ясно.
 
zhuki >>:
Мне не интересно. Извини.Если в этом у тебя есть интерес,то просто опиши в советнике и попробуй в тестере всё сразу станет ясно.

НУ вот именно что не могу это прописать как надо. Попробую по твоему совету из истории. Спасибо.

 
LexxSakhalin писал(а) >>

Как сделать так чтобы, если ордер закрылся тейкпрофитом, то он не открывался заново...

https://www.mql5.com/ru/forum/107476/page21#79649 isCloseLastPosByStop b-Positions.mqh 20.05.2008 Флаг закрытия последней позиции по стопу
https://www.mql5.com/ru/forum/107476/page21#79908 isCloseLastPosByTake b-Positions.mqh 21.05.2008 Флаг закрытия последней позиции по тейку

 
SergNF >>:

https://www.mql5.com/ru/forum/107476/page21#79649 isCloseLastPosByStop b-Positions.mqh 20.05.2008 Флаг закрытия последней позиции по стопу
https://www.mql5.com/ru/forum/107476/page21#79908 isCloseLastPosByTake b-Positions.mqh 21.05.2008 Флаг закрытия последней позиции по тейку

Спасибо.

А как можно его в советник засунуть:)

 
LexxSakhalin писал(а) >>

Спасибо.

А как можно его в советник засунуть:)

Ххха :)

Как вариант

...
if(isCloseLastPosByTake(Symbol(), -1, -1) == false)
{
if (Ask > Iduk_Pivot_Points && Otkritii_BUY == 0 && Ask > ST_induk){
   OrderSend (Symbol(),OP_BUY,Lot,Ask,0,Bid-SL*Point,0,"Lexx",111,0,Green);//Открытие сделки на покупку
}
if (Bid < Iduk_Pivot_Points && Otkritii_SELL == 0 && Bid < ST_induk) {
   OrderSend (Symbol(),OP_SELL,Lot,Bid,0,Ask+SL*Point,0,"Lexx",222,0,Red);//Открытие сделки на продажу
}
if (Ask > Iduk_Pivot_Points && Otkritii_BUY_TP == 0 && Ask > ST_induk){
   OrderSend (Symbol(),OP_BUY,Lot,Ask,0,Bid-SL*Point,Ask+TP*Point,"Lexx",333,0,Green);//Открытие сделки на покупку с TP
   Otkritii_BUY_TP = 1;
   Otkritii_SELL_TP = 0;
}
if (Bid < Iduk_Pivot_Points && Otkritii_SELL_TP == 0 && Bid < ST_induk){
   OrderSend (Symbol(),OP_SELL,Lot,Bid,0,Ask+SL*Point,Bid-TP*Point,"Lexx",444,0,Red);//Открытие сделки на продажу с TP
   Otkritii_BUY_TP = 0;
   Otkritii_SELL_TP = 1;
}
}
...

"Обрамите" Ваш блок открытия проверкой на причину закрытия последнего ордера.

Если вопрос

А как можно его в советник засунуть

про собственно подключение функции, то простейший вариант - вставьте код "из ссылок" в конец Вашего советника, соблюдая "целостность всех скобок".

 

k=OrdersHistoryTotal();// выбор ордера закрытого ТП

for(i=0; i<k; i++){

if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){

if (NormalizeDouble(OrderClosePrice(), 5)==NormalizeDouble(OrderTakeProfit(), 5)){

if (OrderType()==OP_BUY) PosTPClose=1;

if (OrderType()==OP_SELL) PosTPClose=2;

i=k;

Print(OrdersHistoryTotal(), " ", PosTPClose, " ",OrderClosePrice(), " ",OrderTakeProfit(), " ",OrderTicket());

}

}

}



Блин в чем ошибся?

 
SergNF >>:

Ххха :)

Как вариант

"Обрамите" Ваш блок открытия проверкой на причину закрытия последнего ордера.

Если вопрос

про собственно подключение функции, то простейший вариант - вставьте код "из ссылок" в конец Вашего советника, соблюдая "целостность всех скобок".

От туда копирую и пишет ошибки!!!

 
LexxSakhalin писал(а) >>

От туда копирую и пишет ошибки!!!

Ошибок компиляции нет.
Файлы:
pivot_1.mq4  6 kb