FX自動売買 デモ検証中
MT4のEAが価格監視と発注を担い、売買判断はPython側のHTTPブリッジに置く構成。判断ロジックはProtocolで抽象化してあり、設定1行でルールベースとJevを入れ替えられる。
基本情報
- 取引所
- 楽天証券 MT4(デモ口座)
- 銘柄
- USD/JPY 単一ペア
- 実行層
- MQL4 EA
- 判断層
- Python / FastAPI
- 現在のエンジン
- 移動平均クロス(Jevは実装済・未適用)
- テスト
- 248 件
- コード行数
- 5,297 行
- コミット
- 22
ディレクトリ構成
backtest/
bridge/
config/
data/
decision/
ea/
logs/
tests/
tools/
構成
EAは価格監視・ブリッジ問合せ・発注・損切りだけを行う。売買判断は一切持たない。 判断とリスク判定はすべてPython側にあり、EAは結果を実行するだけ。
MT4 (EA) ──HTTP──▶ ブリッジ ──▶ リスク層 ──▶ 判断層
▲ │
└──── buy / sell / hold / close_all ───────────┘
この分離により、判断ロジックを差し替えてもEAの再コンパイルが要らない。 逆にリスク判定はEA側でも二重に行い、ブリッジが誤った指示を出しても 過大なロットが通らないようにしている。
安全設計
迷ったら建てない、を全経路で徹底している。
| 状況 | 挙動 |
|---|---|
| ブリッジ無応答 | 新規建てを一切行わない |
| 判断エンジンが例外 | hold にフォールバック |
| 1日の損失が上限到達 | 全ポジション決済 + 新規建て停止 |
| 決済が失敗 | 残ポジションがゼロになるまで再試行 |
| ボラティリティ急拡大 | 新規建てを止める |
1トレードの損失額を固定し、そこからロットを逆算する。固定ロットにすると 損切り幅が変わるたびに実際の損失額が変動してしまうため。