PR

【MQL4&MQL5】音声ガイド機能の実装方法 ソースコードあり

オリジナルインジケーター

この記事では、MQL言語を使って、インジケーターに音声ガイド機能を追加する方法をご紹介します。

音声ガイドの有用性

  • チャートから目を離していても重要な情報を受け取れます。
  • 音声通知により、重要なイベントにすぐに反応できます。
  • 常にチャートを監視する必要がなくなり、精神的な負担が軽減されます。

この記事では、具体的な実装方法を詳しく紹介していきます。また、記事の最後には、経済指標の発表時刻が近づいた際に音声でお知らせするインジケーターのソースコードを提供しています。ぜひご活用ください。

この取り組みは、MQL5界隈におけるオープンソース化の活性化を促進するためのものです。ソースコードを使用される際は、ぜひこの記事をご紹介いただけますと幸いです。皆様のご協力により、より豊かなMQL界隈を作り上げていけることを願っています。

WAN
WAN

この音声ガイドの方法が広まればうれしいです!(‘ω’)

実装方法

まず、VoiceGuide.mqhというインクルードファイルを作成します。このファイルには音声ガイド機能の核となるコードが含まれています。

#property copyright "WAN."
#property link      "https://wonderfulfxlife.com/"
#property version   "1.00"

#import "Shell32.dll"
int ShellExecuteW(
   int    hwnd,
   string lpOperation,
   string lpFile,
   string lpParameters,
   string lpDirectory,
   int    nShowCmd
);
#import


//+------------------------------------------------------------------+
//| Voice guide function                     ワンダフルFXライフ      |
//+------------------------------------------------------------------+
void VoiceGuide(string message)
  {
   string vbsPath = MQLInfoString(MQL_PROGRAM_PATH);
   StringReplace(vbsPath, "ex5", "vbs");
// 改行コードと特殊文字を削除
   StringReplace(message, "\r", "");
   StringReplace(message, "\n", "");
   StringReplace(message, "\t", ""); // タブ
   StringReplace(message, "\v", ""); // 垂直タブ
   StringReplace(message, "\f", ""); // 改ページ
   StringReplace(message, "#", "");  // #記号(必要に応じて)
   Print("音声ガイド実行:", message);

   string parameters = "\"" + message + "\"";
   ShellExecuteW(0, "open", vbsPath, parameters, NULL, 0);
  }
//+------------------------------------------------------------------+

このコードの主な特徴は以下の通りです:

  • ShellExecuteW関数を使用して外部のVBSスクリプトを実行します。
  • 不要な文字や改行を削除し、メッセージを整形します。
  • VoiceGuide関数を呼び出すだけで、簡単に音声ガイドを実行できます。

使用方法

 1. VoiceGuide.mqhファイルをソースファイルと同じフォルダに配置します。

 2. 以下のVBSスクリプトを作成し、ソースファイルと同じフォルダに「ソースファイル名.vbs」という名前で保存しますテキストファイルで作成して、拡張子を変更するだけです。

Set objVoice = CreateObject("SAPI.SpVoice")
Set args = WScript.Arguments
objVoice.Speak args(0)

 3. カスタムインジケーターやEAで、以下のように使用します

#include "VoiceGuide.mqh"

// その他のコード

void OnTick()
{
   // 何らかの条件
   if(条件)
   {
      VoiceGuide("重要な経済指標が5分後に発表されます");
   }
}

注意点

  • この機能を使用するには、MT5がVBSスクリプトの実行を許可している必要があります。警告が出ますので、「このファイルを開く前に常に確認する」のチェックを外して開くを押してください。これで次から警告が出なくなります。
  • 実際のトレードで使用する前に、十分なテストを行ってください。
  • 音声ガイドが頻繁に発生すると、取引に集中できなくなる可能性があるので、適切な使用頻度を見極めることが重要です。

経済指標音声お知らせインジケーター

以下のnoteでソースファイルで無料提供しております。是非入手していってください!

note ご指定のページが見つかりません

まとめ

音声ガイド機能を実装することで、トレード効率を大幅に向上させることができます。この機能を自分のスタイルに合わせてカスタマイズしてみてください。

質問やフィードバックがありましたら、XやDiscordでお待ちしています。

タイトルとURLをコピーしました