Поиск крупных сайзов мт5

 

Здравствуйте.

Есть ли возможность реализовать на мт5 поиск крупных сайзов в стакане акций? Может есть наработки? Кто-то может помочь реализовать идею? И насколько стакан мт5 актуален в этом плане?

 
prog_ass:

Здравствуйте.

Есть ли возможность реализовать на мт5 поиск крупных сайзов в стакане акций? Может есть наработки? Кто-то может помочь реализовать идею? И насколько стакан мт5 актуален в этом плане?

Доброе утро!
Возможно Вы это имели в виду, даю Вам ссылку на свою давнюю работу:
https://www.facebook.com/trademts/photos/a.856326097753359/973030389416262/

Правда, там был фьючерс на доллар/рубль.
Очень муторный был труд, не все удобства были сделаны, но в принципе вопрос был решён.

Общая ссылка:
https://www.facebook.com/trademts

Marvin Trade
Marvin Trade
  • www.facebook.com
Предлагаю всем желающих на 3-и месяца поторговать с помощью торгового робота на платформе МТ5. Необходимые условия: - минимальный депозит для торговли - 3000 долл.сша; - ваш брокер с минимальными ограничениями к выставляемым лимитным ордерам в виде пунктов или расстояния от бид-цены и аск-цены; - терпение и умение держать риск, не вмешиваясь...
 
prog_ass:

Здравствуйте.

Есть ли возможность реализовать на мт5 поиск крупных сайзов в стакане акций? Может есть наработки? Кто-то может помочь реализовать идею? И насколько стакан мт5 актуален в этом плане?

Можно. Но стакан в МТ5 ограничен 20 котировками с каждой стороны, тогда как в Квике 50.

 
Ну 20 так 20 
 
prog_ass:
Ну 20 так 20 

Нумерация идет от середины вверх и вниз. Счет начинается с нуля.


//+------------------------------------------------------------------+
//|                                                  Min_max_vol.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
bool is_book;
struct BOOK_DATA
{
  double s_price;
  long s_volume;
  int s_pos;
  int s_mem;
  bool s_flag;
  double b_price;
  long b_volume;
  int b_pos;
}book_data;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   is_book = MarketBookAdd(Symbol());
   if(is_book == false)
   {
     Print("No book added!");
     return(INIT_FAILED);
   }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
    if(is_book == true) MarketBookRelease(Symbol());
  }
//+------------------------------------------------------------------+
//| Get stakan function                                              |
//+------------------------------------------------------------------+
bool GetBook(const string aSymbol)
{
  MqlBookInfo book_price[]; 
  if(MarketBookGet(aSymbol, book_price) == true)//getBook )
  {
    int size = ArraySize(book_price);
    if(size > 0)
    {
      book_data.s_flag = false;
      book_data.s_pos = 0;
      book_data.s_volume = LONG_MIN;
      book_data.b_pos = 0;
      book_data.b_volume = LONG_MIN;
      
      for(int i = 0; i < size; i++)
      {
        if(book_price[i].type == BOOK_TYPE_SELL) 
        {
          if(book_price[i].volume > book_data.s_volume)
          {
            book_data.s_price = book_price[i].price;
            book_data.s_volume = book_price[i].volume;
            book_data.s_pos = i;
          }
        }
        else
        if(book_price[i].type == BOOK_TYPE_BUY) 
        {
          if(book_data.s_flag == false)
          {
             book_data.s_mem = i;
             book_data.s_flag = true;
          }   
          if(book_price[i].volume > book_data.b_volume)
          {
            book_data.b_price = book_price[i].price;
            book_data.b_volume = book_price[i].volume;
            book_data.b_pos = i;
          }
        }
      }
      book_data.s_pos = book_data.s_mem - 1 - book_data.s_pos;
      book_data.b_pos = book_data.b_pos - book_data.s_mem;  
      return(true);
    }
  }
  return(false);
}
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
    if(symbol == Symbol())
    {
      if(GetBook(Symbol()) == true)
      {
        Print("Sell max price = ", book_data.s_price);
        Print("Sell max price volume = ", book_data.s_volume);
        Print("Sell max price position = ", book_data.s_pos);
        Print("Buy max price = ", book_data.b_price);
        Print("Buy max price volume = ", book_data.b_volume);
        Print("Buy max price position = ", book_data.b_pos);
      }
    }
  }
//+------------------------------------------------------------------+

Результат

2021.05.10 12:57:54.414 Min_max_vol (GAZP,H1)   Sell max price = 243.18
2021.05.10 12:57:54.414 Min_max_vol (GAZP,H1)   Sell max price volume = 886
2021.05.10 12:57:54.414 Min_max_vol (GAZP,H1)   Sell max price position = 15
2021.05.10 12:57:54.414 Min_max_vol (GAZP,H1)   Buy max price = 242.8
2021.05.10 12:57:54.414 Min_max_vol (GAZP,H1)   Buy max price volume = 2492
2021.05.10 12:57:54.414 Min_max_vol (GAZP,H1)   Buy max price position = 16
2021.05.10 12:57:54.434 Min_max_vol (GAZP,H1)   Sell max price = 243.18
2021.05.10 12:57:54.434 Min_max_vol (GAZP,H1)   Sell max price volume = 886
2021.05.10 12:57:54.434 Min_max_vol (GAZP,H1)   Sell max price position = 15
2021.05.10 12:57:54.434 Min_max_vol (GAZP,H1)   Buy max price = 242.8
2021.05.10 12:57:54.434 Min_max_vol (GAZP,H1)   Buy max price volume = 2492
2021.05.10 12:57:54.434 Min_max_vol (GAZP,H1)   Buy max price position = 16
 
Спасибо. А как тут выделять крупный объем отдельным цветом, для скальпинга нет времени читать эту ленту.
 
prog_ass:
Спасибо. А как тут выделять крупный объем отдельным цветом, для скальпинга нет времени читать эту ленту.

Сделайте 2 лайбла и выводите туда (выше просто работающий пример)

 
Я вообще не знаю что такое лайбл))) я юзер
 
prog_ass:
Я вообще не знаю что такое лайбл))) я юзер
Лайбл это тоже самое, что лэйбл)
 
prog_ass:
Я вообще не знаю что такое лайбл))) я юзер

Тогда Вам сюда

https://www.mql5.com/ru/job

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.05.14
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
 
В подвале
Файлы:
Причина обращения: