(‘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▼きょうの指標重要指標なし