English Русский Deutsch
preview
MQL5取引ツールのアクセシビリティ課題を克服する(第1回):MQL5インジケータに状況対応型音声アラートを追加する方法

MQL5取引ツールのアクセシビリティ課題を克服する(第1回):MQL5インジケータに状況対応型音声アラートを追加する方法

MetaTrader 5 |
27 0
Clemence Benjamin
Clemence Benjamin

内容



はじめに

MetaTrader 5およびMQL5開発環境は、売買システム、通知機能、自動化ワークフローを構築するための堅牢な基盤を提供しています。標準機能として、視覚的なアラート、シンプルな通知音、メール通知、モバイル端末へのプッシュ通知、ログ機能、さらにファイルやメディアなどの埋め込みリソースへのアクセスが利用できます。しかし、これらの機能はイベントが発生したことを知らせる一方で、その内容や背景までは伝えられないことが一般的です。たとえば、標準的な通知音だけでは、そのシグナルが買いなのか売りなのか、あるいは別のシステム状態を示しているのかを判断できません。そのため、より分かりやすく、アクセシビリティに配慮した情報伝達を実現する余地があります。

完全自動売買システムは、これらの機能の恩恵を大きく受けます。あらかじめ定義されたロジックに従って自律的に売買を実行し、リスクを管理し、その結果を後から確認できるため、トレーダーが常にチャートを監視する必要はありません。この自律性は、チャートを継続的に確認できないすべてのトレーダーにとって有益であり、視覚障害のあるトレーダー、多忙な職業の方、一時的な制約があるユーザーなどにも適しています。観察と売買執行を切り離すことで、リアルタイムの視覚的な確認への依存を軽減できます。

一方で、半自動売買システムでは、より複雑な課題があります。分析やシグナル検出は自動化されているものの、多くの場合、最終的な判断や確認はトレーダーに委ねられます。その際、やり取りの多くは矢印、色、ラベル、チャート上のオーバーレイといった視覚的な要素によって行われます。基本的な通知音が追加されていたとしても、アラートの意味を理解するためには依然としてチャートを確認する必要があります。このような視覚への依存は、視覚障害のあるユーザーにとってアクセシビリティ上の障壁となるだけでなく、音声による情報取得を好むトレーダーにとっても効率を低下させます。

視覚障害は、生まれつきのものだけでなく、病気、事故、加齢に伴う変性などによって徐々に、あるいは突然生じる場合もあります。同様に、一部のトレーダーは部分的または一時的な聴覚の制約を抱えていたり、騒がしい環境で作業していたり、マルチタスクのためにハンズフリー操作を必要としたりすることがあります。こうした状況であっても、市場に対する理解や取引戦略を立てる能力が損なわれるわけではありません。障害のあるトレーダーが金融市場に参加することを妨げる法的・倫理的な制約はなく、制約があるのは市場ではなくインターフェース側です。私たち開発者には、このような障壁を認識し、プログラムによって解決する責任があります。

本記事では、売買インジケータや半自動売買システムにおけるアクセシビリティを考慮した設計について取り上げます。第1回となる今回は、MQL5のリソース機能を活用し、一般的な通知音ではなく、アラートの内容を説明する状況に応じた音声フィードバックを提供することで、システムとユーザーのコミュニケーションをどのように改善できるかを紹介します。このアプローチは、視覚障害のあるトレーダーにとって分かりやすさを向上させるだけでなく、音声主体の操作を好むユーザーにも有効です。今後の記事では、この基盤を発展させ、外部APIを利用したAI支援や生成AIによる音声技術との連携についても取り上げる予定です。記事を読み終える頃には、パフォーマンスや使いやすさ、設計の一貫性を損なうことなく、アクセシビリティ向上機能を売買ツールへ体系的に組み込む方法を理解できるでしょう。



アクセシビリティ上の課題とその背景

テクノロジーにおけるアクセシビリティとは、身体的、感覚的、あるいは認知的な能力の違いにかかわらず、多様なユーザーがシステム、インターフェース、および操作を効果的に利用できるよう設計することを指します。現代の消費者向けテクノロジーでは、アクセシビリティはもはや付加的な機能ではなく、当然備えるべき設計原則となっています。スマートフォン、コンピューター、オペレーティングシステムには、スクリーンリーダー、音声アシスタント、高コントラスト表示、適応型入力方式、触覚フィードバック、文字サイズのカスタマイズなどが標準的に搭載されています。これらの機能により、視覚障害や聴覚障害のあるユーザーでも、画面を目で確認したり第三者の支援を受けたりすることなく、複雑なシステムを自立して操作できます。

一方、金融取引ソフトウェアでは、アクセシビリティへの配慮はこれまで十分とは言えませんでした。現在主流のインタラクションモデルは、チャート、ローソク足、インジケータ、矢印、色、オーバーレイなど、視覚的な情報を中心に構築されています。このアプローチは視覚に問題のないユーザーにとっては効率的ですが、常に画面を見続けることを前提としています。そのため、視覚障害のあるトレーダー、一時的にチャートを確認できないトレーダー、あるいは適切な作業環境を確保できない状況では、不必要な障壁となります。この問題は、シグナル検出後に人間による確認や判断を必要とする半自動売買システムで特に顕著です。代替となるフィードバック手段がなければ、最も重要なタイミングで必要な情報へアクセスできなくなります。

取引システムにおけるアクセシビリティの課題は、恒久的な視覚障害だけに限定されません。視力が部分的または徐々に低下しているトレーダー、聴覚に制約のあるトレーダー、疲労、体調不良、マルチタスク、騒がしい環境といった状況による一時的な制約を抱えるトレーダーもいます。また、市場分析やリスク評価などの作業に集中するため、ハンズフリーで操作したいと考えるユーザーもいます。アクセシビリティを考慮した設計は、障害のあるユーザーだけでなく、チャートや通知を継続的に目で確認できない多忙なプロフェッショナルにも恩恵をもたらします。特に状況に応じた音声フィードバックによる、明確で構造化された情報伝達は、すべてのユーザーの作業効率を高め、認知的負荷を軽減します。

取引ツールにおけるアクセシビリティ上の制約は、主に次のような要因によって生じています。

  • 重要な情報の伝達を視覚的なチャート要素に大きく依存していること
  • 文脈や意味を伝えられない汎用的な通知音
  • 半自動売買システムにおける時間的制約のあるユーザー操作
  • 構造化された音声や音声ベースのインタラクションなど、代替フィードバック手段の活用が限定的であること

これらの制約は、MQL5環境そのものによるものではありません。むしろMQL5は、リソース管理、ログ出力、アラート、通知、メディア再生などの機能を提供しています。アクセシビリティ上のギャップが生じる主な原因は、「ユーザーは常にチャートを目で確認する」という設計上の前提にあります。MQL5が備える機能を活用すれば、システム内部の状態を構造化されたテキストメッセージ、事前に録音した音声、あるいは状況に応じた音声フィードバックへ変換し、「イベントが発生した」という事実だけでなく、「何が起こったのか」「なぜ起こったのか」まで伝えることができます。

重要なのは、アクセシビリティを考慮した設計は、特定のユーザーだけのために別個のシステムを構築することを意味しないという点です。その目的は、すべてのユーザーにとって、より分かりやすく、堅牢で、使いやすいシステムを実現することにあります。複数の手段を通じて効果的に情報を伝達できるシステムは、より高い耐障害性、包括性、そして効率性を備えています。この考え方は、本稿の冒頭で述べた目的とも一致しており、次節で紹介する実装の基盤となります。次節では、機能やパフォーマンスを損なうことなく、シンプルなインジケータへアクセシビリティを組み込む方法を実際に示します。



実装:シンプルなクロスオーバー戦略へのMQL5を用いたソリューション

アクセシビリティを考慮した設計を示すために、MQL5でシンプルな移動平均(MA)クロスオーバーインジケータを実装します。この戦略では、短期移動平均線と長期移動平均線の2つの移動平均線を使用します。短期移動平均線が長期移動平均線を上抜けた場合、インジケータは買いシグナルを生成します。逆に、短期移動平均線が長期移動平均線を下抜けた場合、インジケータは売りシグナルを生成します。この戦略自体は単純ですが、本実装の焦点は取引パフォーマンスではなく、情報伝達にあります。

MQL5は、開発者が外部ファイルをインジケータやエキスパートアドバイザー(EA)に直接埋め込むことを可能にするリソースを提供しています。アクセシビリティの観点から、Audacityのようなプログラムを使用して、「Buy signal detected」や「Sell signal detected」といった短い事前録音音声メッセージを準備することができます。これらのファイルは埋め込みリソースとして含められ、クロスオーバーイベントが発生した際にプログラム的に再生されます。

並行して、インジケータはPrintFormat()、Alert()、Comment()関数を使用して構造化されたテキスト出力も生成します。各通知には以下のような重要な情報が含まれます。

  • 分析対象の通貨ペア(例:EURUSD)
  • 時間足(例:H1、M15)
  • シグナルの方向(買いまたは売り)
  • クロスオーバー時点における高速移動平均線と低速移動平均線の値
  • クロスオーバーが発生した価格

以下は通知例です。
MA crossover detected.BUY signal on EURUSD H1.Fast MA 1.08452 crossed above Slow MA 1.08397 at price 1.08460.

実装は以下の手順でおこないます。

  • 高速移動平均と低速移動平均の入力パラメータを定義する
  • 各ティックまたは確定足ごとに移動平均値を計算する
  • 過去と現在の移動平均値を比較することで、クロスオーバーイベントを検出する
  • 構造化テキスト通知と埋め込み音声再生をトリガーする
  • スクリーンリーダーと互換性のある非同期レビューのために各イベントをログに記録する

これにより、各シグナルは複数のチャネルを通じて伝達され、視覚的観察への依存が低減されます。視覚障害のあるトレーダーや画面を常時確認できないトレーダーは、テキストログ、音声再生、または将来的なAI駆動の音声合成などを通じて包括的なフィードバックを得ることができます。それでは、以下の手順で始めましょう。

1. MetaEditorで新しいインジケータプロジェクトを開始する

MQL5のすべてのプロジェクトは、意図的なセットアップから始まります。MetaEditorを開き、カスタムインジケータを作成します。「VoiceAlerts_MA_Crossover」という名前を付けます。

この名前は重要です。ナビゲーター、チャート、ログに表示されるためです。明確で説明的な名前だと、名前だけで用途が分かりやすくなります。

ウィザードは、以下の内容を含むデフォルトテンプレートを自動的に生成します。

この時点では、インジケータはまだ何もしません。これは正常です。これから各機能を段階的に構築し、すべての要素を制御しながら進めていきます。

2. メタデータとプロパティ

最初のプログラミング作業は、MetaTraderがこのインジケータをどのように扱うかを定義することです。#propertyディレクティブを使用して、以下を指定します。

  • 表示場所(インジケータチャートウィンドウ
  • バージョン、著作権、およびリンク
  • バッファとプロットの数

これらのプロパティはコンパイル時の命令として機能します。これらはオプションではなく、MetaTraderの描画とメモリ管理を制御するものです。

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

この段階では、インジケータの骨組みはできていますが、まだロジックはありません。

3. バッファとデータストレージの計画

次に、インジケータが何を計算して保存するかを決定します。当ツールには以下のものが必要です。

  • 高速移動平均値
  • 低速移動平均値
  • 矢印位置決め用ATR

3つのバッファを宣言します。

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;

これらの変数は、以下をおこないます。

  • 新しいローソク足の開始を検知する
  • 保留中のクロスオーバーシグナルを保存する
  • 1バーにつきシグナルが1つであるようにする

ここでの原則は、最小限かつ焦点を絞ったグローバル状態によってバグを防ぎ、ロジックの保守を容易にすることです。

7. 新規バーを検知する

インジケータは1ティックあたり複数回呼び出されます。1本のバーに複数のシグナルが送信されるのを避けるため、新規バー検出機能を実装します。

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は、計算(ハンドル)とデータアクセス(バッファ)を分離します。このパターンは、MAやATRだけでなく、ハンドルベースのあらゆるインジケータに適用されます。

9. MAクロスオーバーの検出

再描画を防ぐために、確定足ロジックを使用します。

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インジケータで音声フィードバック機能を有効にするには、コード内で参照されているリソース名に一致する音声ファイルを提供する必要があります。このインジケータは、3つの主要な音声通知を使用します。

  • welcome.wav:インジケータが読み込まれたときに再生
  • buy.wav:強気の移動平均線のクロスオーバーが発生したときに再生
  • sell.wav:移動平均線の弱気クロスオーバーが発生したときに再生

音声録音

主な選択肢は2つあります。

1. スタジオ品質の録音(オプション)

  • 静かな環境でマイクを使用する
  • それぞれのイベントに対応する、短く明瞭なフレーズや音を録音する
  • 音声は簡潔にする(1~3秒で十分)

2. 低予算/DIYレコーディング

  • スマートフォン、PCのマイク、またはヘッドセットを使用する
  • 静かな場所であればどこでも録音できる
  • 簡単な音声録音でも、基本的なアクセシビリティの目的には十分

音声編集

録音方法に関わらず、音声は以下の要件を満たす必要があります。

  • 冒頭と末尾の無音部分がトリミングされている
  • .wav形式で保存されている(PCM 16ビット、44100Hz推奨)。
  • インジケータで使用されている名前と全く同じ名前である(welcome.wav、buy.wav、sell.wav)

基本的な編集は、Audacityなどの無料ツールを使用しておこなうことができます。

  • 録音したファイルをAudacityで開く
  • トリミングツールを使用して不要な無音部分をカットする
  • WAV形式でエクスポートする(ファイル → エクスポート → WAV形式でエクスポート)
  • ファイル名がコード参照と完全に一致していることを確認する

別の方法:テキスト音声合成(TTS)生成

音声生成を好む方は、以下をおこなうことができます。

  • オープンソースのTTSツールまたはオンラインサービスを利用する
  • 短いフレーズを生成する:「Indicator Loaded」「Buy Signal」「Sell Signal」
  • 各ファイルを上記と全く同じ名前で.wav形式で保存する

MQL5ターミナルへの配置

音声ファイルを準備した後、以下をおこないます。

1. このプロジェクトに添付されているSoundsフォルダを取得する。

2. MetaTrader 5ターミナルのディレクトリにあるMQL5\Soundsフォルダにコピーする。

3. ファイル構造が損なわれていないこと、およびファイル名が正しいことを確認する。

メモ:音声ファイル名がコードと完全に一致しない場合、インジケータはそれらを検出できず、コンパイルが失敗する可能性があります。

これらの手順に従うことで、信頼性の高い音声通知を確保できます。これは、視覚障害のあるトレーダーや、チャートの視覚情報ではなく音声による合図に頼っている人にとって不可欠です。



システムの拡張:音声フィードバック、コマンド、そして将来的なAI連携

基本的な音声再生にとどまらず、インタラクティブな音声フィードバックおよび音声認識を活用することで、アクセシビリティとトレーダーの効率性を大幅に向上させる可能性があります。聴取可能なトレーダーは、詳細な音声通知により、チャートを注視することなくシグナルに関する詳細な情報を取得できます。標準的なプラットフォームの通知音や単純なビープ音とは異なり、これらの通知にはシグナルタイプ、銘柄、時間足、移動平均値、価格、およびコンテキストが含まれます。たとえば多忙なトレーダーは、他の作業とマルチタスクしながら、市場イベントを継続的に把握できます。

音声コマンドの統合は、もう一つの可能性を秘めています。トレーダーが通知に対して音声で応答できるようにすることで、半自動システムはキーボードやマウス入力を必要とせずに、注文の実行承認、パラメータ調整、または問い合わせを受け付けることができます。例えばトレーダーが「Approve BUY signal EURUSD H1」と発話すると、システムはそれを解釈し、取引の実行またはキューへの追加を行うことができます。この機能は視覚障害のあるトレーダーにより高い自律性を提供し、また多忙でチャートにアクセスできない状況にあるトレーダーの効率性も向上させます。

このような拡張を実現する技術要素としては、次のものが挙げられます。

  • 即時フィードバックのためのローカルテキスト読み上げ(TTS)エンジン
  • コマンド解釈のための音声認識API
  • 文脈に応じた説明や信号分析を提供する生成型AIモデル
  • 多言語対応や高度な予測分析のためのオプションのクラウド統合

MQL5のリソースを活用することで、これらのインタラクションはプラットフォームの独立性を維持しながらインジケータから起動できます。たとえばインジケータは構造化されたイベントをファイルまたはメッセージキューに書き込み、ローカルのヘルパーアプリケーションがそれを監視してTTS出力やAI処理をおこないます。この分離設計により、プラットフォームのセキュリティ要件に準拠しつつ、システムの安定性を維持できます。

このアプローチはアクセシビリティ向上だけでなく、障害の有無に関係なくトレーダーにとって有益です。詳細な音声ベースのフィードバックは、意思決定の高速化、機会損失の削減、そして取引セッション中の状況認識の向上につながります。将来的にAIを統合することで、自然言語による説明、予測リスク評価、そしてすべてのトレーダー向けのインタラクティブラーニングがさらに強化される可能性があります。



テストと評価

VoiceAlerts_MA_Crossoverインジケータのテストには、過去のデータとリアルタイムデータの両方による検証が必要です。ストラテジーテスター([エキスパート]タブ)において、すべての移動平均線交差イベントが正しく検出され、テキストログに記録されていることを確認しました。ストラテジーテスターでは音声アラートが再生されなかったため、音声機能をテストするために、実際のチャートにインジケータを適用しました。

音声通知を効果的に検証するには、以下が必要です。

  • 移動平均線のクロスオーバーが長い待ち時間なしに発生するように、1分足を使用する
  • クロスオーバーが検出された後、システムが次のバーが開くまで待機できるようにする。これにより、音声がインジケータの遅延アラートロジックと同期して再生されることが保証される。
  • 初期化時のウェルカム音声が正常に再生されることで、オーディオシステムが正常に機能していることが確認され、その後の売買音が適切に再生されることで、イベント通知が正しく処理されていることが示される。

このアプローチにより、テキストログと音声アラートの両方が意図どおりに機能することが保証され、視覚障害のあるユーザーや音声による合図に頼るトレーダーに信頼性の高いフィードバックを提供できます。

以下の動画をご覧ください。インジケータをチャートに添付する方法と、初期化音声の再生を確認する方法を実演しています。



結論

シンプルな移動平均クロスオーバーインジケータを例として、プラットフォームのリソース管理および音声再生機能を活用することで、MQL5インジケータにコンテキストに基づく音声フィードバックを統合できることを示しました。本インジケータは初期化時に即時フィードバックを提供し、付属動画で示されているウェルカム音声によって確認されます。また、非説明的な端末トーンに依存するのではなく、どのようなイベントが発生したのかを説明する意味のある音声アラートを提供します。このアプローチはMetaTrader 5のデフォルトのアラートシステムを置き換えるものではなく拡張するものであり、より幅広いトレーダーに対して明確性と使いやすさを向上させます。

正しく動作させるためには、すべてのプロジェクトファイルを適切なディレクトリに配置する必要があります。インジケータのソースファイルは通常通りIndicatorsフォルダに保存およびコンパイルし、付属のSoundsフォルダはMetaTrader 5ターミナルのMQL5\Soundsディレクトリへ提供された構成のまま正確にコピーする必要があります。音声ファイル名はコード内で参照されているものと完全に一致していなければならず、一致しない場合はコンパイルまたは実行時の再生が失敗します。この手順はコンパイルの成功および音声再生の正常動作に不可欠です。

この基礎的な例により、MQL5におけるアクセシビリティを考慮したシステム設計の実践的な枠組みが確立されました。今後の記事では、この基盤を拡張し、音声処理エンジン、テキスト読み上げシステム、外部APIとのより深い統合を通じて、取引ツール内に直接組み込まれた、より高度でリアルタイムかつインタラクティブなアシスタント的動作を実現できます。

最終的に、アクセシビリティ駆動の設計は、より堅牢で、包括的で、ユーザー中心のシステムにつながります。視覚、テキスト、音声という複数のチャネルを通じて明確に情報を伝達することで、トレーダーがツールに適応するのではなく、ツールがトレーダーに適応する取引ツールを構築できます。アクセシビリティは単なる任意機能ではなく、すべての市場参加者にとってコミュニケーション、信頼性、および取引体験全体を向上させる機会です。


添付ファイル

ソースファイル名種別バージョン説明
VoiceAlerts_MA_Crossoverインジケータ1.0アクセシビリティに重点を置いた移動平均クロスオーバーインジケータ。買い・売りシグナルに対して視覚的なWingdings矢印およびカスタム音声アラートを提供します。視覚障害のあるトレーダーと、音声通知を好むトレーダーの両方を対象として設計されています。また、リペイントを防ぐために次のバーの始値で遅延アラートを出す機能を含みます。
Soundsフォルダ該当なし本インジケータで使用されるすべてのWAV音声ファイル(welcome.wav、buy.wav、sell.wav)を格納します。正しく音声再生をおこなうため、MetaTrader 5ターミナルのMQL5\Soundsフォルダに配置する必要があります。これらのファイルは手動で録音することも、TTSで生成することも可能ですが、ファイル名がコード内の参照と完全に一致している必要があります。

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/21189

添付されたファイル |
Sounds.zip (346.63 KB)
MQL5入門(第39回):MQL5におけるファイル処理入門(I) MQL5入門(第39回):MQL5におけるファイル処理入門(I)
本記事では、MQL5におけるファイル処理を、実践的なプロジェクトベースのワークフローを用いて紹介します。FileSelectDialogを使用してCSVファイルを選択または作成し、FileOpenでそれを開き、口座名、残高、ログイン、期間、最終更新日時などの構造化されたヘッダーを書き込みます。その結果として、再利用可能な取引ジャーナルと、MetaTrader 5でファイルを安全に扱うための基盤が得られます。
プライスアクション分析ツールキットの開発(第59回):幾何学的非対称性を用いたフラクタル保ち合いからの高精度ブレイクアウトの識別 プライスアクション分析ツールキットの開発(第59回):幾何学的非対称性を用いたフラクタル保ち合いからの高精度ブレイクアウトの識別
様々なブレイクアウト手法を検証する中で、ブレイクアウトの失敗はボラティリティ不足よりも、内部構造の弱さによって引き起こされるケースが圧倒的に多いことに気付きました。この観察結果が、本記事で紹介するフレームワークの出発点となっています。本手法は、最終的な価格スイングが長さ・傾き・速度のすべてにおいて優位性を示すパターンを検出します。これは、方向性を伴う相場拡大に先立ってモメンタムが蓄積されていることを示す明確な兆候です。保ち合い内部に存在するこうした微細な幾何学的不均衡を検出することで、価格がレンジを抜ける前に、より高い確率のブレイクアウトを予測できます。本記事では、このフラクタルベースの幾何学的フレームワークが、どのように構造的不均衡を精度の高いブレイクアウトシグナルへ変換するのかを解説します。
プライスアクション分析ツールキットの開発(第60回): 構造分析のための客観的なスイングベースのトレンドライン プライスアクション分析ツールキットの開発(第60回): 構造分析のための客観的なスイングベースのトレンドライン
インジケータのピボットに依存せず、実際の価格データから導かれる順序付きスイングを用いたルールベースのトレンドライン手法を紹介します。スイング検出、ATRまたは固定閾値によるサイズの判定、上昇・下降構造の検証といったプロセスを順に解説し、それらのルールをMQL5で実装します。さらに、リペイントを伴わない描画と選択的な出力もおこないます。これにより、市場環境を問わず機能する、構造的なサポートとレジスタンスを一貫して追跡する明確で再現可能な手順を得ることができます。
MQL5標準ライブラリエクスプローラー(第8回):CFileTxtによるハイブリッド取引ジャーナルの記録 MQL5標準ライブラリエクスプローラー(第8回):CFileTxtによるハイブリッド取引ジャーナルの記録
本記事では、MQL5標準ライブラリのファイル操作クラスを活用し、Excel対応のCSVファイルを自動生成する堅牢なレポートモジュールを構築します。その過程において、手動操作とアルゴリズム起点の取引アクションを明確に区別し、信頼性が高く監査可能な取引レポートの基盤を整えます。