Экспорт данных

 
Допустим всю логику я хочу описать не на мкл а где-то в другом месте, а от мт мне нужен тока поток данных и история, при запросе.
Кто как решает данную задачу ?
 
Alexey Oreshkin:
Допустим всю логику я хочу описать не на мкл а где-то в другом месте, а от мт мне нужен тока поток данных и история, при запросе.
Кто как решает данную задачу ?
через файл в общей папке
 
Alexey Oreshkin:
Допустим всю логику я хочу описать не на мкл а где-то в другом месте, а от мт мне нужен тока поток данных и история, при запросе.
Кто как решает данную задачу ?

раз в 5 минут (каждый M5) сбрасывал данные в базу (чтобы клиентской части если нужна оперативная история и нехватает hst- пусть оттуда читает)

а на каждый полученный тик отправлял broadcast UDP с тиком и последними 5ю минуткам и 2 барам по прочим ТФ.

это чтобы избежать запросов к MQL из DLL - оно немного гиморно делается

 
STARIJ:
через файл в общей папке

это и так понятно что возможно ,но это не вариант - слишком долго.

Maxim Kuznetsov:

это чтобы избежать запросов к MQL из DLL - оно немного гиморно делается


Как это возможно ?

 
Alexey Oreshkin:

Как это возможно ?

Ничего гемморного. ДЛЛ стандартная. Посмотрите как делаются ДЛЛ-ки и в документации - как они подключаются к MQL. Примеры построения ДЛЛ в инете найдете - их много.
 
Yuriy Asaulenko:
Ничего гемморного. ДЛЛ стандартная. Посмотрите как делаются ДЛЛ-ки и в документации - как они подключаются к MQL. Примеры построения ДЛЛ в инете найдете - их много.

вопрос не в длл, я саму идею пока немогу уловить.

написал я что-то в длл ,это ясно. Далее обёртку делаю на мкл5 это я тоже понял и тогда данные попадут в длл, это ясно. Но мне потом оттуда их надо достать. Что из длл что из самого мт ,какая разница? то есть просто сделал прокладку которая ничего не изменила, или я нетак вообще мыслю ?

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

 
Alexey Oreshkin:

вопрос не в длл, я саму идею пока немогу уловить.

написал я что-то в длл ,это ясно. Далее обёртку делаю на мкл5 это я тоже понял и тогда данные попадут в длл, это ясно. Но мне потом оттуда их надо достать. Что из длл что из самого мт ,какая разница? то есть просто сделал прокладку которая ничего не изменила, или я нетак вообще мыслю ?

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

МТ ограничен в возможностях, запрещено работать с файлами за пределами песочницы. DLL - это выход в другие системы - MatLab, Excel, Delphi, ...

 
Alexey Oreshkin:

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

Можно так. Только прежде по любому в ДЛЛ уйти надо. А там уже гуляем - именованные каналы, IP-протоколы, меморимапфайлы. На выбор.) Если экземплы из инета надергать, весь этот функционал пишется максимум за пару часов.

 
Alexey Oreshkin:
Допустим всю логику я хочу описать не на мкл а где-то в другом месте, а от мт мне нужен тока поток данных и история, при запросе.
Кто как решает данную задачу ?

Через PIPE-каналы.

 
Dmitriy Skub:

Через PIPE-каналы.

Вариант конечно. Сам их никогда не использовал, но несколько раз читал на форуме, что они периодически отваливаются. Возможно слухи преувеличены.)
 
Alexey Oreshkin:

вопрос не в длл, я саму идею пока немогу уловить.

написал я что-то в длл ,это ясно. Далее обёртку делаю на мкл5 это я тоже понял и тогда данные попадут в длл, это ясно. Но мне потом оттуда их надо достать. Что из длл что из самого мт ,какая разница? то есть просто сделал прокладку которая ничего не изменила, или я нетак вообще мыслю ?

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

разница (точнее некоторая сложность) в том что MQL может работать с DLL только по опросам. То есть MQL всегда является инициатором и нет нормального штатного способа снаружи (из DLL или сторонней программы) ему сказать - "пришёл запрос - дай ответ".

поэтому чтобы советник мог отвечать на сторонние запросы надо периодически, по таймеру или тику проверять наличие запроса, сиречь дёргать DLL. Чтобы избегать этой постоянной дергатни предпочёл сбрасывать необходимые данные во внешнее хранилище "в инициативном порядке, по мере накопления + транслировать поток с небольшим перехлёстом". Так DLL вызывается значительно реже и сам алгоритм проще.

Причина обращения: