Синхронизация mql5 и c++ реализаций классов.

 
Как правильно организовать синхронность с++ и mql5 реализаций одного и того же набора классов? Возможно, вопрос уже разбирался на форуме или в статьях, но не нашёл.
 
ИМХО : минуя эти самые классы. Не нахожу в них преимущества вообще. Ни в работе с массивами, ни в векторных вычислениях. Продиктовано ооп само по себе корпоративной разработкой, отсюда стиль преподавания и парадигма мышления. Но когда Вы самурай форекса, одиночка, переходите на процедурное или функциональное. Вроде читаемость лучше. Кстати. Кто проводил тест, как быстрее связывать mql программу с другой программой, через сокет на локальном адресе или через файл. Видимо, зависит сильно от оборудования, так что если кто делал тест, пишите накопитель какой. Вроде ответ очевиден, что через сокет, но почему-то засомневался.
 
G1G2G3 #:
ИМХО : минуя эти самые классы. Не нахожу в них преимущества вообще. Ни в работе с массивами, ни в векторных вычислениях. Продиктовано ооп само по себе корпоративной разработкой, отсюда стиль преподавания и парадигма мышления. Но когда Вы самурай форекса, одиночка, переходите на процедурное или функциональное. Кстати. Кто проводил тест, как быстрее связывать mql программу с другой программой, через сокет на локальном адресе или через файл. Видимо, зависит сильно от оборудования, так что если кто делал тест, пишите накопитель какой.

Допустим, классы миновали, но остаются же отличия в реализациях динамических массивов или работы с файлами.

Классы же как раз и нужны, чтобы чётко разделить сходное и различное с С++.

 
Aleksey Nikolayev #:

Допустим, классы миновали, но остаются же отличия в реализациях динамических массивов или работы с файлами.

Классы же как раз и нужны, чтобы чётко разделить сходное и различное с С++.

Возможно, только одна программа должна работать с файлами, к примеру на си. Mql программа только скачивает историю, отсылает приказы торговые. Динамические массивы, ну всё равно там выделение памяти автоматически идёт, если не указано явное выделение памяти, Я указываю явно всегда выделение памяти, так что особо разницы не вижу тоже.
 
Кстати, почему не весь код в mql программе? Это из-за инструментария, или защита от промышленного шпионажа?
 
Aleksey Nikolayev:
Как правильно организовать синхронность с++ и mql5 реализаций одного и того же набора классов? Возможно, вопрос уже разбирался на форуме или в статьях, но не нашёл.

Правильно это не заниматься подобным. Всё программирование практически про "не дублировать код, не копипастить, разделять функционал.."

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

 
G1G2G3 #:
Кстати, почему не весь код в mql программе? Это из-за инструментария, или защита от промышленного шпионажа?

Нет, просто нужно запускать одно и то же как в МТ5, так и в С++.

 
Maxim Kuznetsov #:

Правильно это не заниматься подобным. Всё программирование практически про "не дублировать код, не копипастить, разделять функционал.."

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

Собственно и ищется возможность не дублировать и не делать постоянный копипаст изменений из одной среды в другую.

 
Maxim Kuznetsov #:

Правильно это не заниматься подобным. Всё программирование практически про "не дублировать код, не копипастить, разделять функционал.."

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

Ну почему, нормальный вопрос. Во первых, mql это корпоративный компилятор проприетарный. Тут обоснованные подозрения уже в дописи чего угодно. Во вторых, обоснованно хотеть получить максимальную независимость от версий языка. Так же, в терминале порочный тестер с ограничением проходов необоснованным. Так что писать связь программ это лучшее решение. Может не самое простое.
 
В целом понятно, что надо делать через условную компиляцию и макрос __MQL5__, но посмотреть на несложные но содержательные примеры не отказался бы.
 
Aleksey Nikolayev #:

Нет, просто нужно запускать одно и то же как в МТ5, так и в С++.

легче простого - достаточно написать терминал с максимально схожим API :-) 

Благо что API ясный и довольно краткий..Наливай да пей - серия виртуальных функций OnXXX, торговое окружение через GetInteger/Long , котировки тики CopyRates CopyTicks

код MQL с небольшими ручными правками превратится в C++ , советники индикаторы в виде DLL которые с некоторыми ухищрениями можно использовать и там и там..

дел всего на пару лет :-)

---

логично - это часть расчетов и бизнес-логику реализовывать снаружи в С++ или на чём удобно..но вот где там "организовать синхронность с++ и mql5 реализаций одного и того же набора классов"..Зачем там одни и те-же классы, да ещё и целыми наборами

---