MQL関数リファレンス

MQL4MQL5 出力・通知・状態

WebRequest()

できること
Web サーバーに HTTP リクエストを送る
対応
MQL4・MQL5

WebRequest() とは

Web サーバーに HTTP の GET・POST リクエストを送り、応答を受け取る関数です。外部の API からデータを取ったり、LINE・Discord などに通知を送ったりするときに使います。

WebRequest() の書式と引数

MQL4 の場合MT4

引数の組み合わせが違う 2 通りの書き方があります。

int WebRequest(
   const string method,
   const string url,
   const string cookie,
   const string referer,
   int timeout,
   const char &data[],
   int data_size,
   char &result[],
   string &result_headers
)

int WebRequest(
   const string method,
   const string url,
   const string headers,
   int timeout,
   const char &data[],
   char &result[],
   string &result_headers
)
引数型省略時説明
methodconst string必須"GET" または "POST"。
urlconst string必須リクエスト先の URL。
cookieconst string必須Cookie の文字列。
refererconst string必須Referer ヘッダーの値。
timeoutint必須タイムアウト(ミリ秒)。
dataconst char &[]必須送信するデータ(POST の本文)。
data_sizeint必須送信するデータのサイズ。
resultchar &[]必須応答の本文を受け取る配列。
result_headersstring &必須応答のヘッダーを受け取る変数。
headersconst string必須リクエストヘッダー("Content-Type: application/json\r\n" のように改行で区切る)。

戻り値(MQL4)

HTTP のステータスコード(200 など)。失敗したら -1(GetLastError() で理由を確認)。

MQL5 の場合MT5

引数の組み合わせが違う 2 通りの書き方があります。

int WebRequest(
   const string method,
   const string url,
   const string cookie,
   const string referer,
   int timeout,
   const uchar &data[],
   int data_size,
   uchar &result[],
   string &result_headers
)

int WebRequest(
   const string method,
   const string url,
   const string headers,
   int timeout,
   const uchar &data[],
   uchar &result[],
   string &result_headers
)
引数型省略時説明
methodconst string必須"GET" または "POST"。
urlconst string必須リクエスト先の URL。
cookieconst string必須Cookie の文字列。
refererconst string必須Referer ヘッダーの値。
timeoutint必須タイムアウト(ミリ秒)。
dataconst uchar &[]必須送信するデータ(POST の本文)。
data_sizeint必須送信するデータのサイズ。
resultuchar &[]必須応答の本文を受け取る配列。
result_headersstring &必須応答のヘッダーを受け取る変数。
headersconst string必須リクエストヘッダー("Content-Type: application/json\r\n" のように改行で区切る)。

戻り値(MQL5)

HTTP のステータスコード(200 など)。失敗したら -1(GetLastError() で理由を確認)。

WebRequest() の使い方(コード例)

MQL4

char data[], result[];
string headers;
int code = WebRequest("GET", "https://example.com/", "", 5000, data, result, headers);
if(code == -1)
   Print("WebRequest 失敗 error=", GetLastError(), "(URL を許可リストに登録しましたか?)");
else
   Print("HTTP ", code, " ", CharArrayToString(result, 0, 200, CP_UTF8));

MQL5

uchar data[], result[];
string headers;
int code = WebRequest("GET", "https://example.com/", "", 5000, data, result, headers);
if(code == -1)
   Print("WebRequest 失敗 error=", GetLastError(), "(URL を許可リストに登録しましたか?)");
else
   Print("HTTP ", code, " ", CharArrayToString(result, 0, 200, CP_UTF8));

OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。

WebRequest() の注意点

  • 事前に「ツール」→「オプション」→「エキスパートアドバイザー」で「WebRequest を許可する URL」に URL を登録しておく必要があります。登録していないとエラーになります(MT4 は4060、MT5 は4014)。
  • インジケーターでは使えません。EA とスクリプトで使います。ストラテジーテスターでも使えません。
  • 応答を待つ間 EA の処理が止まるので、timeout は短めにします。

MQL4 と MQL5 の違い

MQL4 は送受信のデータに char 型の配列、MQL5 は uchar 型の配列を使います。移植するときは配列の型を変えます。

WebRequest() でよく出るエラー

関連する関数

出力・通知・状態の関数一覧

← MQL関数リファレンスで、ほかの関数を探す

サイバーシグナルインジケーターと8大特典プレゼント

MT4/MT5自動売買EAサイバーラッシュ無料プレゼント

MT4/MT5自動売買EAサイバードラゴン無料プレゼント

グルグルトレイン(グルトレ)EAを無料プレゼント

ライントレードEAサイバートレナビを無料プレゼント

ゴトー日の東京仲値が狙える自動売買EA

LINE友だち追加

注目記事ランキング

  1. 1

    【サクソバンクチャート】月曜日の早朝から動く為替レート

  2. 2

    【MT4/MT5対応】チャート上に手書きできる描画インジケーターの無料配布

  3. 3

    【サンデーダウ・サンデードル円】土日に動く中東レートの表示方法と見方を解説

  4. 4

    【先着50名】グルトレEAを無料プレゼントしています!

  5. 5

    保護中: 【勝率UP!】曜日や日・月別為替相場の動きでFXを見極める

  6. 6

    【MT4/MT5対応】「sign_alert」シグナルアラートやメール送信するインジケーターの無料配布

  7. 7

    無料メールマガジン「マナブ式FX」|毎朝6時、今日の為替相場予想が届く

  8. 8

    【原油・金】WTIとゴールドの商品レート一覧と見やすいチャート

  9. 9

    VQインジケーターとは?MT4/MT5版を無料配布【設定例つき】

  10. 10

    【バイナリーオプション攻略法】全勝!+497,363円の利益が出た手法とは?

TOP
CLOSE