🚀【Fundora自動売買計画】ゴールドロールオーバー戦略をPython cBotで完全自動化する
🎊 Fundoraデビューしました!
ついにFundoraでプロップファームデビュー!
そして調べてみたら、条件が良すぎてワロタ。
Fundoraのゴールド条件
| 項目 | Fundora | 一般的なブローカー |
|---|---|---|
| スプレッド | 30pt(3pips) | 50-100pt |
| スワップ | なし(フリー) | -$10〜-$30/日 |
| レバレッジ | 1:100 | 1:50〜1:100 |
| プラットフォーム | cTrader | MT4/MT5 |
これ、ゴールドロールオーバー戦略に最適やん!
📊 ゴールドロールオーバー戦略のおさらい
過去の検証記事で明らかになった事実:
基本ルール
エントリー: JST 04:00 ロング決済: JST 14:00ポジション: XAUUSD(ゴールド)検証結果(753トレード)
| 指標 | 値 |
|---|---|
| 累計利益 | +14,848 pips |
| 勝率 | 58.4% |
| 平均 | +19.72 pips/回 |
| シャープレシオ | 3.64 |
| 年間期待リターン | 約$500(0.1ロット) |
重要な発見
- SL/TPは不要: 97%の設定で結果が悪化
- 最大許容コスト: 20pips(スプレッド+スワップ)
- 曜日別: 水・金が強い、木が弱い
💰 Fundoraでのコスト計算
コスト構造
| コスト | Fundora | XM KIWAMI | Exness |
|---|---|---|---|
| スプレッド | 3 pips | 1.5 pips | 2 pips |
| スワップ | 0 | -$6/日 | -$10/日 |
| 合計 | 3 pips | 6+ pips | 10+ pips |
期待値計算
元の期待値: +20 pips/回Fundoraコスト: -3 pips─────────────────────純期待値: +17 pips/回 ← これでも余裕で黒字!Fundoraの条件なら、ゴールドロールオーバーは完全に機能する!
😱 FIX APIの地獄を振り返る
最初、FIX APIで実装しようとした。
結果:
main.py: 813行knowledge.md: 770行ハマりポイント: 13個精神的ダメージ: 甚大開発期間: 1週間発見した13のハマりポイント
| # | ハマりポイント |
|---|---|
| 1 | CTIDパスワードを使用 → エラー |
| 2 | 1セッションで全部やろうとした |
| 3 | シンボルを文字列で指定 |
| 4 | TargetSubID忘れ |
| 5 | SecurityListRequestType=4 |
| 6 | ポジション照会に標準タグ使用 |
| 7 | ハートビート遅延 |
| 8 | シーケンス番号ミス |
| 9 | UTC時刻フォーマット間違い |
| 10 | BodyLength計算ミス |
| 11 | Checksum計算ミス |
| 12 | 数量の単位変換忘れ |
| 13 | SSL証明書検証 |
全部、ドキュメントに書いてない… 😭
🎉 Python cBotという救世主
そして知った。cTraderがPython cBotに対応している!
FIX API vs Python cBot
| 項目 | FIX API | Python cBot |
|---|---|---|
| コード量 | 813行 | 50行 |
| 開発期間 | 1週間 | 1日 |
| バックテスト | なし | 標準搭載 |
| 接続管理 | 自前 | 自動 |
| ハートビート | 30秒ごと | 不要 |
| エラー処理 | 自前 | 自動 |
もうFIX APIには戻れない。
🛠️ Python cBotでの実装計画
完全なコード(約50行)
"""Gold Rollover Bot for FundoraJST 04:00 BUY → JST 14:00 EXIT"""
class GoldRolloverBot(): """ Fundora向けゴールドロールオーバーcBot
戦略: - エントリー: UTC 19:00 (JST 04:00) - 決済: UTC 05:00 (JST 14:00) - ポジション: ロングのみ - SL/TP: なし(検証結果に基づく) """
def on_start(self): # パラメータ設定 self.volume = 1000 # 0.01ロット self.label = "GoldRollover" self.has_position = False
# スプレッド上限(Fundoraは通常30pt=3pips) self.max_spread = 0.5 # 50pt以上なら見送り
api.Print("🚀 Gold Rollover Bot started!") api.Print(f" Volume: {self.volume}") api.Print(f" Max Spread: {self.max_spread}")
def on_bar_closed(self): server_time = api.Server.Time hour = server_time.Hour weekday = server_time.DayOfWeek
# 土日はスキップ if weekday in [DayOfWeek.Saturday, DayOfWeek.Sunday]: return
# エントリー判定(UTC 19:00 = JST 04:00) if hour == 19 and not self.has_position: self._try_entry()
# 決済判定(UTC 05:00 = JST 14:00) elif hour == 5 and self.has_position: self._close_all()
def _try_entry(self): # スプレッドチェック spread = api.Symbol.Spread if spread > self.max_spread: api.Print(f"⚠️ Spread too high: {spread}") return
# エントリー実行 api.ExecuteMarketOrder( TradeType.Buy, api.Symbol.Name, self.volume, self.label ) self.has_position = True api.Print(f"🟢 Entry! Spread: {spread}")
def _close_all(self): # 該当ラベルのポジションをすべて決済 for pos in api.Positions: if pos.Label == self.label: result = api.ClosePosition(pos) api.Print(f"🔴 Exit! P/L: {pos.NetProfit}")
self.has_position = False
def on_stop(self): api.Print("⛔ Bot stopped")コードの特徴
- 50行で完結: FIX APIの813行から94%削減
- SL/TP不要: 検証結果に基づく設計
- スプレッド監視: 異常時はエントリー見送り
- ラベル管理: ポジション識別が容易
📅 運用スケジュール
日次スケジュール(JST)
03:50 - Bot起動確認04:00 - 自動エントリー(ロング)04:05 - エントリー確認14:00 - 自動決済14:05 - 決済確認・P/L記録週間スケジュール
| 曜日 | 運用 | 理由 |
|---|---|---|
| 月 | ○ | 通常運用 |
| 火 | ○ | 通常運用 |
| 水 | ◎ | 強い曜日(+30pips) |
| 木 | △ | 弱い曜日(+4.75pips) |
| 金 | ◎ | 強い曜日(+32pips) |
| 土 | - | 市場休場 |
| 日 | - | 市場休場 |
月間チェックリスト
- 月初: VPS稼働確認
- 週次: 収支レポート作成
- 月末: パフォーマンス分析
🧪 バックテスト計画
Python cBotのバックテスト機能
データ: ティック/M1/H1から選択期間: 任意の過去期間最適化: 遺伝的アルゴリズム対応ビジュアル: チャート上でトレード表示テスト手順
- 短期テスト(1ヶ月): 基本動作確認
- 中期テスト(1年): 季節性の確認
- 長期テスト(5年): 戦略の堅牢性確認
期待される結果
| 期間 | 予想累計 |
|---|---|
| 1ヶ月 | +340 pips |
| 1年 | +4,000 pips |
| 5年 | +20,000 pips |
※Fundoraコスト(3pips/回)控除後
⚠️ リスク管理
Fundora特有のルール
| ルール | 内容 | 対策 |
|---|---|---|
| 日次損失制限 | 口座の5% | ロット管理で対応 |
| 総損失制限 | 口座の10% | 緊急停止機能実装 |
| 禁止事項 | アービトラージ等 | 単純戦略のみ使用 |
ロット管理
口座残高: $10,000の場合日次損失制限: $500(5%)
ゴールド1ロットの1pip = $10最大許容損失1日: 50pips(1ロット)
推奨ロット: 0.1〜0.3ロット→ 1日の最大損失を100pips以内に抑える緊急停止条件
def check_emergency_stop(self): daily_pnl = self._get_daily_pnl() account_balance = api.Account.Balance
# 日次損失が4%を超えたら停止(5%の手前) if daily_pnl < -account_balance * 0.04: api.Print("🚨 EMERGENCY STOP: Daily loss limit") api.Stop()🔮 今後の拡張計画
Phase 1: 基本運用(1-2ヶ月目)
- 0.01ロットで実運用開始
- 日次レポート作成
- バグ修正・安定化
Phase 2: 最適化(3-4ヶ月目)
- 曜日フィルター追加(木曜スキップ)
- ロット最適化
- パフォーマンス分析
Phase 3: スケールアップ(5ヶ月目〜)
- ロット増加
- 複数戦略追加
- 年末アノマリー戦略との併用
追加検討中の戦略
| 戦略 | 期待値 | 実装難易度 |
|---|---|---|
| ゴールド年末アノマリー | +$71/年 | 低 |
| ゴトー日USDJPY | +15pips/回 | 低 |
| ブレイクアウト | 要検証 | 中 |
📊 成功指標(KPI)
定量目標
| 期間 | 目標 | 備考 |
|---|---|---|
| 1ヶ月 | +300 pips | コスト控除後 |
| 3ヶ月 | +1,000 pips | 安定運用確認 |
| 6ヶ月 | +2,000 pips | 継続可能性確認 |
| 1年 | +4,000 pips | Phase 2完了 |
定性目標
- cBot安定稼働(1ヶ月連続エラーなし)
- バックテストと実運用の乖離10%以内
- 月次レポート自動生成
- Fundoraチャレンジ通過
🎯 まとめ
Fundora × ゴールドロールオーバーの相性
| チェック項目 | 結果 |
|---|---|
| コスト20pips以内? | ✅ 3pips |
| スワップフリー? | ✅ |
| cTrader対応? | ✅ |
| Python cBot使用可? | ✅ |
完璧な組み合わせ!
実装ロードマップ
Week 1: Python cBot実装・単体テストWeek 2: バックテスト検証Week 3: デモ口座で実運用テストWeek 4: 本番運用開始(0.01ロット)期待される成果
年間期待リターン: +4,000 pips(コスト控除後)0.1ロットで運用: 約$400/年1ロットで運用: 約$4,000/年🔥 最後に
FIX APIで813行のコードを書き、13個のハマりポイントと格闘した。
その経験があるからこそ言える。
Python cBotは天国。
50行で同じことができる。 バックテストも標準搭載。 エラー処理も自動。
そしてFundoraの好条件:
- スプレッド3pips
- スワップフリー
これで勝てなかったら、何で勝てる?
さあ、自動売買の旅を始めよう! 🚀
📚 関連記事
質問・進捗報告はコメントで! 🙌
🎁おすすめツール・サービス
※上記リンクにはプロモーション(広告)が含まれています
量子相場謀略|ホソノP
ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。