← すべてのチュートリアル
MT5 API · 5:22

Python で MT5 を操作する

ダウンロード、設定、接続、口座情報、配信、切断。

Pythonのサンプルをダウンロード · ZIP ↓

手順を読む

  1. 0:00

    Python で MT5 を操作する

    このチュートリアルでは、Python から MT5 に接続し、デモ口座の情報を取得して、リアルタイムの価格を受信し、最後に正しく切断する方法を説明します。

  2. 0:17

    ダウンロードから始める

    mrpc.pro の API ページを開き、ログインして Python を選択します。「サンプルをダウンロード」をクリックしてください。サイトからダウンロードするサンプルは、新しいデモ口座を作成して一連のデモ取引を行うため、個人の API キーが必要です。ファイルにキーが含まれる場合があるので、公開しないでください。

  3. 0:45

    用途に合うサンプルを選ぶ

    今回は、別途用意した Python の価格配信サンプルを使います。既存のデモ口座に接続し、取引のリクエストは送りません。トライアルの空きがあれば、既存のデモ口座では TRIAL を利用できます。新しいデモ口座の作成には個人キーが必要です。この二つのサンプルは、開始条件が異なります。

  4. 1:14

    Python を準備する

    Python 3.10 以降を使います。プロジェクトのフォルダーに仮想環境を作成し、その環境の Python で requests と websocket-client をインストールします。requests は REST 通信、websocket-client は配信の受信に使います。サイトの元のデモは標準ライブラリーを使用し、この二つのパッケージが必要なのは今回の配信サンプルです。

  5. 1:47

    認証情報を設定する

    画面の四つの環境変数を設定し、プレースホルダーを自分の値に置き換えてください。デモサーバーの正確な名前と、その口座の取引用パスワードを使います。環境変数を使えば、認証情報をソースコードに書かずに済みます。macOS や Linux では、PowerShell の環境変数構文の代わりに export を使います。

  6. 2:18

    接続後は同じ ID を使う

    サンプルはデモ口座番号、パスワード、サーバー名を指定して ConnectEx を呼び出し、返された terminalInstanceGuid をメモリーに保存します。その後の REST リクエストでは、この値を id ヘッダーに、API キーを APIKey ヘッダーに設定します。API キーは MetaRPC の利用者を識別し、ターミナル ID は接続先の口座を選択します。

  7. 2:50

    毎回レスポンスを確認する

    まず HTTP ステータスコードを確認します。HTTP Status Code 200 の場合は JSON を解析して error を確認してください。error が null でなければ、その処理を止め、エラーコードとメッセージを非公開の場所で確認します。それ以外は data を読みます。このサンプルは簡潔なエラーだけを記録し、取引用パスワードを含む接続 URL は出力しません。

  8. 3:22

    口座情報を取得する

    これは Python を実行した際の実際の出力です。口座概要には data の accountCurrency、accountBalance、accountEquity を使っています。これらはブローカー口座の値で、MetaRPC のサービス残高とは異なります。続く三つの行も、サンプルが実際に受信した価格メッセージであり、作成した架空の値ではありません。

  9. 3:52

    リアルタイム価格を購読する

    WebSocket のアドレスで EURUSD を購読します。Python では接続時のヘッダーに APIKey と id を渡せます。各 JSON メッセージでは、まず error を確認し、次に data.symbolTick を読みます。bid は売るときの価格、ask は買うときの価格です。UTC 基準の時刻には timeUtc を使います。

  10. 4:18

    購読を止めて切断する

    サンプルは三つの価格メッセージを受信したら終了します。後処理では、最初に WebSocket を閉じ、同じターミナル ID で Disconnect を呼びます。配信中にエラーが発生した場合も、この処理を行います。ソケットを閉じると購読が止まり、Disconnect でホストされたターミナルを解放します。指定した五分の有効期限は補助的なもので、後処理の代わりにはなりません。

  11. 4:53

    ローカル連携の第一歩

    仮想環境の Python でサンプルを実行してください。成功すると、口座概要、三つのティック、WebSocket closed、Terminal disconnected が表示されます。応用する際もエラー確認と後処理を残してください。出力処理を自分のアプリケーションの処理に置き換え、準備ができたら自分の API キーを使えます。