GuluStock runs the same disciplined, walk-forward-validated engine across Bursa Malaysia equities and crypto spot — regime-aware signals, ATR-based risk management, and CPCV-graded strategies that only ship if they survive honest costs.
Pick where you trade. Each app shares the same backtesting, regime detection and risk model — tuned to its market's structure and costs.
KLSE equities — EODHD 5m/1h warehouse, klsescreener indices, FBM KLCI regime, Moomoo-honest cost model.
Binance spot — 24/7 OHLCV warehouse, BTC-led regime, Binance taker-fee cost model, fractional sizing.
The same rigor runs under both markets. No marginal ships, no curve-fit fantasies.
A 4-axis market state (trend, strength, volatility, breadth) from the KLCI for stocks and BTC for crypto gates every entry to the right environment.
Strategies are validated out-of-sample and across 15 combinatorial purged splits — they ship only if they're profitable across the distribution, not one lucky window.
Every trade gets an ATR-based stop and target, chandelier trailing, and position sizing that risks a fixed fraction of equity — capital preservation first.
Backtests subtract real frictions — Moomoo commissions + spread on Bursa, Binance taker fees + slippage on crypto — so the edge you see survives the real world.
Top-conviction signals open paper trades that a server cron watches against live quotes — every minute on Bursa, around the clock on crypto.
The most recent months are a locked validation slice strategies are never tuned against — a guard against multiple-testing self-deception.
Two purpose-built workspaces, one shared discipline.
Scan the liquid universe, read the FBM KLCI regime, reconcile a watchlist, and open risk-managed paper trades — all in one screen.
Crypto never sleeps — so neither does the monitor. BTC drives the regime, the universe ranks by USDT turnover, and costs use Binance taker fees.
No fluff dashboards. Each view answers one question a trader actually asks — what to do, why, and whether the edge is real.
Open the desk and the whole KLSE is already sorted, charted and tape-read for you.

Candlesticks layered with EMAs, an anchored VWAP, a side volume profile and a KDJ pane — the full read on any counter, one click from the table.

The whole universe split into Basing, Advancing, Topping and Declining — so you fish where the fish are.

A five-level depth ladder and live last price, streamed straight onto the cell you hover.
From a flagged idea to a monitored position — with the maths to back every step.

A shelf of shipped strategies, each carrying its CPCV ship-or-kill verdict and out-of-sample stats — no marginal maybes.

An equity curve beside a full exit-reason breakdown — target, stop, time-stop — so the edge is legible, not lucky.

Adds, drops and revivals are tracked over time, so nothing you flagged quietly slips off the radar.

Open and closed paper trades with entries, exits and net P&L after real Moomoo costs — watched each minute by a server cron.
Identical engine, crypto-tuned: BTC drives the regime and the monitor never sleeps.

Daily BTCUSDT with the exact same EMAs, anchored VWAP, volume profile and KDJ — identical tooling, crypto-orange.

The BTC regime-breakout strategy graded SHIP — about +92% over nine years with an out-of-sample profit factor of 1.68 and a −11% max drawdown.
Before a single signal fires, the engine reads the market state — and shows you the receipts.

The universe sorted live into Basing, Advancing, Topping and Declining. In a bear tape the engine simply says SKIP — discipline over FOMO, never a forced trade.

A live warehouse fed by named endpoints — with API-health pills, storage stats and freshness logs, so you see exactly where each number comes from.
The boring parts done right — live order books, a 24/7 monitor, an auditable warehouse and freshness you can see.

Hover any last-price and a five-level Binance depth ladder with bid/ask sizes and 24h change streams in — straight from the public data-api.

A server cron checks every open position against live quotes around the clock — no market-hours gate. In a bear tape it simply opens nothing.

Every table, its row count and its footprint on disk — 668k bars of OHLCV plus the backtest journal, all in plain sight.

A live freshness panel: the last bar pulled, the last warehouse refresh and the cron's latest heartbeat — so stale data has nowhere to hide.
Most "AI signals" are one lucky backtest in a costume. GuluStock makes every candidate survive a gauntlet before it ever fires a paper trade.
Trained on the past, judged only on unseen future bars — a 60/40 in-sample / out-of-sample split across years of history.
Combinatorial purged cross-validation re-runs the strategy across 15 split arrangements. It ships only if it's profitable across the distribution — mean PF ≥ 1.40, worst-decile ≥ 1.10.
The most recent six months are sealed off and never tuned against — a guard against the multiple-testing self-deception that kills retail backtests.
Moomoo commissions + spread on Bursa, Binance taker fees + slippage on crypto — subtracted from every trade, so the edge you see survives the real world.
The verdict is binary on purpose — SHIP or KILL, no comfortable "review" limbo. Worked example: the BTC regime-breakout strategy graded SHIP at roughly +92% over nine years, out-of-sample profit factor 1.68, max drawdown −11%.
The engine is shared; the structure, costs and clock are not. Here's how the two desks differ.
| Bursa Malaysia | Crypto | |
|---|---|---|
| Market | KLSE equities (~90 liquid counters) | Binance spot — top USDT pairs by volume |
| Data sources | EODHD 5m/1h + klsescreener indices | Binance public data-api (no key) |
| Regime driver | FBM KLCI — 4-axis state | BTC daily — regime + breadth + vol |
| Cost model | Moomoo commissions + spread (RM) | Binance taker 0.10% + 0.05% slippage (USDT) |
| Position sizing | Fixed-fraction of equity | Fractional notional — no board lot |
| Monitoring | Every minute, Bursa hours | Every 5 seconds, around the clock |
| History | 3 years intraday · 5 years indices | ~9 years, two full cycles, survivorship-debiased |
The operational layer that turns a backtest into something a desk — or a team — can actually run, day after day.
A single account spans both markets — switch between the Bursa and Crypto desks from the sidebar, with the same session and the same history.
Admin-managed accounts with role-based access and per-client page visibility — show a client only the Analysis and Trades they need.
New accounts are reviewed before activation, and an admin can switch public registration on or off from Settings — control over who gets in.
Submit a scan and a live status pill tracks it from queued to running to done with an elapsed timer — heavy work runs server-side, your tab stays free.
Clickable API-health pills, per-source freshness logs and cron-failure alerts keep the warehouse honest — stale or broken data surfaces immediately.
Click-to-sort columns across every table, a full light/dark theme that follows your system, and a layout that works from a trading monitor to a phone.
Continuously refreshed OHLCV — EODHD + klsescreener for Bursa, Binance for crypto — into a clean local store.
Design a strategy, walk it forward over years of history, and grade it under CPCV + a locked holdout. Ship or kill — no maybes.
Each day (or tick) the engine reads the regime, classifies the universe, and fires only the validated, regime-matched signals.
Top signals open paper trades with ATR stops/targets that a server cron watches against live quotes until they exit.
What the platform is, what it isn't, and the jargon decoded.
Both apps are free to start. Same engine, same rigor — your choice of battlefield.