Неотложный вопрос

 

При написании советника и использовании функции OrderClose(),какаю цену надо

использовать Bid или Ask?Может при закрытии разных ордеров разную?Пробовал и Bid и Ask

все равно эта скотина(мой советник) выдает ошибку 129(неправильная цена) А может дело

не в Bid и Ask!Подскажите пожалуйста возможные варианты

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

 

Нужно запомнить!

Открытие: Buy - Ask, Sell - Bid

Закрытие: наоборот (так как закрываем обратной операции)

 
Itso:

Нужно запомнить!

Открытие: Buy - Ask, Sell - Bid

Закрытие: наоборот (так как закрываем обратной операции)

Спасибо
 
David61:

При написании советника и использовании функции OrderClose(),какаю цену надо

использовать Bid или Ask?Может при закрытии разных ордеров разную?Пробовал и Bid и Ask

все равно эта скотина(мой советник) выдает ошибку 129(неправильная цена) А может дело

не в Bid и Ask!Подскажите пожалуйста возможные варианты

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


OrderClosePrice() !!! И не надо задумываться какой тип ордера ;-)
 

Сделай обновление котировок и так же увеличь максимальное отклонение от цены как аргумент в OrderClose

RefreshRates()

OrderClose(...)

 
PSmith:
OrderClosePrice() !!! И не надо задумываться какой тип ордера ;-)
Я так понимаю, что это шутка... 
Хотя было бы здорово иметь функцию, которая бы позволяла просто открыть/закрыть ордер  по цене рынка без лишних вопросов.

 
timbo:
PSmith:
OrderClosePrice() !!! И не надо задумываться какой тип ордера ;-)
Я так понимаю, что это шутка...
Хотя было бы здорово иметь функцию, которая бы позволяла просто открыть/закрыть ордер по цене рынка без лишних вопросов.

Да нет, это не шутка. Можете посмотреть в статье "Метод хэджирования. ..." - какая-то женщина из Въетнама написала....

С уважением - С.Д.
 
Да, функция OrderCloseprice() действительно содержит цену, по которой можно закрыть открытый ордер. Но эта цена может устаревать.
 
Rosh:
Да, функция OrderCloseprice() действительно содержит цену, по которой можно закрыть открытый ордер. Но эта цена может устаревать.
Однако... Читая доки, уж не подумал бы, что так тоже можно прочесть.
Тогда вопрос, что значит "устареть"? Оно живет и умирает по тем же правилам что и  Bid/Ask?
 
Я сам об этом узнал не так давно, так как всегда получал значения допустимой цены закрытия самомстоятельно. В это ветке 'Применение функция OrderClosePrice() к открытым ордерам' я в первый раз прочитал об этом.
 
Rosh:
Я сам об этом узнал не так давно, так как всегда получал значения допустимой цены закрытия самомстоятельно. В это ветке 'Применение функция OrderClosePrice() к открытым ордерам' я в первый раз прочитал об этом.


А кто-нибудь сравнивал быстродействие таких конструкций

double closePrice;
 
if(OrderSelect(nTicket,SELECT_BY_TICKET)) {
  //...
  //...
  //...
  // Обновляем кэшированную информацию
  RefreshRates();
  switch (OrderType())
  {
    case OP_BUY:
        closePrice = Bid;
        break;
 
    case OP_SELL:
        closePrice = Ask;
        break;
 
    default:
        return;
  }
 
  closePrice = NormalizeDouble(closePrice, Digits);
 
  OrderClose(nTicket, OrderLots(), closePrice, 1);
}
return;
и

if(OrderSelect(nTicket,SELECT_BY_TICKET)){
  //...
  //...
  //...
  //Второй Select для обновления параметров ордера
  if(OrderSelect(nTicket,SELECT_BY_TICKET)) OrderClose(nTicket, OrderLots(), OrderClosePrice(), 1); 
}
return;

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