Фиксация прибыли

 

Добрый день. Вопросик по закрытию ордера на безубыточном уровне : Допустим купил советник лот,выставил TP и SL до тейка чуточку не дотянул и полетел вниз, надо остановить его на уровне покупки ну и плюс спред. Наваял кодик (точнее изменил) но что-то он не пашет огромная прозьба указать на ошибку:)))

if(OrderType()==OP_BUY)
{
if(Bid>OrderOpenPrice( ) ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
break;
}
if(OrderType()==OP_SELL)
{
if(Ask<OrderOpenPrice( )) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
break;
}


И еще до кучи- как в момент активного роста или падения фиксировать прибыль на пике волны не используя тейк как на рисунке

Заранее благодарен

 
gerber писал(а) >>

Добрый день. Вопросик по закрытию ордера на безубыточном уровне : Допустим купил советник лот,выставил TP и SL до тейка чуточку не дотянул и полетел вниз, надо остановить его на уровне покупки ну и плюс спред. Наваял кодик (точнее изменил) но что-то он не пашет огромная прозьба указать на ошибку:)))

if(OrderType()==OP_BUY)
{
if(Bid>OrderOpenPrice( ) ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
break;
}
if(OrderType()==OP_SELL)
{
if(Ask<OrderOpenPrice( )) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
break;
}

И еще до кучи- как в момент активного роста или падения фиксировать прибыль на пике волны не используя тейк как на рисунке

Заранее благодарен

https://www.mql5.com/go?link=http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=61 - советник устанавливающий позиции в безубыток

 
khorosh >>:

https://www.mql5.com/go?link=http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=61 - советник устанавливающий позиции в безубыток

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

 
gerber >>:

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

Ауууууууу!!!!!!!!!!!!!!!!!!!!

 

код у вас верный. но этого мало, чтоб сказать что у вас не так. покажите его весь, от начала с OrderSelect  . Только  воспользуйтесь кнопкой "SRC".

 
sergeev >>:

код у вас верный. но этого мало, чтоб сказать что у вас не так. покажите его весь, от начала с OrderSelect . Только воспользуйтесь кнопкой "SRC".

Это штатный советник Moving Average

 
Код добавить???
 
Ауууу!!! господа программеры .
 

вариантов решения множество, в зависимости от конкретной системы.

как делаю я : определяю (опытным путем для каждой пары и каждого таймфрейма) минимальный уровень, при котором стоплосс должен перейти в безубыток, скажем 30 пунктов, потом пишем:


extern int breakeven_level = 30;

if(OrderSelect(ordticket,SELECT_BY_TICKET))

{
if(OrderType() == OP_BUY)
{
if((Close[0] - OrderOpenPrice()) / Point >= breakeven_level)
{
OrderModify(ordticket,OrderOpenPrice(),OrderOpenPrice()+1*Point,OrderTakeProfit(),0,0);

...
}
}

}


в данном случае стоплосс перемещается на уровень открытия ордера плюс один пункт

Причина обращения: