А как получить тиковые данные?

 

Смотрел функции, в mql5 и нашел там возможность собственно перебирать себе бары. Но вот проблема, не нашел как перебирать Тики, то есть то что я могу получить экспортом данных в программе в виде csv, хотелось бы увидеть тут ...

Второй вопрос, как это сделать экспортно? Т.е. у меня C# на самом то деле, я думал что мог бы и в самой программе все сделать. Т.е. просто не делать в С# и сделать прямо тут ... В целом на распутье я немного, то есть у меня либо mql5 и написать на нем, либо C# если я получу экспорт нормальный (т.е. не в ручную). Выставлять ордера думаю в ручную все равно, по крайней мере значимо еще долго, не шибко доверяют программе автормату не глядя на график самостоятельно. Так что в целом выбор несмотря на судя по всему приемущества mql5 все еще остается... Хотя может и в C# это как то можно. Но вот такая вот у меня теперь проблема...

Как получить тики хоть каким то из способов, но программно не вводя все вечно вручную в экспортере?

 
Справка: функции по работе с тиками: 
 
Vladimir Karputov:
Справка: функции по работе с тиками: 

Вот прямо сразу, сразу вопрос:

>>> [in]  Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000.

А если вдруг я не знаю (а я не знаю вообще) сколько их там? Ну вдруг их более 2000? Или это просто по минутам их перебирают поступательно?


p.s. И да, если было как то "еще" через API, было бы совсем здоровое.. Может можно терминалу запросы слать например? И получить XML/CSV? По большому счету сделать 

CopyTicksRange


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

Есть ещё такой вариант: в терминале в окне "Обзор рынка" правый клик и меню "Символы". Перейти затем во вкладку "Тики".

Справка: Управление символами.

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

Есть ещё такой вариант: в терминале в окне "Обзор рынка" правый клик и меню "Символы". Перейти затем во вкладку "Тики".

Справка: Управление символами.

Вот вот, я как раз вручную сейчас делаю, потом в C# своем файл подбираю, а хочется чтобы C# сам файл "взял" уже готовый, запрос там какой отправил ...  GET/POST или DLL какой использовал или еще как-то ... А то вручную, конечно можно но немного муторновато оказывается со временем.

Пришла мысль, что можно написать "скрипт", который при запуске MT5 просто генерировал бы мне эти файлы, т.е. собирал их в кучу ну и я потом их получал. Но это тоже так себе вариант, т.к. следить за двумя языками и программами не самая лучшая альтернатива. Хочется все же ограничится одним языком ...

 
sergey087:

Вот вот, я как раз вручную сейчас делаю, потом в C# своем файл подбираю, а хочется чтобы C# сам файл "взял" уже готовый, запрос там какой отправил ...  GET/POST или DLL какой использовал или еще как-то ... А то вручную, конечно можно но немного муторновато оказывается со временем.

Пришла мысль, что можно написать "скрипт", который при запуске MT5 просто генерировал бы мне эти файлы, т.е. собирал их в кучу ну и я потом их получал. Но это тоже так себе вариант, т.к. следить за двумя языками и программами не самая лучшая альтернатива. Хочется все же ограничится одним языком ...

Можно написать класс со статическими методами на C#,  в метатрейдере - создать класс обертку для работы с ним, в таймере проверять команды от C# и возвращать результат через статические методы.
Можно так же сделать pipe соединение на C# и MQL (через импорт методов из WinAPI)
Можно просто в таймере в MQL читать запросы от C# через статические методы и далее формировать требуемый файл... 

 
Andrey Azatskiy:

Можно написать класс со статическими методами на C#,  в метатрейдере - создать класс обертку для работы с ним, в таймере проверять команды от C# и возвращать результат через статические методы.
Можно так же сделать pipe соединение на C# и MQL (через импорт методов из WinAPI)
Можно просто в таймере в MQL читать запросы от C# через статические методы и далее формировать требуемый файл... 

Спасибо, судя по всему решение вполне есть, хотя я правда понял самый минимум из того, что вы написали и буду пока разбираться ...

 
sergey087:

Спасибо, судя по всему решение вполне есть, хотя я правда понял самый минимум из того, что вы написали и буду пока разбираться ...

Там 3 возможных решения пришедших мне в голову. 

MQL5 - умеет импортировать статические методы публичных классов C# из указанной dll. по этому:

  • Сделать dll C# внутри dll создать статическое свойство к примеру 

static bool IsLoadTicks { get; private set; }

далее его можно будет вызвать в таймере из MQL5 как статический метод и в другой статический метод (только уже метод - который принимает параметры) - передать тиковые данные

  • Если C# - дельный процесс то можно воспользоваться pipe - как межпроцессное взаимодействие где то на форуме видел что кто то реализовывал подобную стыковку.
  • Можно как в первом способе просто передавать данные из C# в MQL5 - и в итоге средствами MQL5 - формировать файл с запрашиваемыми данными
Причина обращения: