FXを選んだ理由と開発環境
私がシステムトレード開発において FXを選定した理由 は、シンプルに
「現在使用している開発環境との相性」と「構想していたシステム像との相性」でした。
システム構築における条件
システム構築にあたり、私が重視した条件は以下の通りです。
- 無料で利用できること
- 高信頼度で遅延が少ないこと
- macで開発可能であること
- ローカル環境で完結できること
現在の開発環境
これらの条件を踏まえ、現在は以下の環境で開発を進めています。
- Mac
- OANDA の REST API / PUSH API
- Python
- PostgreSQL & TimescaleDB
日本株からFXへ至るまでの経緯
実際には、WindowsソフトやExcelなど出費もかさみました。
当初は日本株のテクニカル指標とFXのテクニカル指標が流用できるとは知らず、まともに株価データを取得するまでに約3年を要しました。
以下は検討・実装したものの、最終的に頓挫した技術です。
株価取得のために試した技術
-
yfinance (Pythonライブラリ)
…取得精度が不十分だった。 -
J-Quants API
…無料版は 12週間遅れ のデータしか取得できなかった。 -
kabuステーション(auカブコム証券提供)
…REST API / PUSH API 対応だが、専用Windowsソフトの起動が必要で、取得できる銘柄は 最大50件。
毎朝必ず強制ログアウトされるため、完全自動化は困難だった。 -
マーケットスピード II(楽天証券提供)
…Excelが必須。精度は最も良かったが、二段階認証と毎朝の強制ログアウトにより完全自動化が難しかった。
Windows環境について
なお、Windows環境は Parallels Desktop を利用してMac上で構築していました。
当時は上記のWindowsソフトも動作しており、検証を進めることができました。
株・FX・先物の比較
それぞれの投資対象にシステムトレードを組み上げたとき、個人開発者から見た「実装しやすさ」には大きな差があります。私が実際に3年ほど試行錯誤して感じた違いを、表で整理します。
| 項目 | 日本株 | FX | 日経225先物 |
|---|---|---|---|
| 取引時間 | 平日 9:00〜15:30 | 24時間(平日) | 8:45〜15:15 / 16:30〜6:00 |
| 取引対象の数 | 約 4,000 銘柄 | 主要通貨 10 ペア程度 | 限月ごと数銘柄 |
| 公式APIの充実度 | △(証券会社依存) | ◎(OANDA等) | ○(証券会社依存) |
| 最小単位の資金 | 単元株で数万円〜 | 数千円から可能 | 数十万円〜 |
| データ取得の容易さ | △(遅延/ライセンス) | ◎(主要通貨は無料) | ○ |
| Mac での開発適性 | △ | ◎ | ○ |
この比較で決め手になったのは「Mac だけで完結できるか」と「24時間のデータ更新を扱えるか」の2点でした。日本株で全銘柄のリアルタイムデータを扱おうとすると、どうしても Windows 専用ソフトか有料ベンダーへの依存が避けられず、個人開発のランニングコストが跳ね上がります。
OANDA を選んだ理由
FX業者の中でも OANDA を選んだ理由を整理すると、次のようになります。
- REST API が公式ドキュメント込みで公開されている: 認証・レート取得・発注・ポジション照会が同じAPIキーで扱える
- 過去データが長期間取得できる: 10年以上前の分足データが API 経由で取得可能で、バックテスト用途に十分
- PUSH API(ストリーミング)も無料: リアルタイム更新が必要な戦略でも追加費用がかからない
- デモ口座と本番口座で API の互換性が高い: デモで作った発注ロジックをそのまま本番に切り替えられる
- **Python 用の公式ラッパー(oandapyV20)**が安定しており、サンプルコードも豊富
とくに「デモ→本番が同じコードで動く」という点は、個人開発者にとって非常に大きな安心材料です。他社のツールだと、デモと本番で仕様が微妙に違うことも珍しくありません。
現在の Mac + Parallels Desktop 環境の具体像
現時点での私の開発環境は、ざっくり次の構成です。
- macOS 上
- エディタ: Neovim / VS Code
- ランタイム: Python 3.12 (uv 管理)
- DB: PostgreSQL + TimescaleDB(Docker)
- 相場データ取得: OANDA REST/Stream API
- バックテスト基盤: 自作(pandas / numpy / polars)
- Parallels Desktop 上(Windows 11)
- kabuステーション / マーケットスピード II(動作確認用、現在は停止中)
- Excel によるプロトタイプ検証
Parallels 上の Windows は「検証用に残している」ポジションで、日々の開発と運用はほぼ macOS 側で完結できています。結果として、電気代と時間のどちらの観点でも、Mac 中心 + FX という組み合わせが個人開発には相性が良いと感じています。
FXを選んだことで得られた副次的メリット
最初は「開発環境との相性」だけが理由で FX を選びましたが、実際に運用フェーズに入ってから気づいた副次的なメリットがいくつかあります。
- 相場の寄り付き / 引け に縛られない: 日次バッチで「寄り付き前に銘柄を決める」というパイプラインを組む必要がなく、スケジューリングが大幅にシンプルになります。
- スプレッドが明示されている: 株式と違って約定価格の読みやすさがあり、バックテスト精度が高めやすいです。
- スワップポイントで中期保有戦略も検討可能: スイング + キャリー戦略を同じ口座で組めます。
- 少額で試行錯誤できる: 1,000通貨単位なら数千円から検証できるため、ロジック変更の影響を小さく試せます。
これらは最初に調べたときには意識していなかったポイントで、結果的に「FX でよかった」と感じる理由の中でも大きな割合を占めています。
これから選ぶ方へのアドバイス
もしこれからシステムトレードの対象を選ぶなら、私は次の3点を基準にすることをおすすめします。
- 使っている OS で開発が完結するか(Windows 依存は運用コスト高)
- 過去データと公式 API が無料または安価に手に入るか(バックテストの再現性に直結)
- デモ口座と本番口座で API 仕様が同じか(本番移行時の事故を避けられる)
この3点を満たせば、株でも FX でも大きな失敗は起きにくいと感じます。FXに限らず、自分の環境と目的に合った組み合わせを選ぶことが、長く続けられる開発のスタートラインになります。