Discordに通知したいとの要望があったので書きました。
Discordの準備
Discordにログインして通知を受け取るテキストチャンネルを作成して下さい。
作成したら[チャンネルの編集]をクリックします。
[ウェブフック]を選択して、[ウェブフックを作成]をクリックします。
ダイアログ下部に表示されているウェブフックURLをコピーします。
このウェブフックURLは後ほど使用するので忘れないようにして下さい。
最後に右下の[保存]をクリックしてDiscordの準備は完了です。
MT4の準備
MT4画面上部の[ツール]から[オプション]を選択します。
表示されたウィンドウにて[エキスパートアドバイザ]タブを選択します。
[WebRequestを許可するURLリスト]にチェックを入れます。
[新しいURLを追加、...]にをクリックし、「https://discordapp.com」と入力する。
ウィンドウ下部の[OK]をクリックする。
実装
Discordの準備で取得したウェブフックURLを入力するためのパラメーターを用意します。
AlertDiscord関数はMQL4のWebRequest関数を使ってDiscordに通知を行います。
引数としてウェブフックURLとDiscordに通知したい内容を受け取ります。
input string WebhookURL = "";
bool AlertDiscord(const string url, const string text)
{
int status_code;
string headers;
char data[];
char result[];
if (IsTesting()) {
return(false);
}
StringToCharArray("content=" + text, data, 0, WHOLE_ARRAY, CP_UTF8);
status_code = WebRequest("POST", url, NULL, NULL, 5000, data, 0, result, headers);
if (status_code == -1) {
Print(GetLastError());
return(false);
}
return(true);
}
int OnInit()
{
AlertDiscord(Webhook, "hoge");
return(INIT_SUCCEEDED);
}
void OnTick()
{
}
注意点として、WebRequest関数を使用しているのでEAかスクリプトでないとエラーが出ます。