MARKET
MT4ツールを、数字で作る。— Team REI|平日の朝に「相場分析」を更新しています|

WebRequest ― HTTPでウェブに問い合わせる|MQL4/MQL5リファレンス

MQLリファレンス›関数通知・外部通信WebRequest
(‘both’, ‘MQL4 / MQL5 両対応’)通知

WebRequestHTTPでウェブに問い合わせる

外部のウェブサービス(Slack・LINE・Discord・自前のAPI等)にHTTPリクエストを送る。エントリーをチャットに通知する、外部のデータを取得する、といった用途で使う。

1書式

int WebRequest(
   string method,   // "GET"/"POST"
   string url,
   string cookie, string referer,
   int    timeout,
   uchar  &data[],   // 送信するデータ(バイト配列)
   int    data_size,
   uchar  &result[],   // 受信結果を受け取る配列
   string &result_headers
);

書式はMQL4・MQL5でほぼ同じ。

2引数

引数 内容
method "GET"または"POST"
url 送り先のURL
cookie / referer 通常は空文字でよい
timeout タイムアウト(ミリ秒)
data / data_size 送信するデータとそのサイズ
result / result_headers 結果を受け取る変数

3戻り値

HTTPステータスコード(200等)。失敗すると-1。

4使用例

string url = "https://example.com/api/notify";
string json = "{\"text\":\"約定しました\"}";
uchar data[]; StringToCharArray(json, data, 0, StringLen(json));
uchar result[]; string resHeaders;
int code = WebRequest("POST", url, NULL, NULL, 5000, data, ArraySize(data), result, resHeaders);
if(code == 200) Print("通知成功: ", CharArrayToString(result));
else Print("通知失敗 code=", code, " err=", GetLastError());

MetaEditorでコンパイル0エラー・0警告を確認済み。

6よくある罠

⚠ 実務で踏んだもの
  • 先に「ツール」→「オプション」→「エキスパートアドバイザー」で、送り先URLを許可リストに登録しておかないと、必ずエラー4060で失敗する。プログラムからはこの設定を変更できない。配布するツールでは、利用者にこの手順を案内する必要がある。

7関連する関数

REI-FX&BO OFFICIAL LINE

ツールのダウンロードパスワードは
公式LINEで、すぐ届きます。

友だち追加の自動返信でパスワードをお送りします。
新しいツールの公開や、検証でわかったことも先にお知らせします。

全ツールのパスワード新作ツールをいち早く配信は月1〜2回だけ
LINEで友だち追加 パスワードを受け取る ›

追加後にひとことメッセージをいただけると、ツールづくりの参考にします。