Вопрос Админам - страница 2

 
Yedelkin:
Согласен, мыслю узко - только в отношении валютных пар, имеющихся у MQ.
Есть вариант - запретить на уровне сервера торговлю если по символу нет нормальной истории хотя бы за 5 лет.
 
Подскажите как теаедиторе 5 использовать стакан заявок? как можно оттуда считывать данные?
 
todem:
Подскажите как теаедиторе 5 использовать стакан заявок? как можно оттуда считывать данные?

Видимо, имеется ввиду функция из раздела Получение рыночной информации?

 
todem:
Подскажите как теаедиторе 5 использовать стакан заявок? как можно оттуда считывать данные?

Примерно так:

MqlBookInfo ArrayMarketBookInfo[];

bool SymbolMarketBook;

int OnInit()
{
//----------------------------------------------------------------------------//
//Work variables
int Result = 0; //Returned importance
//----------------------------------------------------------------------------//

SymbolMarketBook = MarketBookAdd(Symbol());

//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

//Procedure OnDeinit
void OnDeinit(const int reason)
{
//----------------------------------------------------------------------------//
//Work variables
//----------------------------------------------------------------------------//

  if(SymbolMarketBook) MarketBookRelease(Symbol());
  
//----------------------------------------------------------------------------//
}

//Event OnBookEvent
void OnBookEvent(const string& symbol)
{
//----------------------------------------------------------------------------//
//Work variables
int SizeBook;
int i;

bool Res;
//----------------------------------------------------------------------------//

Res = MarketBookGet(symbol,ArrayMarketBookInfo);

  if(Res)
  {
  SizeBook = ArraySize(ArrayMarketBookInfo);

    for(i=0;i<SizeBook;i++)
    {

      if(ArrayMarketBookInfo[i].type==BOOK_TYPE_BUY)
      //Подсчет данных по длинным позициям
      {
      //Выполняем собственную обработку
      }
      else
      //Подсчет данных по коротким позициям
      {
      //Выполняем собственную обработку
      }

    //Блок из справки по MarketBookGet
    Print(i,":",ArrayMarketBookInfo[i].price," Volume= ",ArrayMarketBookInfo[i].volume,
    " type = ",ArrayMarketBookInfo[i].type);
    }
  
  }
  else
  {
  Print("Не удалось получить содержимое стакана по символу ",Symbol());
  }  
//----------------------------------------------------------------------------//
}

PS

Работу со стаканом лучше пробовать на Альпари, там он вроде как есть...

 
Interesting:

Примерно так:

PS

Работу со стаканом лучше пробовать на Альпари, там он вроде как есть...

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

   Я опять думал над этим вопросом, вот что пришло в голову: сделать функцию, которая делит на две половины указанный символ/таймфрейм, например, bool SetEdge(string symbol, int timeframe, datetime time). Эта граница статична, т.е. существует даже после перезапуска терминала.

   Как пользоваться:  пробежался по символу/таймфрейму и исходя из своих соображений определил что является, например m1, а что нет. Раскрасил половины разными цветами (фон графика (или цвет баров)). Тот же алгоритм и с другими таймами.

   Итог: граница видна визуально (для ручного анализа) и программно ( datetime GetEdge(string symbol, int timeframe) ).


 

Или, например, предоставить возможность писать(переопределить стандартную) функцию (с предопределенным именем и параметрами), которая отвечает на вопрос – где граница на этом символе/таймфрейме? И что делать (выделить, цветом скрыть …)?

P.S:

Например, вынести такую функцию в dll (с разглашением прототипа), а самые подготовленные напишут собственную версию. Мне кажется, очень красиво получится.

 

Не хочу показаться навязчивым, хотелось бы узнать отношение руководства к делегированию функций по определению границ таймфрема пользователю (может есть какие-то планы). А то как-то не солидно раскрашивать график прямоугольниками :).

 
220Volt: Не хочу показаться навязчивым, хотелось бы узнать отношение руководства к делегированию функций по определению границ таймфрема пользователю (может есть какие-то планы). А то как-то не солидно раскрашивать график прямоугольниками :).
Достаточно оформить предложение в СД. Отношение руководства можно будет узнать либо по ответу, либо по молчанию.