стакан

 

Интересно, а существует ли возможность узнать какой я в очереди в стакане на текущем банде ?

 

Обычно ваша заявка показывается в стакане и явно учитывается в спросе-предложении. В МТ не знаю, т.к. биржевого счета с МТ не имею.

Стопы - эт другой вопрос, но тоже показывается.

 
Yuriy Asaulenko:
Обычно ваша заявка показывается в стакане. В МТ не знаю, т.к. биржевого счета с МТ не имею.


это понятно что она показывается в стакане, но если я уже не первый, то какой я ?

 
Alexey Oreshkin:


это понятно что она показывается в стакане, но если я уже не первый, то какой я ?

Если по этой цене, то этой инфы нет. Но если вы встали первый по этой цене, то и будете первым по исполнению. Неоднократно проверено.))

А если не первый, то если цена пойдет дальше, то по любому ваша заявка исполнится.

 
Alexey Oreshkin:

Интересно, а существует ли возможность узнать какой я в очереди в стакане на текущем банде ?


Конечно можно

Если Вы "стоите" в стакане, то знаете свою цену и направдение ордера.

Узнать какой Вы в очереди не проблема.

 
prostotrader:


Конечно можно

Если Вы "стоите" в стакане, то знаете свою цену и направдение ордера.

Узнать какой Вы в очереди не проблема.


узнать не проблема? интересно как?

если только отслеживать с момента установки, а как узнать без слежения ?

 
Alexey Oreshkin:


узнать не проблема? интересно как?

если только отслеживать с момента установки, а как узнать без слежения ?

//+------------------------------------------------------------------+
//|                                                   TestStakan.mq5 |
//|                                      Copyright 2017 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
double my_price;
MqlBookInfo book_info[];
ulong my_ticket;

int GetPosMyOrder(const double a_price, int & direct)
{
  direct = 0;
  int sell_pos = 0;
  int buy_pos = 0;
  int price_pos = 0;
  bool is_first = true;
  if(MarketBookGet(Symbol(), book_info))//getBook )
  {
    int size = ArraySize(book_info);
    if(size > 0)
    {
      for(int i = 0; i < size; i++)
      {
        if(book_info[i].price == a_price)
        {
          price_pos = i;
        }
        if((book_info[i].type == BOOK_TYPE_BUY) && is_first)
        {
          is_first = false;
          buy_pos = i;
          sell_pos = i - 1;
        }
      }
    }
    switch(direct)
    {
      case 1:
        return(sell_pos - price_pos + 1);
      break;
        return(buy_pos - price_pos + 1);
      case 2:
      break;
    }
  }
  return(price_pos);
}
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
    if(symbol == Symbol())
    {
      if(OrderSelect(my_ticket))
      {
        int dir; //0 - no order; 1 sell order; buy order
        int pos = GetPosMyOrder(my_price, dir);
      }  
    }     
  }
//+------------------------------------------------------------------+
 
prostotrader:


это мы узнаем на каком уровне мы стоим.
Я же говорю про позицию внутри уровня

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

 
Alexey Oreshkin:


это мы узнаем на каком уровне мы стоим.
Я же говорю про позицию внутри уровня

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


Если Вы хотите узнать какой Вы по счёту в ценовом уровне, то этого сделать нельзя.

Вернее можно, но не точно, потому что если Вы выставляете ордер по уже существующей цене,

то Вы можете знать, что Вы не первый, а если нет такой цены, то Вы первый.

 
prostotrader:

Если Вы хотите узнать какой Вы по счёту в ценовом уровне, то этого сделать нельзя.

это можно отслеживать с момента установки. я просто подумал что можно по запросу взять и узнать именно в тот момент когда это необходимо
 
Alexey Oreshkin:

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

Нет, нельзя.