МЕТОДОЛОГИЯ TDD: ПОНИМАНИЕ И РЕФАКТОРИНГ
Методология Test-Driven Development (TDD) позволяет разработчикам писать четко определенные модули и переменные для улучшения тестового покрытия, понимать предметную область и минимизировать сложность. Но она имеет главный недостаток — технический долг, который возникает из-за решения минимально возможных задач. Этот долг часто выражается в избыточных функциях и ненужных классах.
Рефакторинг становится критически важным, как показано на примере класса CPublish. Реорганизация кодов, упрощение, объединение заголовков и независимая установка каждого элемента помогают улучшить структуру и читаемость кода. Однако, важна тщательная проверка записи и чтения пакетов до интеграции с системами уровня сохранения для минимизации ошибок и упрощения тестирования.
Читать далее...
Методология Test-Driven Development (TDD) позволяет разработчикам писать четко определенные модули и переменные для улучшения тестового покрытия, понимать предметную область и минимизировать сложность. Но она имеет главный недостаток — технический долг, который возникает из-за решения минимально возможных задач. Этот долг часто выражается в избыточных функциях и ненужных классах.
Рефакторинг становится критически важным, как показано на примере класса CPublish. Реорганизация кодов, упрощение, объединение заголовков и независимая установка каждого элемента помогают улучшить структуру и читаемость кода. Однако, важна тщательная проверка записи и чтения пакетов до интеграции с системами уровня сохранения для минимизации ошибок и упрощения тестирования.
Читать далее...
❤2
В MetaTrader 5 событие NewTick обрабатывается только на символах, к которым привязан советник. Чтобы организовать мультисимвольную торговлю, разработчики прибегают к разнообразным методам. Одна из таких методик — использование библиотеки, создающей мультисимвольную обработку OnTick для всех выбранных торговых символов. Библиотека предлагает удобную обертку вокруг стандартной реализации.
Для иллюстрации работы библиотеки рассмотрим пример мультисимвольного советника, подсчитывающего количество тиков для каждого символа. Для проверки правильности работы советника его следует протестировать в MT5-тестере. В входных параметрах задаются через запятую символы, которые будут обрабатываться мультисимвольным OnTick. Журнал тестера подтвердил полную обработку всех тиковых данных.
С этой библиотекой результат работы советника в тестере становится независимым от основного символа, и ни один т...
Читать далее...
Для иллюстрации работы библиотеки рассмотрим пример мультисимвольного советника, подсчитывающего количество тиков для каждого символа. Для проверки правильности работы советника его следует протестировать в MT5-тестере. В входных параметрах задаются через запятую символы, которые будут обрабатываться мультисимвольным OnTick. Журнал тестера подтвердил полную обработку всех тиковых данных.
С этой библиотекой результат работы советника в тестере становится независимым от основного символа, и ни один т...
Читать далее...
👍5❤3👌1
Технология символьной регрессии (SR) позволяет строить модели, сопоставляя независимые переменные с зависимой в виде дерева выражений. В отличие от традиционных методов, SR начинает процесс без предварительных гипотез, что облегчает её адаптацию к новым данным и изменяющимся условиям рынка. SR предлагает возможность использования множества источников данных для более точной и комплексной аналитики.
Процесс символьной регрессии включает начальную генерацию случайных деревьев выражений и дальнейшую их генетическую оптимизацию через этапы кроссоверов и мутаций. Это улучшает соответствие модели данным и вводит элемент объясняемости, важный для понимания процессов внутри "черного ящика" моделей.
Реализация SR позволяет извлекать скрытые рыночные закономерности, остающиеся недоступными для других методов. Использование SR способствует улучшению предсказательной эффективности за счет возм...
Читать далее...
Процесс символьной регрессии включает начальную генерацию случайных деревьев выражений и дальнейшую их генетическую оптимизацию через этапы кроссоверов и мутаций. Это улучшает соответствие модели данным и вводит элемент объясняемости, важный для понимания процессов внутри "черного ящика" моделей.
Реализация SR позволяет извлекать скрытые рыночные закономерности, остающиеся недоступными для других методов. Использование SR способствует улучшению предсказательной эффективности за счет возм...
Читать далее...
👍4❤1
MetaTrader 5 build 4585 дополняет ранее выпущенное обновление, где мы существенно улучшили веб-терминал и расширили функции для машинного обучения в MQL5. Сейчас мы исправили ряд ошибок, чтобы сделать вашу работу с платформой еще более комфортной:
• В десктопной платформе исправлены падения, возникавшие в некоторых случаях при остановке профилировки MQL5-программ.
• В MetaEditor исправлены утечки памяти при компиляции MQL5-программ и при работе функций интеллектуального управления кодом.
• В тестере стратегий исправлены падения, возникавшие в некоторых случаях при повторном запуске одиночного прохода тестирования.
Обсудить обновление...
• В десктопной платформе исправлены падения, возникавшие в некоторых случаях при остановке профилировки MQL5-программ.
• В MetaEditor исправлены утечки памяти при компиляции MQL5-программ и при работе функций интеллектуального управления кодом.
• В тестере стратегий исправлены падения, возникавшие в некоторых случаях при повторном запуске одиночного прохода тестирования.
Обсудить обновление...
👍6👏3❤1
Подключение к криптобирже Binance для получения котировок в терминале МТ5 возможно с использованием специального скрипта. Для начала необходимо включить опцию WebRequest в настройках советников и добавить адрес сайта: https://api.binance.com. Далее, скрипт BinanceQuotesDownloader нужно разместить в папке Скрипты в каталоге терминала. Запустите его двойным щелчком. В меню Вид выберите Символы, затем в разделе Custom найдите Binance. Выберите нужные криптовалюты двойным щелчком. Чтобы открыть новый график, воспользуйтесь пунктом Файл - Новый график - Custom - Binance. В процессе загрузки котировок вы можете наблюдать его во вкладке Эксперты. Теперь доступны котировки криптовалют, подключение пользовательских индикаторов и анализ рынка.
Читать далее...
Читать далее...
👍8✍3❤1🔥1
Метаэвристический алгоритм Artificial Showering Algorithm (ASHA) представлен как новый мощный инструмент для оптимизации. Основанный на имитации водного потока, ASHA помогает находить глобальные минимумы целевых функций, преодолевая трудности локальных экстремумов. Алгоритм использует механизмы исследования и систематического улучшения решений, меняя вероятность движения агентов - капель воды - по мере прогресса итераций. Его способность адаптивно реагировать на динамические изменения делает его эффективным даже в искушенных задачах финансов и научных исследований. ASHA экономит вычислительные ресурсы и улучшает качество решений, особенно актуально в условиях ограниченного времени и ресурсов.
Читать далее...
Читать далее...
👍2
Способы обнаружения изменений рыночных трендов. Анализ скользящих средних помогает выявить развороты рынка. Важно учитывать, что длинные периоды скользящих средних могут сигнализировать о значительных изменениях. Свечные модели также эффективны для распознавания разворотов. Линии тренда и уровни поддержки/сопротивления на платформе MetaTrader 5 необходимы для понимания изменения трендов. Проблемы системы возникают из-за колебаний на коротких таймфреймах, меняющих начальные настроения. Внедрение новой функции на MQL5 позволяет улучшить обнаружение разворотов, применяя пересечения EMA и SMA как сигналы для принятия решений.
Читать далее...
Читать далее...
👍5❤1
В статье освещены два подхода к объединению одиночных стратегий для улучшения их совместной работы в MetaTrader 5. Первый подход использует результаты оптимизации на всём интервале, второй выделяет небольшой интервал для дополнительных проверок. В статье рассмотрена автоматизация второго этапа оптимизации с применением генетического алгоритма, что упрощает процесс выбора оптимальных экземпляров стратегий. Дополнительно внесены корректировки в работу с базами данных, улучшена обработка данных для форвард-периодов, что позволяет более точно и эффективно формировать группы стратегий. Эти улучшения дают трейдерам и разработчикам ценные инструменты для повышения точности и эффективности торговых стратегий.
Читать далее...
Читать далее...
👍3🔥1
В новой статье исследован процесс создания алгоритмического торгового советника на MQL5, акцент на применении псевдокода. Псевдокод служит важным связующим звеном между концептуальной и практической частью разработки, позволяя четко организационно подходить к написанию кода. Метод проектного обучения с последовательным переходом от простого к сложному облегчает понимание MQL5, способствует освоению алгоритмических стратегий и интеграции AI-кода. Такой подход нацелен на создание эффективных и безошибочных алгоритмов, подчеркивает важность освоения традиционных навыков программирования даже с включением в процесс инструментов искусственного интеллекта.
Читать далее...
Читать далее...
👍2❤1
Штатная интеграция с Python позволяет легко использовать все многообразие математических и статистически библиотек этого языка для анализа рыночных данных прямо внутри MetaTrader.
Специально для тех, кто интересуется Python, мы собрали более двух сотен полезных видео:
✓ Установка и создание первого скрипта
✓ Создание полезных скриптов для автоматизации ручных операций
✓ Сбор и анализ ценовых данных
✓ Разработка торговых роботов
✓ Интеграция с AI, включая ChatGPT
В отдельной ветке форума вы можете обcудить свои идеи или задать вопросы тем, кто тоже занимается разработкой на Python.
Делитесь опытом и получайте новые знания
Специально для тех, кто интересуется Python, мы собрали более двух сотен полезных видео:
✓ Установка и создание первого скрипта
✓ Создание полезных скриптов для автоматизации ручных операций
✓ Сбор и анализ ценовых данных
✓ Разработка торговых роботов
✓ Интеграция с AI, включая ChatGPT
В отдельной ветке форума вы можете обcудить свои идеи или задать вопросы тем, кто тоже занимается разработкой на Python.
Делитесь опытом и получайте новые знания
❤4🔥2👍1🏆1
Индикатор предоставляет возможность вычислить уровень риска в процентном соотношении, а также определить предельный размер лота, соответствующий заданному риску. Пользователь должен ввести процент риска и размер стопа в пипсах. Эта функциональность полезна для трейдеров, стремящихся эффективно управлять своими инвестиционными рисками и принимать обоснованные торговые решения. Простой и удобный инструмент, который автоматизирует сложные расчёты, позволяя сосредоточиться на стратегии и анализе рынка. Данные вводятся вручную, после чего пользователь получает оптимальный размер лота, помогающий избежать превышения допустимого риска.
Читать далее...
Читать далее...
👍5👏1👌1
от переменной-флага `bAddNeckGradient`. Если флаг установлен, данные внутренней "шеи" передаются в `calcInputGradients` соответствующего слоя для обновления внутренних градиентов. В противном случае градиенты состояния "шеи" сбрасываются. После этого повторяем процесс для блока повторного внимания и корректируем полученные градиенты. Далее переносим градиенты исходных данных через блок первичного внимания, производим остаточное складывание и добавляем обратное масштабирование. Метод `feedBackward` выставляет параметры между внутренним объектом и исходным источником данных. Это позволяет продвинуть градиенты через ещё один проход.
Следующим шагом является внедрение модуля OCM. Этот модуль позволяет группировать и анализировать лингвистические примитивы, выявляя разнообразные семантические паттерны. С учетом изменяющихся требований мультимодальных данных, внедрение обучаемых токенов ф...
Читать далее...
Следующим шагом является внедрение модуля OCM. Этот модуль позволяет группировать и анализировать лингвистические примитивы, выявляя разнообразные семантические паттерны. С учетом изменяющихся требований мультимодальных данных, внедрение обучаемых токенов ф...
Читать далее...
👍1
Введение в мир бинарных моделей регрессии, таких как логит и пробит, демонстрирует их применение в прогнозировании ценовых изменений валютных пар. Эти модели, основанные на методах машинного обучения, позволяют предсказывать движение цен на основе стандартных ценовых паттернов.
Подготовка данных включает в себя выбор подходящих признаков и их стандартизацию. Алгоритмы, такие как L-BFGS, используются для оценки параметров, позволяя упростить интерпретацию результатов и избежать переобучения с помощью L2-регуляризации.
Прогнозирующая функция LogitExpert автоматически переобучает параметры, основываясь на свежих данных. Она также оценивает значимость предсказываемых параметров, что позволяет учесть статистическую надёжность сигналов для торговли.
Особенности эксперта включают динамическую оптимизацию модели, что позволяет адаптироваться к постоянно изменяющимся рыночным условиям. Спе...
Читать далее...
Подготовка данных включает в себя выбор подходящих признаков и их стандартизацию. Алгоритмы, такие как L-BFGS, используются для оценки параметров, позволяя упростить интерпретацию результатов и избежать переобучения с помощью L2-регуляризации.
Прогнозирующая функция LogitExpert автоматически переобучает параметры, основываясь на свежих данных. Она также оценивает значимость предсказываемых параметров, что позволяет учесть статистическую надёжность сигналов для торговли.
Особенности эксперта включают динамическую оптимизацию модели, что позволяет адаптироваться к постоянно изменяющимся рыночным условиям. Спе...
Читать далее...
❤6👍3👏1
Фильтр Ходрика — Прескотта, известный среди трейдеров, основывается на математическом свойстве: вторая производная линейного тренда равняется нулю. В дискретной форме вторая производная выражается как x[0] - 2*x[1] + x[2]. Это выражение может быть рассчитано для прогнозирования, предполагая неизменность тренда: x[0] = 2*x[1] - x[2]. Однако, в базовой форме фильтр оказывается неустойчивым. Необходимо, чтобы все коэффициенты фильтра находились в пределах от -1 до +1. Пользователь может применить несколько вторых производных с различной частотой дискретизации для повышения устойчивости. Например, для предсказания цены открытия: open[-1] = 2*open[0] - open[1] и другие подобные. После этого можно вычислить среднее всех значений для формирования прогноза. Возможные доработки включают добавление весовых коэффициентов или использование адаптивных методов, таких как LWMA, чтобы улучшить точнос...
Читать далее...
Читать далее...
🔥5👏2
Статья предлагает углубленный подход к оптимизации мультивалютного торгового эксперта для MetaTrader 5, рассчитанного на работу на реальных счетах. Выделены три ключевые задачи: адаптация символов под брокеров, создание режима завершения торговли и обеспечение восстановления после перезапуска терминала. Методы включают использование динамических подмен символов через строку настроек, установка лимитов прибыли и времени ожидания в риск-менеджере, а также внедрение механизмов сохранения и загрузки данных для продолжения работы. Это обеспечивает надежность работы и минимизацию рискованных ситуаций в реальной торговле, помогая трейдерам и разработчикам.
Читать далее...
Читать далее...
🔥4❤1👍1
В профессиональной IT-среде обсуждается модель для распознавания рукописных цифр, основанная на MNIST. База данных MNIST включает в себя 60,000 изображений для обучения и 10,000 изображений для тестирования, составленных из обработанных чёрно-белых образцов NIST, дополненных образцами студентов американских университетов. Изображения нормализованы до 28x28 пикселей в серых тонах. Модель mnist.onnx из зоопарка моделей поддерживает opset 8, но не совместима с устаревшим opset 1. Примечательно, что выходной вектор модели не прошёл через Softmax, но это легко исправляется. Для распознавания цифр используется интерфейс с возможностью рисования мышью. Вероятности выводятся, если результат ниже 0.8, причём особенные сложности возникают с цифрой 9. Цифры с левым наклоном обрабатываются более уверенно.
Читать далее...
Читать далее...
👍4👏1🏆1
методов оптимизации в модели, в частности на объём создаваемых буферов для моментов 2-го порядка. Для методики Adam-mini сократим объём этого буфера. Вместо хранения отдельного значения для каждого параметра, будем хранить одно значение на блок параметров. Для полносвязного слоя это число соотносится с количеством нейронов слоя результата.
При внесении изменений, метод updateInputWeights должен также учитывать новые размеры буферов памяти. Это позволит грамотно использовать преимущества Adam-mini и оптимизировать потребление памяти, что особенно актуально для обучения больших моделей на ограниченных ресурсах.
Кроме того, эта модификация позволит повысить производительность и скалируемость при обучении более крупных архитектур.
Читать далее...
При внесении изменений, метод updateInputWeights должен также учитывать новые размеры буферов памяти. Это позволит грамотно использовать преимущества Adam-mini и оптимизировать потребление памяти, что особенно актуально для обучения больших моделей на ограниченных ресурсах.
Кроме того, эта модификация позволит повысить производительность и скалируемость при обучении более крупных архитектур.
Читать далее...
👍4✍1👏1
Советник осуществляет анализ вероятностей достижения тейк-профита и стоп-лосса, используя данные из виртуальных сделок. Процесс начинается с обучения в тестере, где пользователь устанавливает желаемые пороги вероятностей. Важно отметить, что для корректной работы необходимо активировать опции "Читать историю оптимизации" и "Сохранять историю оптимизации". После данного этапа советник начинает осуществлять торговлю, опираясь на результаты оптимизации. Он способен хранить статистику до 50 000 сделок, что позволяет анализировать большой объем данных. Параметры, такие как дельта, шаг паттерна и стоп-лосс, определяются на основе величин ATR выбранного инструмента.
Читать далее...
Читать далее...
👍7
Недавняя публикация о разработке системы репликации интересна как пример практической автоматизации в MetaTrader 5 с использованием MQL5. Рассматривается переход от скриптов к сервисам для повышения функциональности. Подчеркивается важность преобразования скрипта в сервис для реализации сложных задач наблюдения за графиками.
Пример применения: простейший скрипт, трансформирующийся в сервис, добавляет индикатор на график. Внимание уделено различиям между скриптами и сервисами и их применению для анализа графиков. Объясняется, как сервисы помогают в стандартной настройке графиков и удержании индикаторов, что позволяет обеспечить предсказуемое и постоянное отображение данных.
Читать далее...
Пример применения: простейший скрипт, трансформирующийся в сервис, добавляет индикатор на график. Внимание уделено различиям между скриптами и сервисами и их применению для анализа графиков. Объясняется, как сервисы помогают в стандартной настройке графиков и удержании индикаторов, что позволяет обеспечить предсказуемое и постоянное отображение данных.
Читать далее...
👍1🏆1
Цены на нефть, включая марки Brent и WTI, имеют значительное влияние на мировую экономику и торговлю. Различия между этими марками важны для понимания динамики рынка и развития стратегий торговли. Визуализация ценовых спредов и применение контролируемого машинного обучения помогают прогнозировать изменения цен. Понимание псевдообратных методов в линейной алгебре важно для сокращения ошибок в прогнозах. Современные алгоритмы внесли множество изменений в традиционные торговые стратегии. Тестирование стратегий с помощью MQL5 позволяет выявить их потенциал и ограничения в условиях изменяющегося нефтяного рынка.
Читать далее...
Читать далее...
🔥3👍1