Сдвинуть StopLoss на x пунктов в открытой позиции.

 

Всех приветствую!

Прошу помочь новичку.

Вопрос такой: есть открытая позиция. Строкой ниже, например, я могу выставить стоплосс на уровень открытия позиции:

        if(!trade.PositionModify(_Symbol, PositionGetDouble(POSITION_PRICE_OPEN),0))
        {
           Alert("Ошибка изменения позиции:",GetLastError(),"!!");
           return;
        }

А как я могу теперь этот стоплосс перетащить на три пункта выше?

Спасибо.

 
canonier:

Всех приветствую!

Прошу помочь новичку.

Вопрос такой: есть открытая позиция. Строкой ниже, например, я могу выставить стоплосс на уровень открытия позиции:

А как я могу теперь этот стоплосс перетащить на три пункта выше?

Спасибо.

trade.PositionModify(_Symbol, PositionGetDouble(POSITION_PRICE_OPEN) + 3 * Point(),0)
Если советник запущен на том же символе, что и модифицируемая позиция.
 

Будьте внимательны при вызове PositionModify. Позицию можно изменить по выбранному символу (применимо для неттинг счетов):

bool  PositionModify( 
   const string  symbol,     // символ 
   double        sl,         // цена Stop Loss  
   double        tp          // цена Take Profit 
   )

, а можно по выбранному тикету позиции (более универсальный метод, применим и для неттинг и для хедж счетов):

bool  PositionModify( 
   const ulong   ticket,     // тикет позиции 
   double        sl,         // цена Stop Loss  
   double        tp          // цена Take Profit 
   )
 
canonier:

Всех приветствую!

Прошу помочь новичку.

Вопрос такой: есть открытая позиция. Строкой ниже, например, я могу выставить стоплосс на уровень открытия позиции:

А как я могу теперь этот стоплосс перетащить на три пункта выше?

Спасибо.

Имейте в виду, что это не всегда будет работать: иногда ближе определённого расстояния от текущей цены стоп не подвинется. Зависит от дилера, от типа счёта, от текущего уровня ликвидности и др. факторов. В программе все случаи учесть невозможно. 
 

Друзья, спасибо большое. 

Вы очень помогли.