Экспорт "Обзор рынка" - "Символы", или списка всех доступных символов, а также "Спецификации" каждого символа в Excel

 

Всем доброго вечера. Подскажите пожалуйста есть ли готовое решение для вывода этих данных в Эксель? Интересует  "Обзор рынка" - "Символы" - то есть список символов, в идеале - все доступные для торговли символы. А также "Спецификации" для каждого символа.

Если нет готового решения, может подскажите где посмотреть? Есть ли технически такая возможность?

Спасибо.
 
Alexey Kolybelnikov:

Всем доброго вечера. Подскажите пожалуйста есть ли готовое решение для вывода этих данных в Эксель? Интересует  "Обзор рынка" - "Символы" - то есть список символов, в идеале - все доступные для торговли символы. А также "Спецификации" для каждого символа.

Если нет готового решения, может подскажите где посмотреть? Есть ли технически такая возможность?

Спасибо.

Для получения количества символов в обзоре рынка или в общем списке используйте:

 SymbolsTotal ();

Для включения или отключения символа в обзоре рынка

SymbolSelect();

Для получения свойств символа:

SymbolInfoInteger ();

SymbolInfoDouble ();

SymbolInfoDouble ();

SymbolInfoString ();


Ну и экспорт полученной информации в файл CSV с помощью соответствующих функций для операций с файлами.

Нужно готовое решение - пишите в личку, или в джобу. Но лучше почитайте справку и напишите сами.

Обзор рынка - Торговые операции - Справка по MetaTrader 5
Обзор рынка - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Окно "Обзор рынка" позволяет просматривать ценовые данные по торговым инструментам: котировки, ценовую статистику и график тиков. Здесь же можно смотреть спецификации контрактов и совершать торговые операции одним кликом. Просмотр котировок финансовых инструментов # При двойном нажатии левой кнопкой мыши на одном из инструментов будет открыто...
 
Andrey Dik:

Для получения количества символов в обзоре рынка или в общем списке используйте:

 SymbolsTotal ();

Для включения или отключения символа в обзоре рынка

SymbolSelect();

Для получения свойств символа:

SymbolInfoInteger ();

SymbolInfoDouble ();

SymbolInfoDouble ();

SymbolInfoString ();


Ну и экспорт полученной информации в файл CSV с помощью соответствующих функций для операций с файлами.

Нужно готовое решение - пишите в личку, или в джобу. Но лучше почитайте справку и напишите сами.

Спасибо, постараюсь разобраться. А можете также подсказать с какого "примера", если он есть в бесплатном доступе или в Бибилиотеке, можно начать изучение/изменение?
 

Вот нашёл! Все очень детально описано. Сейчас сам пытаюсь из этого сделать вывод любой информации с МТ5 в Эксель. Если получится - отпишусь :)

Основы программирования на MQL5: Файлы - тут много прикрепленных скриптов-примеров

https://www.mql5.com/ru/articles/2720

И вот по созданию своих инструментов

https://www.mql5.com/ru/articles/5303

Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы
  • www.mql5.com
Функции для работы с файлами есть почти во всех языках программирования, и MQL5 в этом смысле — не исключение. Хотя при программировании советников и индикаторов на MQL5 работать с использованием файлов приходится не всегда, (а скорее даже — очень редко), но тем не менее, каждый экспертописатель рано или поздно с этим сталкивается. Диапазон...
 
Alexey Kolybelnikov:

Всем доброго вечера. Подскажите пожалуйста есть ли готовое решение для вывода этих данных в Эксель? Интересует  "Обзор рынка" - "Символы" - то есть список символов, в идеале - все доступные для торговли символы. А также "Спецификации" для каждого символа.

Если нет готового решения, может подскажите где посмотреть? Есть ли технически такая возможность?

Спасибо.

для 4-ки можно попробовать мой рецепт https://sourceforge.net/projects/mt-atcl/ там в демке даже тики отлетают в табличку Excel

если есть потребность можно перебрать и для 5-ки. 

PS/ но есть нюансы. :-(  сам работаю с ключиком /portable всегда, то есть архив может и не встать и дистр Tcl нужен 

PPS// нужно ещё и немного рук - это не решение для конечного пользователя. Для него любимого софт придётся писать

 
Maxim Kuznetsov:

для 4-ки можно попробовать мой рецепт https://sourceforge.net/projects/mt-atcl/ там в демке даже тики отлетают в табличку Excel

если есть потребность можно перебрать и для 5-ки. 

PS/ но есть нюансы. :-(  сам работаю с ключиком /portable всегда, то есть архив может и не встать и дистр Tcl нужен 

PPS// нужно ещё и немного рук - это не решение для конечного пользователя. Для него любимого софт придётся писать

Спасибо за участие ;) Те ресурсы, которые привел, оказались очень классными. Особенно тот что от MQL5 как обучение.

Конечно пришлось немного еще порыться.

Но я уже "пилю" перенос всей необхоимой информации для расчета риска и портфеля в CSV, потом запросом в Excel->Data->New Query->CSV, это позволяет обновлять Запрос (таблицу) по необходимости и это как интерактивная таблица с возможностью обработки данных формулами Excel. Пока хватит с моим уровнем "программирования" )))

 

Подскажите пожалуйста как взять вот этот параметр (Calculation) c спецификации символа в MT5?


пытался так

int MarketType=SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE);

но это возвращает только цифру. Я так понял каждая цифра это определенный тип (рынок) символа. Я так понял посмотрев на ENUM_SYMBOL_CALC_MODE, там первое SYMBOL_CALC_MODE_FOREX, второе SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE и т.д. Возможно я не правильно понял. Как получить именно вот такой текст о типе (рынке) символа?

Дело в том что в SymbolInfoString() такой информации не нашел.

 

Сначала сформируйте массив символов, после - превратите его в кортеж характеристик, затем - экспортируйте в таблицу. 

Вот первый этап: 

FAQ 18.12.2012 19:13  

Передаете в функцию чистый массив, получаете в нем список символов из панели "обзор рынка"
//+------------------------------------------------------------------+
//|          Description:                                            |
//+------------------------------------------------------------------+
int SymbolsList(string &Symbols[], bool Selected)
{
   string SymbolsFileName;
   int Offset, SymbolsNumber;
   
   if(Selected) SymbolsFileName = "symbols.sel";
   else         SymbolsFileName = "symbols.raw";
   int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
   if(hFile < 0) return(-1);
   if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116;  }
   else         { SymbolsNumber = FileSize(hFile) / 1936;      Offset = 1924; } 
   ArrayResize(Symbols, SymbolsNumber);
   if(Selected) FileSeek(hFile, 4, SEEK_SET);   
   for(int i = 0; i < SymbolsNumber; i++){
      Symbols[i] = FileReadString(hFile, 12);
      FileSeek(hFile, Offset, SEEK_CUR);
   }
   FileClose(hFile);
   return(SymbolsNumber);
}
//+------------------------------------------------------------------+
 
Автор - Рустам (XRust), 2012 год. 
 
Алексей Тарабанов:
Автор - Рустам (XRust), 2012 год. 


Спасибо, но я делал через запись в CSV. Это ведь не принципиально?

void OnStart(){
   int h=FileOpen("test.csv",FILE_WRITE|FILE_UNICODE|FILE_CSV,";");
   if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return;
   }

Потом записал строку с названиями столбцов. Дальше перебирая по порядку все символы, добавляю построчно нужную информацию. Все вроде бы нашел по Спецификации символа, а вот значение Calculation (Способ расчетов) так и не получилось найти как получить. Это ведь string, а где береться непонятно.

 
Alexey Kolybelnikov:


Спасибо, но я делал через запись в CSV. Это ведь не принципиально?

Потом записал строку с названиями столбцов. Дальше перебирая по порядку все символы, добавляю построчно нужную информацию. Все вроде бы нашел по Спецификации символа, а вот значение Calculation (Способ расчетов) так и не получилось найти как получить. Это ведь string, а где береться непонятно.

Считайте по всем символам, после поймёте, какая цифра чему соответствует.