Учет ордеров - страница 2

 
Renat Akhtyamov:
а если проверить?

Как вариант:) Не пробовал...

 
Maksim Neimerik:

Мне нужно именно 5 последних ордеров... На сколько я знаю такой код не гарантирует выбор именно последних ордеров, иначе зачем при простом выборе одного последнего ордера ордера используют переменную типа datetime?

Вот к примеру выбор цены последнего ордера:


 

  

double LastPrice(int mode,int magic)
{
   double res=0;
   datetime t=0;
   for(int i=OrdersTotal()-5;i<OrdersTotal();i++)
   {
      if(OrderSelect(i,SELECT_BY_POS))
      {
         if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic)
         {
            if(OrderType()==mode||mode==-1)
            {
               res=OrderOpenPrice();
               t=OrderOpenTime();
            }
         }
      }
   }
   return(res);
}

так будет читать 5 последних ордеров  данные можно в масив загнать всех пяти 

 
Aleksandr Egorov:

  

так будет читать 5 последних ордеров  данные можно в масив загнать всех пяти 

можно. но есть но...

работа массивами вроде бы и работает, а вроде бы и нет

не на каждом тике почему то...

интересно, а это к чему?  (уже не 5 последних):

if(OrderType()==mode||mode==-1)
 
Renat Akhtyamov:

можно. но есть но...

работа массивами вроде бы и работает, а вроде бы и нет

не на каждом тике почему то...

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

 
Maksim Neimerik:

Мне нужно именно 5 последних ордеров... На сколько я знаю такой код не гарантирует выбор именно последних ордеров, иначе зачем при простом выборе одного последнего ордера ордера используют переменную типа datetime?

Вот к примеру выбор цены последнего ордера:

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

Далее, отсортировать по первому измерению(времени) в порядке убывания и использовать хоть последние 25.

Ну или сортировка по тикету, а не времени - зависит от задачи

 
Renat Akhtyamov:

можно. но есть но...

работа массивами вроде бы и работает, а вроде бы и нет

не на каждом тике почему то...

интересно, а это к чему?  (уже не 5 последних):

да это по сути не нужно если магик и символ есть если нужны и бай и сел если пять бай то нужно указывать 

 
Renat Akhtyamov:

можно. но есть но...

работа массивами вроде бы и работает, а вроде бы и нет

не на каждом тике почему то...

интересно, а это к чему?  (уже не 5 последних):

Это для выбора отдельно бай или селл или всех вместе, это к теме не относится, просто готовый код был вот я его и вставил

 
Aleksandr Egorov:

да это по сути не нужно если магик и символ есть если нужны и бай и сел если пять бай то нужно указывать 

кстати, сам не проверял, но вижу, что у мну 5 первых. а у Вас 5 последних

а остальное - 5 последних баек или отложек или еще как - эт дело хозяйское

 
Vitaly Muzichenko:

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

Далее, отсортировать по первому измерению(времени) в порядке убывания и использовать хоть последние 25.

Ну или сортировка по тикету, а не времени - зависит от задачи

А вот это действительно простое решение! Пожалуй стоит попробовать... 

К стати, по поводу тикетов - кто нибудь ведет учет ордеров по тикету? Где-то раньше слишал что по тикету ненадежно делать, я тогда на слово поверил, проверять не стал, так и не пользуюсь тикетами (только в исключительно редких случаях)

 
Maksim Neimerik:

А вот это действительно простое решение! Пожалуй стоит попробовать... 

К стати, по поводу тикетов - кто нибудь ведет учет ордеров по тикету? Где-то раньше слишал что по тикету ненадежно делать, я тогда на слово поверил, проверять не стал, так и не пользуюсь тикетами (только в исключительно редких случаях)

по тикету - самое надежное решение

но зависит от стратегии, нужны или нет