MQL5/C++ LLVM

 
Пробовал кто-нибудь компилить через Clang/LLVM? Как это вообще должно работать, можно ли свою логику сделать на С++ и скомпилить, к примеру, с индикатором на MQL5?
 
mrostrich:
Пробовал кто-нибудь компилить через Clang/LLVM? Как это вообще должно работать, можно ли свою логику сделать на С++ и скомпилить, к примеру, с индикатором на MQL5?

зачем?

 
Renat Akhtyamov #:

зачем?

Если я завтра захочу сменить платформу или заюзать какое-нибудь API, то здесь уже MQL будет не нужен, а C++ хорошая альтернатива
 

Редактор MetaEditor умеет не только с Питоном работать, но и компилировать C/C++ программы в DLL/EXE.

Это позволяет держать в одном проекте/каталоге вспомогательные проекты DLL и быстро их компилировать по месту:

Для этого нужен установленный Microsoft Visual Studio 2017/2019/2022.

Clang/LLVM пока не задействован.

 
Renat Fatkhullin #:

Редактор MetaEditor умеет не только с Питоном работать, но и компилировать C/C++ программы в DLL/EXE.

Это позволяет держать в одном проекте/каталоге вспомогательные проекты DLL и быстро их компилировать по месту:

Для этого нужен установленный Microsoft Visual Studio 2017/2019/2022.

Clang/LLVM пока не задействован.

Из документации:

В импортируемых функциях в качестве параметров нельзя использовать:

А мне нужны динамические массивы.. Конкретнее говоря, хочу данные из MQL обработать в DLL, например, а так нельзя

Питон это здорово, но не для моей задачи

Документация по MQL5: Основы языка / Типы данных / Указатели объектов
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
  • www.mql5.com
Указатели объектов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
mrostrich #:

Из документации:

В импортируемых функциях в качестве параметров нельзя использовать:

А мне нужны динамические объекты..

Питон это здорово, но не для моей задачи


А что мешает все писать на MQL5?

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

Мы создали специализированный язык со всей инфраструктурой и вложили в него 21 год работы (первая версия MQL вышла в марте 2001), чтобы не надо было бегать по сырым торговым API и изобретать велосипеды.

Но в любой случае, дерзайте.

 
Renat Fatkhullin #:

А что мешает все писать на MQL5?

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

Мы создали специализированный язык со всей инфраструктурой и вложили в него 22 года работы (первая версия MQL вышла в марте 2000), чтобы не надо было бегать по сырым торговым API и изобретать велосипеды.

Но в любой случае, дерзайте.

Ну, я выше написал для чего это нужно, могу сказать, что помимо этих ограничений с передачей данных в DLL я наткнулся на то, что нельзя отлаживать DLL (защита), в самом MetaEditor'е неудобное форматирование и настройки для форматирования ограничены, было бы какое-то API, к которому можно было получить доступ с любого ЯП было бы замечательно, а так приходится изобретать костыли в виде IPC на сокетах или через какие-то файлы. Предположим, что у меня есть готовый советник, который я готов запустить на сервере, в таком случае мне придется подымать Wine на linux'е (такое решение тоже напоминает некий костыль), либо ставить на Windows Server вместе с клиентом MT5, а для чего эти затраты? Можно было бы просто запустить в терминале клиента, который напрямую общается с сервером.

 
mrostrich #:

Ну, я выше написал для чего это нужно, могу сказать, что помимо этих ограничений с передачей данных в DLL я наткнулся на то, что нельзя отлаживать DLL (защита), в самом MetaEditor'е неудобное форматирование и настройки для форматирования ограничены, было бы какое-то API, к которому можно было получить доступ с любого ЯП было бы замечательно, а так приходится изобретать костыли в виде IPC на сокетах или через какие-то файлы. Предположим, что у меня есть готовый советник, который я готов запустить на сервере, в таком случае мне придется подымать Wine на linux'е (такое решение тоже напоминает некий костыль), либо ставить на Windows Server вместе с клиентом MT5, а для чего эти затраты? Можно было бы просто запустить в терминале клиента, который напрямую общается с сервером.

В 99% случаев не нужны уже DLL, разве что строить костыли.

Форматирование в метаедиторе содержит 16 стилей, так что это не довод против. А вот довод использовать именно метаедитор - огромный. Там интеллисенс, отладчик, профилировщик, документация и тд.


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


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

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

Виртуальный хостинг для MetaTrader 5
Виртуальный хостинг для MetaTrader 5
  • www.mql5.com
Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5
 
Renat Fatkhullin #:

В 99% случаев не нужны уже DLL, разве что строить костыли.

Форматирование в метаедиторе содержит 16 стилей, так что это не довод против. А вот довод использовать именно метаедитор - огромный. Там интеллисенс, отладчик, профилировщик, документация и тд.


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


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

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

Под использованием DLL в моем контексте подразумевается способ избежать MQL, а не способ сделать какую-то сложную систему. Я пробовал все эти стили и они мне не понравились, к тому же некоторые из них работают некорректно, помимо стилей я писал о настройках форматирования, которых, по-моему, не хватает. Вот вы говорите про интеллисенс, отладчик, профилировщик и в то же время упоминаете слово "велосипедостроение", а вот это всё перечисление не является велосипедостроением? Полно IDE, у которых это все есть и справляются с этими функциями лучше. VPS-сервис это замечательно, но, опять же, какое-то ограничение. Почему я не могу свой VPS заюзать, а вынужден юзать ваш? Мне всего лишь нужно получить OHLC и два запроса на покупку/продажу и всё, этого достаточно. Никакую инфраструктуру делать не собираюсь.

 
mrostrich #:

Под использованием DLL в моем контексте подразумевается способ избежать MQL, а не способ сделать какую-то сложную систему. Я пробовал все эти стили и они мне не понравились, к тому же некоторые из них работают некорректно, помимо стилей я писал о настройках форматирования, которых, по-моему, не хватает. Вот вы говорите про интеллисенс, отладчик, профилировщик и в то же время упоминаете слово "велосипедостроение", а вот это всё перечисление не является велосипедостроением? Полно IDE, у которых это все есть и справляются с этими функциями лучше. VPS-сервис это замечательно, но, опять же, какое-то ограничение. Почему я не могу свой VPS заюзать, а вынужден юзать ваш? Мне всего лишь нужно получить OHLC и два запроса на покупку/продажу и всё, этого достаточно. Никакую инфраструктуру делать не собираюсь.

У нас не велосипедостроение.

Мы построили огромную самодостаточную экосистему для массового применения.

Если вам она не нравится, то дерзайте - делайте свои решения. Тем более, что получать "OHLC и два запроса" можете сейчас без каких-либо проблем.

Пока ваши претензии на уровне "а у вас есть такое же, но с перламутровыми пуговицами?".

 
Renat Fatkhullin #:

У нас не велосипедостроение.

Мы построили огромную самодостаточную экосистему для массового применения.

Если вам она не нравится, то дерзайте - делайте свои решения. Тем более, что получать "OHLC и два запроса" можете сейчас без каких-либо проблем.

Пока ваши претензии на уровне "а у вас есть такое же, но с перламутровыми пуговицами?".

"У нас не велосипедостроение" звучит убедительно, даже не нужны аргументы. Да вот как раз проблема есть, потому что практически все брокеры юзают MT4/MT5, а API никто свое не пишет. Никто не против вашей экосистемы, платформа нормальная, проблема в ограничениях, которые вы создаете для разработчиков. Не знаю, являетесь ли вы программистом, но для меня то, о чем я сказал имеет значение.
Причина обращения: