トレード記録が続かない最大の理由は「手動入力が面倒」だ。毎回エントリー価格、決済価格、損益、通貨ペアなどを入力していると、数週間で挫折するのは当然のことだ。
この問題を根本的に解決するのがAPI連携による自動記録だ。FX口座のAPIを使えば、トレードの約定データを自動取得してジャーナルに記録できる。この記事では、各プラットフォームのAPI対応状況と自動記録システムの構築方法を解説する。
FX口座APIとは何か
API(Application Programming Interface)とは、ソフトウェア同士がデータをやり取りするための仕組みだ。FX口座のAPIを使えば、プログラムからトレード履歴を取得したり、口座残高を確認したり、場合によっては注文を発行したりできる。
自動記録に必要なのは「読み取り」権限のみだ。注文権限は不要なので、セキュリティリスクを最小限に抑えつつ自動化できる。APIキーの権限設定で「Trade History Read Only」のみを有効にするのが基本だ。
APIで取得できるデータ
一般的なFX口座APIから取得できる主なデータは以下の通りだ。
- 約定日時(エントリー・決済のタイムスタンプ)
- 通貨ペア・売買方向・ロットサイズ
- エントリー価格・決済価格・スワップ
- 損益(pipsおよび金額)
- 口座残高・有効証拠金の推移
プラットフォーム別のAPI対応状況
MT4 / MT5(MetaTrader)
MT4にはREST APIは標準搭載されていないが、MQL言語でスクリプトを書き、トレード履歴をCSVに自動エクスポートする方法がある。MT5ではPython統合が追加され、MetaTrader5ライブラリを使ってPythonから直接トレード履歴を取得できる。
MT5のPython連携は最も手軽なAPI連携の方法だ。pip install MetaTrader5でインストールし、数行のPythonコードで約定履歴を取得できる。ただしMT5のデスクトップアプリが起動している必要がある点に注意が必要だ。
cTrader
cTraderはOpen APIを公開しており、REST APIとFIX APIの両方に対応している。OAuth2認証を使った安全な接続が可能で、トレード履歴の取得、口座情報の照会がプログラムから実行できる。ドキュメントも充実しており、API連携のハードルは低い。
国内FX業者のAPI対応
国内のFX業者でAPIを公開しているところは限定的だ。一部の業者は外部連携用のAPIを提供しているが、多くの場合はCSVエクスポート機能が現実的な選択肢になる。CSV自動取得とAPI連携を組み合わせることで、半自動の記録システムを構築できる。
自動記録システムの構築手順
ステップ1:APIキーの発行と権限設定
使用するプラットフォームの管理画面でAPIキーを発行する。権限は「読み取りのみ」に制限し、取引権限は絶対に付与しない。APIキーは環境変数に保存し、コード内にハードコーディングしないことがセキュリティの基本だ。
ステップ2:定期的なデータ取得スクリプト
PythonやNode.jsでAPIからトレード履歴を取得するスクリプトを作成する。cronジョブやタスクスケジューラで1日1回実行し、新しいトレードデータだけを差分取得する設計にする。最終取得日時を記録ファイルに保存しておけば、重複を防げる。
ステップ3:データの正規化と保存
各プラットフォームのAPIはレスポンス形式が異なるため、統一フォーマットに正規化する処理が必要だ。日時のタイムゾーン変換、通貨ペア名の統一、損益の計算方法の標準化などを行い、CSVやデータベースに保存する。