Новая версия платформы MetaTrader 5 build 3390: Float в OpenCL и математических функциях, методы активации и потерь для машинного обучения
в пп23, точно нет опечаток ???
'levels.bmp' as 'uint levels[18990]'
потому что если их нет (помимо ;) то язык насмарку, и будет "пора валить"
в пп23, точно нет опечаток ???
потому что если их нет (помимо ;) то язык насмарку, и будет "пора валить"
В чем вы видите опечатку, если это вывод в журнал компиляции?
BMP файл, включенный в проектный *.mqproj файл, автоматически конвертируется в 32 битный массив битмапа с альфаканалом и становится доступным для прямого read only использования в программе.
Тем самым резко упрощается использования графических ресурсов. Больше не нужно вызывать связку #resource filename и ResourceReadImage для получения того же самого uint битмапа.
Интересные подвижки, хорошо бы почитать статьи по применению этих векторов, в чем там преимущество вырисовывается, и как из них нейронки лепить.
Кроме нейронок, хорошо бы иметь модели на деревьях решений, как для мульти классификации, так и для регрессии.
Кажется очевидным, что все МО надо организовывать в режиме "Математические вычисления", но там нельзя получить доступ к данным чартов, а хотелось бы иметь возможность доступа к большой истории чарта, в том числе с возможностью вызова туда индикаторов и получения с них результатов вычислений, нужно это с целью создания динамичной выборки, особенно если задачей является поиск предикторов, и решается она, в том числе, через перебор настроек индикаторов. Хотелось бы агентов использовать как ноды.
Да, и по поводу агентов, можно сделать расписание в терминале, что б использование агентов, в том числе удаленных, в определенные часы останавливалось - при длительных вычислениях хочется экономить электричество в дорогие интервалы времени. Расписание по аналогии с продажей в клауд.
Хорошо бы сделать параллельную синхронизацию тайм фреймов с первым тиком, а не последовательно - от меньшего к большему, как сейчас, при этом давать всем индикаторам рассчитаться, а только потом генерировать событие тика. Это важно, если тестирование идет по OHLC, так как пропуск тиков ведет к искажению результатов. Такой режим, может сделать отдельным, срабатывающим при установки галочки, пусть он чуть медленней текущего, зато точней будут данные для обработки, в том числе для МО.
По поводу картинок - почему бы не сделать поддержку jpg - очень нужно бывает...
Кроме нейронок, хорошо бы иметь модели на деревьях решений, как для мульти классификации, так и для регрессии.
Абсолютно согласен.
И ещё по поводу функций потерь - было бы неплохо иметь штатную возможность строить кастомные. Стандартные не вполне соответствуют трейдерским задачам.
Никаких проблем. Пишете свою функцию потерь и оцениваете два вектора
Речь, скорее, о следующем шаге, когда будут создаваться функции для обучения моделей. Если до этого шага у вас дойдёт дело, то хотелось бы иметь штатную возможность обучать и с кастомными функциями потерь, в которые аргументами (помимо прогнозов и выходов) могут входить признаки и метапараметры.
там же разница на уровне рандомной погрешности обучения алгоритмов, единственное что деревянные быстрее обучаются
Да, как минимум скорость. С нейронками игрался, но результат был заметно хуже, возможно не хватило навыков в предобработке. К тому же, деревянные все же лучше работают с категориальными признаками, пусть и не явно выраженными. Да и мне нужны инструменты для реализации своих задумок, которые больше под деревья заточены :)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В четверг 4 августа 2022 года будет выпущена обновленная версия платформы MetaTrader 5. Обновление содержит следующие изменения:
На мировом рынке котируются не менее 7 000 ликвидных акций и более 2 000 ETF. Кроме того, есть множество фьючерсов и других производных инструментов. Платформа MetaTrader 5 содержит огромную базу данных по биржевым инструментам и позволяет прямо из Market Watch в один клик перейти на сайт агрегатора для получения фундаментальных данных. Для удобства инвесторов для каждой ценной бумаги мы предлагаем на выбор множество источников информации.Мы продолжаем расширять возможности платформы MetaTrader 5 для алготрейдинга и машинного обучения. Ранее мы добавили новый тип данных — матрицы и векторы, которые позволяют отказаться от использования массивов для обработки данных. Для работы с ними мы добавили в язык MQL5 более 70 методов, которые позволяют проводить вычисления из линейной алгебры и статистики в виде одной операции. Умножение, преобразование и решение системы уравнений — всё это теперь делается просто и без лишнего программирования. Добавление новых типов не оставило в стороне и математические функции.
Математические функции изначально были предназначены для проведения математических операций над скалярными величинами. Теперь большая часть этих функций может использоваться и с новыми типами данных — матрицами и векторами — MathAbs, MathArccos, MathArcsin, MathArctan, MathCeil, MathCos, MathExp, MathFloor, MathLog, MathLog10, MathMod, MathPow, MathRound, MathSin, MathSqrt, MathTan, MathExpm1, MathLog1p, MathArccosh, MathArcsinh, MathArctanh, MathCosh, MathSinh, MathTanh. В этом случае матрица или вектор обрабатываются почленно. Пример:
В случае MathMod и MathPow в качестве второго параметра может быть использован как скаляр, так и матрица или вектор соответствующего размера.
Покажем на примере, как вычислить стандартное отклонение с помощью математических функций над вектором.
MQL5: Доработаны математические функции для работы с типом float. В связи с появившейся возможностью применения математических функций к матрицам и векторам типа float, были также доработаны соответствующие функции, применяемые к скалярам типа float. Раньше параметры этих функций безусловно приводились к типу double, вызывалась соответствующая реализация математической функции, и затем результат приводился к типу float. Теперь в случае типа float параметры и результаты не подвергаются приведению, так как вызываются реализации математических функций, соответствующих типу float.
Разница в вычислениях на примере математического синуса:
Функция активации в нейронной сети определяет, как взвешенная сумма входного сигнала преобразуется в выходной сигнал узла или узлов на уровне сети. Выбор функции активации имеет большое влияние на возможности и производительность нейронной сети. В разных частях модели могут использоваться разные функции активации. В MQL5 реализованы не только все известные функции активации, но и производные активационной функции. Производные функции нужны для быстрого вычисления поправки на основании полученной ошибки во время обучения нейронной сети.
Функция потерь отвечает за оценку того, насколько хорошо модель предсказывает реальное значение. Построение модели сводится к решению задачи минимизации значения этой функции на каждом этапе. В зависимости от типа данных требуется использовать разные подходы, то есть разные функции. Функция потерь также может зависеть от переменных весов и смещения. Функция потерь одномерна и не является вектором, поскольку она оценивает, насколько хорошо нейронная сеть работает в целом.
Если для решения задачи требуется использовать только GPU с поддержкой double, то это можно явно указать при вызове CLContextCreate с помощью нового значения CL_USE_GPU_DOUBLE_ONLY (разрешается использовать только устройства, которые поддерживают вычисления с типом double).
volume=-1 && volume_real=2 — будет использован volume_real=2,
volume=3 && volume_real=0 — будет использован volume=3.
Объем с повышенной точностью MqlBookInfo.volume_real имеет больший приоритет по сравнению с обычным MqlBookInfo.volume. Если для элемента стакана указаны оба значения, будет использовано volume_real.
Если хотя бы один элемент стакана описан неверно, система отбросит переданное состояние полностью.
Обновление будет доступно через систему Live Update.