Kurage FX AI Tradekfxai — FX paper trading, measured in public
PAPER TRADING · OANDA PRACTICE · EVERY NUMBER PUBLISHED

An FX bot that killed its own prediction model — and trades the strategy that survived.

kfxai is the FX sibling of kfreqai, run by the same jellyfish AI VTuber, Kurage. Before letting it trade, we built a walk-forward backtest harness and measured ML direction prediction across ~10,000 simulated trades. The verdict: no edge, at any timeframe. So we threw it away — and adopted the one strategy that survived every robustness test: a Tokyo-range → London-breakout session strategy on JPY pairs.

Kurage — jellyfish AI VTuber trader

Kurage 🪼

AI VTuber · runs the bot on OANDA Practice, and publishes what the data actually said.

⚠️ Paper trading only — virtual trades against real OANDA Practice prices; no real funds are at stake. FX involves leverage and losses can exceed deposits. Not affiliated with or endorsed by OANDA. Nothing on this site is financial advice.

Built in the honest order

Measure first, trade second. The backtest harness ships in the repo.

DISCIPLINE

We killed direction prediction with data

Logistic regression and LightGBM, on M15 / H1 / H4 candles, with triple-barrier labels and richer features — 7 configurations, ~10,000 walk-forward trades. Direction accuracy came out at 49–52% against a 52.6% breakeven. Every configuration lost money. The harness that proved it is scripts/backtest.py, in the open.

LIVE

Session breakout — the survivor

Tokyo range (00–07 UTC) broken during London hours (07–12 UTC), traded with the trend: stop at the far side of the range, target at 1.5× range height, forced flat at 21:00 UTC, one trade per pair per day. Validated over 1.6 years / 570 trades — positive on every take-profit multiple and buffer we swept.

LIVE

JPY pairs only — for a reason

The edge concentrates in USD/JPY, EUR/JPY and GBP/JPY — where the Tokyo session actually sets a meaningful range. AUD/JPY lost in both test windows and EUR/USD flipped sign between parameters, so both were excluded. Structure first, not cherry-picking.

CORE

OSS body with fixed risk gates

OANDA v20 connectivity, spread cap, daily-loss cap, max positions, stop/target on every order, SQLite trade journal, and a live dashboard. GPL-3.0 — clone it and it runs in paper mode with a rule-based brain, no LLM required.

CORE

Trust boundary: the brain can't touch money

The judgment layer (market regime, risk directives, trade reviews) is pluggable — rule-based, local Gemma 4 via Ollama, or a paid x402 API. Whichever you pick, it holds no broker credentials, decides no order sizes, and cannot place orders. Final risk decisions live in the body you run yourself.

NEW

Metered brain: Kurage FX Brain

The paid judgment API vendors the LLM intelligence of popular open-source trading projects — TradingAgents (Apache-2.0), FinGPT (MIT), ai-hedge-fund (MIT), pinned commits, full attribution — on local Gemma 4 12B. 15 skills at $0.05 per call, plus the full multi-agent debate graph at $0.50 (~5.5 minutes of measured compute). USDC on Base, JPYC on Polygon, or Bankr.

What the data said

The numbers below are why the bot trades what it trades.

H4 candles, 2.5 years, 2,922 walk-forward trades: direction accuracy 49.2% — a coin toss. H1 and M15 did no better, with either model. A strategy that only fires when the model is confident still lost on every window. So kfxai does not trade ML direction predictions.
One "edge" looked real: AUD/JPY made +7,277 (paper JPY) on H1 — then flipped to -26,697 on H4. Sign instability across windows and timeframes is how model variance disguises itself as signal. Excluded.
The session breakout survived everything we threw at it: two separate windows, a take-profit sweep that rose monotonically from +770 to +8,841 (paper JPY, 1,000 units), buffer sweeps all positive, and a structural story — the Tokyo range means something for JPY pairs. That's the one running on paper now.

Stack

Python · FastAPI · OANDA v20 REST (Practice) · SQLite · Gemma 4 12B via Ollama · systemd · GPL-3.0