Пора конвертировать библиотеки на MQL5 - страница 5

 

Вот, кстати, неужели нельзя было команды работы с хранилищем сделать на человеческом понятном языке? - ну типа таких:

"Отправить в хранилище"

"Скачать с хранилища"

"Синхронизировать с хранилищем"

"Синхронизировать с МЕ"

А команды, которые сейчас - ну не понятно же. И в этом я солидарен с Urain. А если что то кому то не понятно интуитивно, то этот кто то навряд ли захочет тратить время на изучение комманд что бы пользоваться новым функционалом, тем более если до этого обходился и без него (функционала).

 

Ветка превращается в список пожеланий, подложу и своих сюда

Что касается численных библиотек это:

  • интерполяция, сглаживание и аппроксимация
  • работа с матрицами
  • оптимизация (поиск экстремума), методы:

Одномерные:          Метод золотого сечения, Дихотомия, Метод парабол, Перебор по сетке, Метод Фибоначчи, Троичный поиск
Прямые методы:     Метод Гаусса, Метод Нелдера — Мида, Метод Хука — Дживса, Метод конфигураций, Метод Розенброка
Первого порядка:   Градиентный спуск, Метод Зойтендейка, Покоординатный спуск, Метод сопряжённых градиентов, Квазиньютоновские методы, Алгоритм Левенберга — Марквардта
Второго порядка:    Метод Ньютона, Метод Ньютона — Рафсона
Стохастические:     Метод Монте-Карло, Имитация отжига, Эволюционные алгоритмы, Генетические алгоритмы, Дифференциальная эволюция, Муравьиный алгоритм, Метод роя частиц

список из Википедии, весь наверно не надо

  • нейронные сети?

Помимо библиотек численных методов:

  • построение диаграмм

А в язык встроить аналог Java Reflection API

  • Определение класса объекта.
  • Получение информации о модификаторах, полях, методах, конструкторах.
  • Создать экземпляр класса, имя которого неизвестно до момента выполнения программы (задается строкой).
  • ...

И регулярные выражения

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

И, как минимум, сделать блокировку "всплытия" событий к графику от элементов интерфейса, сейчас раздражает перетаскивающийся объект окна вместе с прокруткой графика (а может уже есть?).

За статические методы спасибо - мои синглтоны перестали быть глобальными функциями.

 
Renat:
Мы проделали огромный обьем работы по доводке компилятора MQL5 для упрощения конвертации существующих библиотек, написанных на других языках.

Причем развитие языка MQL5 продолжается. В ближайшее время появятся новые возможности, включая мощный профайлер кода.

Сейчас перед нами встали две задачи:
1) выбрать полезные опенсорсные библиотеки для конвертации
2) собрать добровольцев для реализации проектов конвертации (мы профинансируем это)

Для начала хотелось бы собрать список потенциальных проектов. Помогите ссылками и кратким описанием, пожалуйста.
Думаю, желающим выгоднее выкладывать библиотеки в маркет, т.к. это долговременный задел, а вы предлагаете разовую оплату. Конечно, если вы готовы предлагать от $10 000 до $50 000 и более за проект, тогда другой разговор, тогда готов что-нибудь переложить.
 
-Alexey-:
Думаю, желающим выгоднее выкладывать библиотеки в маркет, т.к. это долговременный задел, а вы предлагаете разовую оплату. Конечно, если вы готовы предлагать от $10 000 до $50 000 и более за проект, тогда другой разговор, тогда готов что-нибудь переложить.
Очень интересно, что же такое вы готовы предложить? Ну хоть тоненький намек плиз?
 
Еще работа с комплексными числами, с большими числами. Преобразование координат, с дальнейшим созданием трехмерных графиков.
 
TheXpert:
Переложить :)
Ай! Ой!  :)
 

Еще вопросец -- если вы сейчас стремитесь приблизить MQL5 к С++ максимально, может пересмотрите вопрос касательно #ifdef или #if defined или просто #if?

Далее, подниму вопрос касательно отладки библиотек, возможно не заметили?

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

Он конечно частично решается внутренним контролем, но в свете наращивания именно библиотечного кода очень даже актуален.

ЕМНИП, бряки в либках не работают.

 
Renat:
Странно слышать про "гарантированное обращение к длл", когда это уже 7 лет отлично работает и в MQL4 и в MQL5.

Отлично работает – это когда берем С++ (или C#) длл с заголовочным файлом, кладем их в соответствующую папку, оригинальный заголовочный файл (или файлы) включаем через #include в свой код и все. Разве так сейчас можно?

 
А что, такое в каком-либо другом не C/C++ языке возможно?

Полное отсутствие безопасности C/C++ и прямой доступ к данным плохо сочетаются с языками, хотя бы минимально заботящихся о безопасности. Заголовочные *.h файлы можно использовать в MQL5 практически как есть, переименовав в MQH. Но места, оперирующие ссылками и прямым доступом к данным нужно будет править.

При всем этом связки с DLL работают именно отлично.

 
Renat:
 . . . Заголовочные *.h файлы можно использовать в MQL5 практически как есть, переименовав в MQH. Но места, оперирующие ссылками и прямым доступом к данным нужно будет править.

Предполагаю что править придется многое.

Вообще-то в прямом доступе к данным ничего страшного нет. Ведь сам MetaTrader наверное написан на С/С++, и ничего. И более того обычно линкеры позволяют делать даже ассемблерные вставки, и тоже ничего. Вспомним, что MetaTrader запущенный под виндовс прямо или косвенно использует огромное количество системных длл, и тоже ничего страшного.

Мне кажется, что нельзя лишать пользователя права выбора. Мне бы очень понравился вариант, когда я мог бы взять, например, ALGLIB-dll и их родной заголовочный файл (файлы) и пользоваться надежной отлаженной библиотекой не прикасаясь к ней своими “кривыми ручками”, а просто указав компилятору MQL, что это заголовочный файл от C++, а не MQL.

Может возникнуть вопрос – а вдруг эта библиотека вредоносная и опасная? Но ведь я сам решил ее использовать.

Другими словами – написанное в MQL пусть будет насколько Вам угодно безопасным, но если я осмелился подключить что то внешнее, то это уже мои личные проблемы. Так же как и защита моей операционной системы, которая, кстати, тоже может представлять опасность для MetaTrader.