MARKET
9/25 8:27 時点|ドル円158.78▼-7 pips|ドル円 予想レンジ158.41 〜 159.23|ドル円 上の節目158.90▲|ドル円 下の節目157.80▼|ユーロドル1.1378▼-2 pips|ユーロドル 予想レンジ1.1351 〜 1.1408|ユーロドル 上の節目1.1403▲|ユーロドル 下の節目1.1359▼|きょうの指標重要指標なし|

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関連する関数

MORNING BRIEF平日 毎朝7時までに更新

今日はどこを見ればいいか。

ドル円とユーロドルの主要ライン・予想高値安値を、平日の朝に図1枚にまとめています。

朝刊を見る→
9/25 8:27 時点ドル円158.78▼-7 pipsドル円 予想レンジ158.41 〜 159.23ドル円 上の節目158.90▲ドル円 下の節目157.80▼ユーロドル1.1378▼-2 pipsユーロドル 予想レンジ1.1351 〜 1.1408ユーロドル 上の節目1.1403▲ユーロドル 下の節目1.1359▼きょうの指標重要指標なし
REI-FX&BO OFFICIAL LINE

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

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

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

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