Commit Graph

4 Commits

Author SHA1 Message Date
romysaputrasihananda ddd8c98af5 feat: add margin call / stop-out simulation
STOP_OUT_PCT env var (default 0.0 = Exness standard: stop at $0 equity).
- During open trade: checks worst-case equity (candle.low/high) each candle
- Before new trade: checks balance > stop_out_balance
- Prints STOP-OUT event in trade log and MARGIN CALL banner in summary

Portfolio simulator updated: checks combined balance vs stop-out level.

Findings:
  1% risk — never margin-called at any stop-out level
  5% XAUUSDm — MARGIN CALL at STOP_OUT_PCT=0.2 (balance hit $88.99 < $120)
  5% XAGUSDm/BTC/Oil — survive 20% stop-out (lower early drawdown)
  Portfolio 4 pairs — no margin call at 20% stop-out (diversification)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 20:24:56 +07:00
romysaputrasihananda e85f5a4322 feat: optimize params with 99k candles from new bridge (10.1.34.194:8000)
BODY_PCT_MIN 0.60→0.50: PF 1.43→1.47 on XAUUSDm over 18 months
18-month window (Jan 2025-Jun 2026) vs 8.5 months previously

Best pairs (body=0.50, EMA=20, RR=1.5):
  XAUUSDm  PF=1.47  Return=+21606%  MaxDD=-$9131
  XAGUSDm  PF=1.63  Return=+496%    MaxDD=-$192   ← best risk-adjusted
  BTCUSDm  PF=1.25  Return=+2333%
  USOILm   PF=1.32  Return=+762%

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 20:08:53 +07:00
romysaputrasihananda a78dd26cf0 feat: make ares self-contained workspace with bundled domain/mt5-client crates
Vendor domain and mt5-client from hermes into crates/ so the repo can
be pushed to GitHub without external path dependencies.

Also includes all bug fixes from autonomous session:
- impulse SL fix (SL at impulse candle low/high, not zone edge)
- pip_size fix for 5-decimal pairs
- fill_ok premature cancellation fix
- TIMEOUT_CANDLES, MIN_FVG_PIPS, MIN_SL_PIPS env vars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 20:03:09 +07:00
romysaputrasihananda e0e421ed05 feat: initial Ares scalping bot — momentum FVG strategy
Strategy: detect 3-candle momentum FVG on M5, enter on retrace fill.

Signal logic:
- Candle[i-1] must be a momentum candle: body ≥ BODY_PCT_MIN (default 60%)
  and close in top/bottom CLOSE_PCT_MIN (default 80%) of range
- FVG must exist between candle[i-2] and candle[i] (gap on momentum side)
- FVG zone midpoint = limit entry level
- SL: just outside FVG zone (+ optional SL_BUFFER)
- TP: entry ± SL_distance × MIN_RR

Features:
- EMA trend filter (EMA_PERIOD, same timeframe)
- FVG expiry (FVG_EXPIRY_CANDLES): stale setups auto-invalidate
- Currency conversion for non-USD profit pairs (JPY, CAD, CHF)
- Full friction model: spread, slippage, commission
- Date range filter (DATE_FROM / DATE_TO)
- Same stats output format as Hermes

Dependencies: domain + mt5-client from hermes/crates (path deps)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 04:01:40 +07:00