Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел прибыльную стратегию? Поделись ею с миллионами трейдеров в Сигналах!
Andrey Shiryayev
2353
Andrey Shiryayev 2010.06.04 17:54 

Как найти цену открытия последнего ордера?

Сделал вот так, но при закрытии по close cерии ордеров, то цена выходит первого ордера из этой серии, но не последнего...

Есть ли еще способ определения последнего ордера?

for(int i=0;i<OrdersHistoryTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderCloseTime()!=0){ 
priceOpenHistory = OrderOpenPrice();
}}}
Artem Titarenko
3728
Artem Titarenko 2010.06.04 18:01  
Вот функция
//---- Ищет последний ордера и возвращает его цену открытия----//
double Last_OrderOpPr(int type, int mn, string sym)
{
   datetime open_time = 0;
   int ticket;
   for(int i= OrdersTotal()-1;i>=0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(open_time < OrderOpenTime() && OrderMagicNumber() == mn && type == OrderType() && sym==OrderSymbol())
      {
         open_time = OrderOpenTime();
         ticket = OrderTicket() ;
      }
   }
   if(open_time==0) return(-1);
   if( OrderTicket() != ticket ) OrderSelect( ticket , SELECT_BY_TICKET);
   
   return(OrderOpenPrice());
}
Gun:

Как найти цену открытия последнего ордера?

Сделал вот так, но при закрытии по close cерии ордеров, то цена выходит первого ордера из этой серии, но не последнего...

Есть ли еще способ определения последнего ордера?

Andrey Shiryayev
2353
Andrey Shiryayev 2010.06.04 18:06  
StatBars:
Вот функция

StatBars, спасибо!

Может кому еще пригодится, переделал функцию, теперь показывает цену открытия последнего закрытого ордера.

double History_OrderOpPr()
{
   datetime open_time = 0;
   int ticket;
   for(int i= OrdersHistoryTotal()-1;i>=0;i--)
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
     {
       if(open_time < OrderOpenTime() && OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && OrderCloseTime()!=0)
        {
         open_time = OrderOpenTime();
         ticket = OrderTicket() ;
        }
     }
  }  
  if(open_time==0) return(-1);
  if( OrderTicket() != ticket ) OrderSelect( ticket , SELECT_BY_TICKET);
   
return(OrderOpenPrice());}
ivasiv.a
6
ivasiv.a 2012.04.29 14:08  
Спасибо, очень помогло!
Andrey
6
Andrey 2014.03.10 16:38  
Gun:

Как найти цену открытия последнего ордера?

Сделал вот так, но при закрытии по close cерии ордеров, то цена выходит первого ордера из этой серии, но не последнего...

Есть ли еще способ определения последнего ордера?


Подскажите, пожалуйста, если ордер был закрыт в безубыток по стоплоссу, какой функцией следует возвращать из истории цену его закрытия - OrderClosePrice() или OrderStopLoss() ?
Victor Nikolaev
Модератор
14060
Victor Nikolaev 2014.03.10 17:12  
audibmw:

Подскажите, пожалуйста, если ордер был закрыт в безубыток по стоплоссу, какой функцией следует возвращать из истории цену его закрытия - OrderClosePrice() или OrderStopLoss() ?

Для любого рыночного ордера цена закрытия всегда OrderClosePrice(). При чем тут OrderStopLoss() ?
Andrey
6
Andrey 2014.03.10 17:56  
Vinin:

Для любого рыночного ордера цена закрытия всегда OrderClosePrice(). При чем тут OrderStopLoss() ?

Спасибо!
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий