English
preview
Преодоление проблем доступности в торговых инструментах на MQL5 (Часть I): Как добавить контекстные голосовые оповещения в индикаторы MQL5

Преодоление проблем доступности в торговых инструментах на MQL5 (Часть I): Как добавить контекстные голосовые оповещения в индикаторы MQL5

MetaTrader 5Примеры |
33 0
Clemence Benjamin
Clemence Benjamin

Содержание:



Введение

MetaTrader 5 и среда программирования MQL5 обеспечивают надежную основу для разработки торговых систем, уведомлений и автоматизированных рабочих процессов. По умолчанию терминал предлагает визуальные оповещения, простые звуковые сигналы, уведомления по электронной почте, push-уведомления на мобильные устройства, механизмы ведения лога и доступ к встроенным ресурсам, таким как файлы и мультимедиа. Хотя эти функции подтверждают, что событие произошло, им, как правило, не хватает контекстуальной детализации — стандартные звуковые оповещения не сообщают о том, является ли сигнал сигналом покупки, продажи или другого состояния системы. Это дает разработчикам возможность расширить платформу для более информативной коммуникации с учетом требований доступности.

Полностью автоматизированные торговые системы значительно выигрывают от этих возможностей. Они совершают сделки независимо в соответствии с предопределенной логикой, управляют рисками и генерируют результаты, которые могут быть просмотрены позже без постоянного мониторинга графика трейдером. Такая автономность выгодна всем трейдерам, которые не могут постоянно наблюдать за графиками, включая трейдеров с ослабленным зрением, занятых профессионалов или пользователей с ситуационными ограничениями. Отделяя наблюдение от выполнения, полностью автоматизированные системы снижают зависимость от визуальной обратной связи в режиме реального времени.

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

Нарушения зрения могут быть врожденными, прогрессирующими или внезапными, возникающими в результате заболеваний, несчастных случаев или возрастной дегенерации. Аналогичным образом, некоторые трейдеры могут испытывать частичные или временные ограничения слуха, работать в шумной обстановке или нуждаться во взаимодействии без использования рук по причине многозадачности. Ни одно из этих условий не снижает понимания рынка трейдером или его стратегических возможностей. Не существует никаких юридических или этических ограничений, препятствующих участию трейдеров с ограниченными возможностями на финансовых рынках — ограничение заключается в интерфейсе, а не в самом рынке. Как разработчики, мы несем ответственность за выявление этих барьеров и их устранение программными средствами.

В центре внимания этой статьи - изучение дизайна, учитывающего доступность, в контексте торговых индикаторов и полуавтоматических систем. В этой первой части мы демонстрируем, как улучшить взаимодействие системы с пользователем, используя ресурсы MQL5 для обеспечения контекстной голосовой обратной связи, объясняющей, что представляет собой оповещение, вместо того, чтобы полагаться только на общие звуковые сигналы. Такой подход повышает наглядность для трейдеров с ослабленным зрением, а также удобен для пользователей, предпочитающих взаимодействие с помощью звука. В следующих частях мы рассмотрим расширение этой базы с помощью технологий искусственного интеллекта и генеративных голосовых технологий посредством внешних API. К концу этой статьи вы поймете, каким образом улучшения доступности можно систематически интегрировать в торговые инструменты без ущерба для эффективности работы, удобства использования или целостности дизайна.



Обоснование проблемы доступности

Доступность в технологиях относится к разработке систем, интерфейсов и взаимодействий, которые могут эффективно использовать люди с различными физическими, сенсорными или когнитивными способностями. В современных потребительских технологиях доступность больше не является необязательной — это ожидаемый принцип проектирования. Смартфоны, компьютеры и операционные системы теперь включают в себя программы для чтения с экрана, голосовые помощники, режимы высокой контрастности, адаптивные методы ввода, тактильную обратную связь и настраиваемый размер текста. Эти функции позволяют пользователям с нарушениями зрения или слуха самостоятельно управлять сложными системами, не полагаясь на визуальный осмотр или внешнюю помощь.

Однако в программном обеспечении для финансовой торговли доступности исторически уделялось гораздо меньше внимания. Доминирующая модель взаимодействия построена на графиках, свечах, индикаторах, стрелках, цветах и оверлеях. Хотя такой подход эффективен для полностью зрячих пользователей, он подразумевает постоянное визуальное взаимодействие. Для трейдеров с нарушениями зрения, временно неспособных видеть графики или работающих в неидеальных условиях, эта модель создает ненужные барьеры. Проблема становится более очевидной в полуавтоматических системах, где после обнаружения сигнала требуется подтверждение или вмешательство человека. Без альтернативных механизмов обратной связи критически важная информация остается недоступной в тот момент, когда она наиболее важна.

Проблемы доступности в торговле выходят за рамки постоянных нарушений зрения. Некоторые трейдеры могут испытывать частичную или прогрессирующую потерю зрения, ограничения слуха или ситуационные нарушения, такие как усталость, болезнь, многозадачность или шумное окружение. Другие могут просто предпочесть взаимодействие без использования рук, сосредоточившись на анализе, оценке рисков или других задачах. Разработка с учетом доступности выгодна не только пользователям с ограниченными возможностями, но и занятым специалистам, которые не могут постоянно отслеживать графики или уведомления визуально. Четкая, структурированная коммуникация — особенно с помощью контекстной аудиосвязи — повышает эффективность и снижает когнитивную нагрузку на всех пользователей.

Основные причины ограничений доступности торговых инструментов можно резюмировать следующим образом:

  • Сильная зависимость от визуальных элементов графика для передачи критически важной информации
  • Общие звуки оповещения, не имеющие контекстуального значения
  • Зависящие от времени требования к взаимодействию в полуавтоматических системах
  • Ограниченное использование альтернативных каналов обратной связи, таких как структурированное аудио или голосовое взаимодействие

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

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



Реализация: Решение с использованием MQL5 на основе простой стратегии пересечения

Чтобы проиллюстрировать дизайн, ориентированный на доступность, мы реализовали простой индикатор пересечения скользящих средних (MA) в MQL5. Эта стратегия использует две скользящие средние: быструю и медленную. Когда быстрая скользящая средняя пересекается над медленной скользящей средней, индикатор генерирует сигнал на покупку. И наоборот, когда быстрая скользящая средняя проходит ниже медленной, индикатор генерирует сигнал на продажу. Хотя сама стратегия проста, основное внимание при ее реализации уделяется коммуникации, а не эффективности торговли.

MQL5 предоставляет ресурсы, позволяющие разработчикам встраивать внешние файлы, включая аудиоклипы, непосредственно в индикаторы или советники. В целях повышения доступности с помощью такой программы, как Audacity, можно подготовить короткие предварительно записанные аудиосообщения, такие как “Обнаружен сигнал на покупку” и “Обнаружен сигнал на продажу”. Затем эти файлы включаются в качестве встроенных ресурсов и запускаются программно при возникновении события пересечения.

Параллельно индикатор генерирует структурированный текстовый вывод с помощью функций PrintFormat(), Alert() или Comment(). Каждое уведомление содержит важные сведения, такие как:

  • Анализируемый инструмент (например, EURUSD).
  • Таймфрейм (например, H1, M15).
  • Направление сигнала (BUY или SELL).
  • Значения быстрой и медленной скользящих средних в момент пересечения.
  • Цена, при которой произошло пересечение.

Например, уведомление может гласить:
"Обнаружено пересечение скользящих средних. Сигнал на покупку по паре EURUSD H1. Быстрая скользящая средняя 1,08452 пересекла медленную скользящую среднюю сверху 1,08397 при цене 1,08460".

Реализация происходит следующими этапами:

  • Определяем входные параметры для быстрой и медленной скользящих средних.
  • Рассчитываем значения скользящих средних на каждом тике или завершенном баре.
  • Обнаруживаем события пересечения, сравнивая предыдущие и текущие значения скользящей средней.
  • Запускаем структурированные текстовые уведомления и встроенное воспроизведение аудио.
  • Регистрируем в логе каждое событие для асинхронного просмотра, совместимого с программами чтения с экрана.

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

1. Запуск нового индикаторного проекта в MetaEditor

Каждый проект на MQL5 начинается с преднамеренной настройки. Открываем MetaEditor и создаём пользовательский индикатор. Выбираем имя: VoiceAlerts_MA_Crossover.

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

Мастер автоматически создает шаблон по умолчанию с:

В этот момент индикатор еще ничего не делает. Это нормально: мы будем создавать его шаг за шагом, сохраняя контроль над каждой функцией.

2. Метаданные и свойства

Первая задача программирования - определить, как MetaTrader будет работать с этим индикатором. Используя директивы #property мы указываем:

  • Где его отображать (indicator_chart_window)
  • Версия, авторские права и ссылка
  • Количество буферов и графических представлений

Эти свойства действуют как указания во время компиляции. Они не являются опциональными; они помогают MetaTrader в рендеринге и управлении памятью.

#property indicator_chart_window
#property version "1.02"
#property copyright "Copyright 2025, Clemence Benjamin"

На данном этапе у индикатора есть структура, но нет логики.

3. Планирование буферов и хранилища данных

Далее мы решаем, что будет вычислять и сохранять индикатор. Наш инструмент требует:

  • Значения быстрой скользящей средней
  • Значения медленной скользящей средней
  • ATR для позиционирования стрелок

Мы объявляем три буфера:

double FastMABuffer[];
double SlowMABuffer[];
double ATRBuffer[];

Затем мы привязываем эти буферы к индикатору с помощью функции SetIndexBuffer() и устанавливаем их как массивы временных рядов, чтобы индекс 0 всегда соответствовал последнему бару:

SetIndexBuffer(0, FastMABuffer);
SetIndexBuffer(1, SlowMABuffer);
SetIndexBuffer(2, ATRBuffer);

ArraySetAsSeries(FastMABuffer, true);
ArraySetAsSeries(SlowMABuffer, true);
ArraySetAsSeries(ATRBuffer, true);

 Буферы - это пассивная память, индикатор должен активно заполнять их.

4. Создание хэндлов индикатора

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

FastMAHandle = iMA(_Symbol, _Period, FastMAPeriod, 0, MaMethod, PriceType);
SlowMAHandle = iMA(_Symbol, _Period, SlowMAPeriod, 0, MaMethod, PriceType);
ATRHandle    = iATR(_Symbol, _Period, ATRPeriod);

Хэндлы действуют как вычислительные движки, которые мы позже запрашиваем для получения данных с помощью CopyBuffer().

Мы немедленно проверяем хэндлы. Это гарантирует ранний сбой индикатора при недоступности ресурсов, предотвращая непредсказуемое поведение.

5. Обратная связь по инициализации и доступности

OnInit() — это фаза конструктора. Вот:

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

if(EnableWelcomeSound)
    PlaySound("::Sounds\\welcome.wav");

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

6. Постоянные переменные состояния

Мы объявляем глобальные переменные для сохранения данных при вызовах функции OnCalculate():

datetime LastBarTime = 0;
datetime PendingSignalBar = 0;
string PendingDirection;

Эти переменные:

  • Определяют открытие новой свечи.
  • Сохраняют ожидающие сигналы пересечения.
  • Обеспечивают один сигнал на каждый бар.

Принцип здесь таков: минимальное и сфокусированное глобальное состояние предотвращает баги и упрощает поддержку логики.

7. Обнаружение открытий новых баров

Индикаторы вызываются несколько раз за тик. Чтобы избежать появления нескольких сигналов на каждом баре, мы реализуем функцию обнаружения новых баров:

if(time[0] != LastBarTime)
{
    LastBarTime = time[0];
    // execute logic
}

Почему это важно:

  • Позволяет избежать повторных оповещений
  • Обеспечивает срабатывание сигналов на подтвержденных барах
  • Поддерживает стабильное тестирование на истории

8. Копирование значений индикатора

Как только обнаруживается новый бар, мы извлекаем значения MA и ATR:

CopyBuffer(FastMAHandle, 0, 0, rates_total, FastMABuffer);
CopyBuffer(SlowMAHandle, 0, 0, rates_total, SlowMABuffer);
CopyBuffer(ATRHandle, 0, 0, rates_total, ATRBuffer);

MQL5 отделяет вычисления (хэндл) от доступа к данным (буфер). Этот паттерн применим к любому индикатору, основанному на хэндле, а не только к скользящей средней или ATR.

9. Обнаружение пересечений скользящих средних

Для предотвращения перерисовки мы используем логику закрытого бара:

int i = 1; // last closed bar
if(FastMABuffer[i+1] < SlowMABuffer[i+1] && FastMABuffer[i] > SlowMABuffer[i])
{
    PendingSignalBar = time[i];
    PendingDirection = "BUY";
}

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

10. Откладывание оповещений до открытия следующего бара

Вместо немедленного срабатывания, мы сохраняем сигнал и выполняем его при открытии следующего бара:

FireSignal(PendingDirection, PendingSignalBar, high, low);

Преимущества:

  • Предотвращает шум в середине бара
  • Обеспечивает последовательный и читаемый звуковой сигнал
  • Соответствует когнитивным ожиданиям относительно последовательных оповещений

11. Рисование стрелок Wingdings

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

double price = direction == "BUY" ? low[bar] - ATRBuffer[bar]*0.6
                                  : high[bar] + ATRBuffer[bar]*0.6;
ObjectCreate(0, name, OBJ_ARROW, 0, signal_time, price);

Для наглядности стрелки имеют цветовую кодировку: зеленый — для покупки, красный — для продажи.

12. Звуковые оповещения

Мы намеренно избегаем использования функции Alert(). Вместо неё мы используем PlaySound(), чтобы обеспечить, что:

  • Воспроизводятся только наши установленные звуки.
  • Отсутствуют воздействия от стандартных оповещений терминала.
  • Полный контроль обратной связи посредством аудиосигнала.

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

13. Очистка ресурсов

Наконец, в OnDeinit() мы освобождаем все хэндлы для очистки. Это предотвращает утечки памяти и обеспечивает стабильную работу графика.

IndicatorRelease(FastMAHandle);
IndicatorRelease(SlowMAHandle);
IndicatorRelease(ATRHandle);

Подготовка аудиофайлов для голосовых оповещений

Чтобы включить функцию обратной связи по звуку в индикаторе VoiceAlerts_MA_Crossover, необходимо предоставить аудиофайлы, соответствующие именам ресурсов, указанным в коде. Индикатор использует три основных звуковых сигнала:

  • welcome.wav — воспроизводится при загрузке индикатора.
  • Buy.wav — воспроизводится при пересечении бычьей скользящей средней.
  • Sell.wav — воспроизводится при пересечении медвежьей скользящей средней.

Запись аудиосигналов

Есть два основных варианта:

1. Запись в студийном качестве (опционально)

  • Используйте микрофон в тихой обстановке.
  • Записывайте короткие, четкие фразы или звуковые сигналы, соответствующие каждому событию.
  • Сохраняйте краткость аудиосигнала (достаточно 1-3 секунд).

2. Бюджетная/самостоятельная запись

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

Редактирование аудиозаписи

Независимо от способа записи, аудиозапись должна быть:

  • Обрезана, чтобы убрать тишину в начале и в конце
  • Сохранена в формате .wav (рекомендуется 16-битная модуляция PCM, частота 44100 Гц)
  • Названа точно так, как используется в индикаторе: welcome.wav, buy.wav, sell.wav

Базовое редактирование можно выполнить с помощью бесплатных инструментов, таких как Audacity:

  • Откройте записанный файл в Audacity.
  • С помощью инструмента обрезки удалите лишнюю тишину.
  • Экспортируйте в формате WAV (Файл → Экспорт → Экспорт в формате WAV).
  • Убедитесь, что имена файлов точно соответствуют ссылкам на код.

Альтернатива: Преобразование текста в речь (TTS)

Для тех, кто предпочитает сгенерированные голоса:

  • Воспользуйтесь любым инструментом TTS с открытым исходным кодом или онлайн-сервисом.
  • Генерируйте короткие фразы: "Индикатор загружен", "Сигнал на покупку", "Сигнал на продажу".
  • Сохраните каждый файл в формате .wav с точными названиями, указанными выше.

Размещение в терминале MQL5

После подготовки аудиофайлов:

1. Возьмите прикрепленную папку Sounds из этого проекта.

2. Скопируйте её в свой каталог в терминал MetaTrader 5 в разделе MQL5\Sounds.

3. Убедитесь, что файловая структура остается неизменной, а имена файлов указаны корректно.

Примечание: Если имена аудиофайлов не будут точно соответствовать коду, индикатор не сможет их найти, и компиляция может завершиться неудачно

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



Расширение системы: Голосовая обратная связь, команды и будущая интеграция искусственного интеллекта

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

Интеграция голосовых команд представляет собой еще одну возможность. Позволяя трейдерам устно отвечать на уведомления, полуавтоматические системы могут получать разрешения на исполнение, корректировку параметров или запросы, не требуя ввода данных с клавиатуры или мыши. Например, трейдер может сказать: "Одобряю сигнал на покупку EURUSD H1".  Система интерпретирует это как команду на исполнение сделки или постановку ее в очередь. Эта функция обеспечивает большую независимость трейдерам с ослабленным зрением и повышает эффективность для тех, кто занят или временно не может получить доступ к графику.

Набор технологий для таких усовершенствований может включать:

  • Локальные движки преобразования текста в речь (TTS) для немедленной обратной связи.
  • API-интерфейсы распознавания голоса для интерпретации команд.
  • Генерирующие модели искусственного интеллекта для предоставления контекстуальных объяснений или анализа сигналов.
  • Дополнительная облачная интеграция для поддержки нескольких языков или расширенного анализа прогнозных данных.

Используя ресурсы MQL5, эти взаимодействия могут быть инициированы индикатором, сохраняя при этом независимость от платформы. Например, индикатор может записывать структурированные события в файл или очередь сообщений, которые локальное вспомогательное приложение отслеживает для вывода TTS или обработки с помощью ИИ. Такое разделение обеспечивает соответствие требованиям безопасности платформы и поддерживает стабильность системы.

Такой подход не только инклюзивен, но и выгоден для трейдеров без каких-либо потерь. Подробная голосовая обратная связь позволяет ускорить принятие решений, сокращает количество упущенных возможностей и улучшает ситуационную осведомленность во время напряженных торговых сессий. Будущая интеграция искусственного интеллекта может еще больше усовершенствовать систему, предоставляя объяснения на естественном языке, прогнозную оценку рисков и интерактивное обучение для всех трейдеров.



Тестирование и оценка

При тестировании индикатора VoiceAlerts_MA_Crossover применяется как историческая, так и оперативная проверка. В тестере стратегий (вкладка "Эксперт") мы подтвердили, что все события пересечения скользящих средних были корректно обнаружены и записаны в текстовые логи. Звуковые оповещения в тестере стратегий не воспроизводились, поэтому, чтобы протестировать функциональность звука, мы применили индикатор на живом графике.

Для эффективной проверки звуковых уведомлений:

  • Используйте таймфрейм продолжительностью в 1 минуту, чтобы пересечения скользящих средних происходили без длительных периодов ожидания.
  • Позвольте системе дождаться открытия следующего бара после обнаружения пересечения; это гарантирует, что звук будет воспроизведен синхронно с логикой отложенного оповещения индикатора.
  • Успешное воспроизведение звукового сигнала приветствия при инициализации подтверждает, что аудиосистема функционирует, в то время как последующие звуковые сигналы покупки/продажи демонстрируют надлежащее оповещение о событии.

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

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



Заключение

Используя простой индикатор пересечения скользящих средних в качестве демонстрации, мы успешно показали, как контекстная звуковая обратная связь может быть интегрирована в индикатор MQL5, используя возможности платформы по управлению ресурсами и воспроизведению звука. Индикатор обеспечивает немедленную обратную связь во время инициализации, подтвержденную приветственной аудиозаписью, продемонстрированной в прилагаемом видео, и выдает важные голосовые оповещения, объясняющие, какое событие произошло, вместо того, чтобы полагаться на неинформативные звуковые сигналы терминала. Такой подход расширяет стандартную систему оповещений MetaTrader 5, не заменяя ее, повышая понятность и удобство использования для более широкого круга трейдеров.

Чтобы обеспечить правильную работу, необходимо поместить все файлы проекта в соответствующие каталоги. Исходный файл индикатора должен быть сохранен и скомпилирован в обычном режиме в папке Indicators, а сопровождающая его папка Sounds должна быть скопирована в точности так, как указано, в каталог MQL5\Sounds терминала MetaTrader 5. Имена звуковых файлов должны точно совпадать с именами, указанными в коде; в противном случае компилятор или среда выполнения завершатся с ошибкой. Этот шаг необходим для успешной компиляции и корректного воспроизведения звука.

Опираясь на этот базовый пример, мы создали практическую основу для проектирования систем с учетом требований доступности на языке MQL5. В будущих частях эта основа может быть расширена за счет более глубокой интеграции с системами обработки голоса, системами преобразования текста в речь и внешними API, что позволит использовать более продвинутые функции, подобные интерактивным помощникам в режиме реального времени, встроенным непосредственно в торговые инструменты.

В конечном счете, ориентированный на доступность дизайн приводит к созданию более надежных, инклюзивных и ориентированных на пользователя систем. Четко передавая информацию по нескольким каналам — визуальным, текстовым и звуковым — мы создаем торговые инструменты, которые адаптируются к трейдеру, вместо того, чтобы вынуждать трейдера приспосабливаться к инструменту. Доступность - это не дополнительная функция; это возможность улучшить коммуникацию, надежность и общий опыт торговли для каждого участника рынка.


Вложения

Имя исходного файлаТипВерсияОписание
VoiceAlerts_MA_CrossoverИндикатор1.0Ориентированный на доступность индикатор пересечения скользящих средних, который предоставляет визуальные стрелки Wingdings и пользовательские звуковые оповещения о сигналах на покупку / продажу. Предназначен как для трейдеров с нарушениями зрения, так и для тех, кто предпочитает голосовые уведомления. Включает в себя отложенные оповещения о следующем открытии бара, чтобы предотвратить перерисовку.
SoundsПапкаотсутствуетСодержит все аудиофайлы формата WAV, используемые индикатором: welcome.wav, buy.wav и sell.wav. Для обеспечения корректного воспроизведения аудиосигнала файл необходимо поместить в папку MQL5\Sounds терминала. Файлы можно записывать вручную или генерировать с помощью TTS, при условии, что имена точно совпадают.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/21189

Прикрепленные файлы |
Sounds.zip (346.63 KB)
Создание самооптимизирующихся советников в MQL5 (Часть 9): Двойное пересечение скользящих средних Создание самооптимизирующихся советников в MQL5 (Часть 9): Двойное пересечение скользящих средних
В этой статье описывается разработка стратегии двойного пересечения скользящих средних, которая использует сигналы с более высокого таймфрейма (D1) для определения входов на более низком таймфрейме (M15), при этом уровни стоп-лосса рассчитываются на основе промежуточного таймфрейма риска (H4). Вводятся системные константы, пользовательские перечисления и логика для режимов следования за трендом и возврата к среднему, при этом особое внимание уделяется модульности и последующей оптимизации с использованием генетического алгоритма. Такой подход обеспечивает гибкие условия входа и выхода, стремясь уменьшить запаздывание сигналов и улучшить тайминг сделок за счёт согласования входов на младших таймфреймах с трендами старших таймфреймов.
Создание самооптимизирующихся советников в MQL5 (Часть 8): Анализ нескольких стратегий (3) — Политика взвешенного голосования Создание самооптимизирующихся советников в MQL5 (Часть 8): Анализ нескольких стратегий (3) — Политика взвешенного голосования
В этой статье исследуется, как определение оптимального количества стратегий в ансамбле может стать сложной задачей, которую проще решить с помощью генетического оптимизатора MetaTrader 5. Сеть MQL5 Cloud также используется как ключевой ресурс для ускорения бэктестинга и оптимизации. В целом, наше обсуждение здесь подготавливает почву для разработки статистических моделей, позволяющих оценивать и улучшать торговые стратегии на основе результатов работы нашего первоначального ансамбля.
Особенности написания экспертов Особенности написания экспертов
Написание и тестирование экспертов в торговой системе MetaTrader 4.
Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Окончание) Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Окончание)
В статье завершается построение фреймворка MDL и его интеграция в среду MQL5/OpenCL. Реализован объект верхнего уровня, объединяющий признаки, сценарии и задачи в единый вычислительный процесс. Проведено тестирование на исторических данных, показавшее устойчивую работу модели и её способность адаптироваться к изменяющимся рыночным условиям.