WebSocket で MT4 の価格を受信
接続、購読、ティックの確認、切断。
手順を読む
- 0:00
WebSocket で MT4 の価格を受信
このチュートリアルでは、WebSocket で MetaTrader フォーのリアルタイム価格を受信します。デモ口座に接続して銘柄を購読し、実際のメッセージを確認した後、購読を停止して端末を切断します。
- 0:20
API コンソールを開く
エムティーフォー、ドット、エムアールピーシー、ドット、プロを開きます。コンソールは自動的に表示されます。接続メソッドから Connect Ex を選びます。ここでは価格の読み取りだけを行い、売買は行いません。
- 0:42
デモ口座に接続する
Trial または自分の API キーを使います。専用デモ口座のログイン番号、取引パスワード、ブローカーの正確なサーバー名を入力します。新しい接続なので、任意の id 欄は空欄のままリクエストを実行します。認証情報は公開しないでください。
- 1:08
端末 id を保存する
Connect Ex では、HTTP ステータスコード二百と JSON レスポンスを確認します。error にエラーがあれば、先に詳細を読みます。成功時には data に terminal Instance Guid が返ります。コンソールは後続のリクエスト用に id を保存し、接続済みと表示します。
- 1:34
銘柄を選ぶ
購読の項目から On Symbol Tick を選び、接続時の id を使います。symbol Names にはブローカーの正確な銘柄名を入力します。ここでは EURUSD です。ブローカーによって接尾辞などが異なります。ストリームに接続するボタンを押します。
- 1:59
リアルタイム価格を確認
接続済みの表示は WebSocket が開いていることを示します。ティックを受信するたびに価格カードが更新されます。受信フレームは実際のサーバーメッセージです。HTTP リクエストの繰り返しではなく、連続したストリームです。各メッセージの error を確認してから data ドット symbol Tick を読みます。
- 2:27
bid と ask を理解する
symbol Tick の symbol は銘柄です。Bid は売却価格、ask は購入価格で、その差がスプレッドです。これは価格情報であり、約定確認ではありません。ブローカーが直近の取引情報を配信していない銘柄では、last や volume がゼロになることがあります。
- 2:53
UTC の時刻を使う
異なるシステムで時刻を統一するには time U T C を使い、ミリ秒なら time M S C U T C を使います。この画面では、ブローカー時刻が明示的な UTC 時刻より二時間進んでいます。文字列の末尾が Z でも、ブローカー時刻をそのまま UTC とみなさないでください。フレームの受信時刻は別の値です。
- 3:23
対応する JavaScript の例
JavaScript の例では、安全な WebSocket URL と同じ銘柄を使います。ブラウザーの WebSocket では独自の認証ヘッダーを設定できないため、API キーと端末 id を URL のクエリーに渡します。完全な URL は公開しないでください。JSON を解析し、まず error を処理してからティックと UTC 時刻を読みます。
- 3:52
購読を停止する
終わったらストリームのパネルで切断を押します。コードでは WebSocket を閉じます。これで購読は終了しますが、端末の切断とは別の操作です。メッセージが来ないだけでは障害とは限りません。接続状態、銘柄名、ブローカーの価格配信を確認します。
- 4:17
端末を切断する
Disconnect メソッドを選び、同じ端末 id で実行します。HTTP ステータスコード二百と error を確認します。この成功レスポンスには端末の識別子と稼働時間が含まれ、上部の表示が切断済みに変わります。購読と端末セッションの両方が終了しました。