Trade Arena — the desktop app

An interactive walkthrough of the real interface. Switch tabs, change the model, tick the settings — then press Train or Run Backtest to watch a recorded run play back. It's a demo: nothing here connects to a broker or crunches numbers.

Trade Arena — Desktop Interactive demo
Mode
Range
Days ago End: Start:
Ready. Press “Collect Data”.
Downloads candles to a CSV — no charts are drawn here.

Look-back window (in candles) for each indicator. Hover a field for what it controls; see the Indicators tab for what each indicator measures and the column names it produces.

EMA
EMA 1
EMA 2
EMA 3
EMA 4
SMA
SMA 1
SMA 2
SMA 3
SMA 4
RSI / Stoch RSI
RSI
StochRSI RSI
StochRSI Stoch
Smooth K
Smooth D
ATR
ATR
SAR
SAR
VWAP
VWAP
Choppiness
Choppiness
ZigZag
Depth
Deviation
Backstep
Min Warm-up
Price MACD
Fast
Slow
Signal
Volume MACD
Fast
Slow
Signal
Support / Resistance
Pivot Window
Lookback Move
Lookforward Move
SMA Period
Min High Dev %
Min Low Dev %
Min Move Away %
Min Side Prominence %
FVG
ATR Multiplier
Min Width ATR
Min ATR %
Sweep ATR Min
Max Candles After Sweep
Max Candles After Displacement
Liquidity Lookback
Price Max/Min
Period
Price Std
Price Std
Std Price Min
EMA Spread
Spread Min
Spread Max
Spread Max/Min
Taker
SMA Taker Vol
Buy/Sell Sum
Buy/Sell Volume
Vol Max/Min
SMA Crossover
Crossover Max/Min

Train a PPO agent on the RL Features (sidebar) and the long/short flags. Then set Strategy = RL in the Backtest / Live Backtest / Run Trade tabs.

Model
Hyperparams Updates: Rollout: Hidden: LR:
Advanced Gamma: Entropy: Epochs: Seed:
Data Start: End:

Allowed ranges: Updates 1–100000 · Rollout 64–100000 · Hidden 8–1024 · LR 0.00001–0.1 · Gamma 0–1 · Entropy 0–1 · Epochs 1–100 · Seed 0–999999 · Memory 8–512 · Start 0–1 · End 0–1.
Hover a field for its range and default. A value outside its range is clamped to the nearest boundary.

Ready. Press “Train” to play a recorded run.
Training curves appear here.
Configuration
Strategy
Fraction Start: End:
Grid points: Search width:
Ready. Press “Run Backtest”.
Signals and equity curve appear here.

Fetches the latest candles, computes indicators and signals, and generates charts. Click Run to update.

Configuration
Strategy
Plot range
Charts
Ready. Press “Run”.
Latest candles appear here.
Strategy:
Tick the confirmation to arm the Start button. (Live trading is disabled in this demo.)
Orders and position changes stream to the log above — no charts are drawn here.

What each indicator measures, the period inputs it uses (set in the Periods tab), and the column names it produces — which you can reference in the Entry / Exit Criteria builder. Enable an indicator under Indicators in the sidebar for its columns to be computed.

Price

The raw candle data every other indicator is built on: close (price), open, high, low and volume.

Parameters:
Columns: price, open_price, high_price, low_price, volume
Indicator toggle: price
EMA — Exponential Moving Average

A moving average that weights recent candles more heavily, so it turns faster than an SMA. Four EMAs let you read trend alignment (e.g. ema_1 > ema_2 > ema_3 > ema_4 = strong uptrend). ema_spread measures how tightly the four are bunched — small spread = consolidation.

Parameters: EMA 1–4 periods. Spread Min/Max/Max-Min are the rolling-window lengths that summarise ema_spread.
Columns: ema_1…ema_4, ema_spread, ema_spread_min, ema_spread_max, ema_spread_max_min
Indicator toggle: ema
SMA — Simple Moving Average

An unweighted average of price over each window. Four SMAs plus a crossover signal between sma_1 and sma_2 (positive when the fast SMA is above the slow one).

Parameters: SMA 1–4 periods. Crossover Max/Min is the rolling-window length over which the sma_crossover_signal is reduced to its max and min.
Columns: sma_1…sma_4, sma_crossover_signal, sma_crossover_signal_max, sma_crossover_signal_min
Indicator toggle: sma
RSI / Stochastic RSI

RSI is a 0–100 momentum oscillator (commonly >70 overbought, <30 oversold). Stochastic RSI applies a stochastic to the RSI for a faster 0–1 oscillator with %K and %D lines.

Parameters: RSI; StochRSI RSI; StochRSI Stoch; Smooth K; Smooth D.
Columns: rsi, stoch_rsi, stoch_rsi_k, stoch_rsi_d
Indicator toggle: rsi
ATR — Average True Range

A volatility measure: the average candle range over the window. Higher ATR = more volatile. Often used to size stops/targets.

Parameters: ATR (default 14).
Columns: atr
Indicator toggle: atr
VWAP — Volume-Weighted Average Price

The average price weighted by traded volume over the window — a fair-value benchmark; price above/below VWAP suggests buying/selling pressure.

Parameters: VWAP (default 14).
Columns: vwap
Indicator toggle: vwap
Parabolic SAR

A trailing stop-and-reverse level that follows the trend; price crossing the SAR flips the implied direction. Useful as a trend/trailing-stop reference.

Parameters: SAR (default 14).
Columns: sar
Indicator toggle: sar
Price MACD Histogram

The MACD histogram of price (fast EMA − slow EMA, minus its signal line) — a momentum gauge; rising above zero = strengthening bullish momentum.

Parameters: Fast; Slow; Signal (Price MACD).
Columns: price_macd_hist
Indicator toggle: price_macd
Volume MACD Histogram

The same MACD histogram calculation applied to volume instead of price — a momentum gauge for trading activity rather than price.

Parameters: Fast; Slow; Signal (Volume MACD).
Columns: volume_macd_hist
Indicator toggle: volume_macd
Choppiness Index

A 0–100 score of how trending vs. sideways the market is. High values = choppy/range-bound; low values = strong trend. Often used as a filter.

Parameters: Choppiness (default 14).
Columns: choppiness_index
Indicator toggle: choppiness_index
Price Std — Volatility

Rolling standard deviation of price (price_std), and its price-normalised form (price_std_price) plus that value's recent minimum — a relative volatility filter.

Parameters: Price Std; Std Price Min.
Columns: price_std, price_std_price, price_std_price_min
Indicator toggle: price_std
Price Max/Min

The rolling highest high and lowest low over the window, how many bars since each last changed (*_length), and their relative spread (price_max_min_diff) — a breakout / range-width tool.

Parameters: Price Max/Min (default 30).
Columns: price_max, price_min, price_max_length, price_min_length, price_max_min_diff
Indicator toggle: price_max_min
Support / Resistance

Detects pivot-based support and resistance levels, the active level prices, and how long each has held (*_length). All thresholds are price-relative so they carry across instruments.

Parameters: Pivot Window; Lookback/Lookforward Move; SMA Period; Min High/Low Dev %; Min Move Away %; Min Side Prominence %.
Columns: support_price, resistance_price, support_price_length, resistance_price_length
Indicator toggle: support_resistance
ZigZag

Filters out minor fluctuations to highlight significant swing highs and lows, making market structure (higher highs / lower lows) easier to read. _is_high tells you which: True on a swing high (a "tip" — price has been pulling back down from it), False on a swing low (a "dip" — price has been recovering up from it). Each pivot is only revealed Depth bars after its extreme — the earliest point it was actually knowable — and never repaints, so it matches what a live chart would have shown in the moment and is safe in criteria, RL features, or anything driving a real open/close decision. zigzag_pivot is True only on the bar a pivot is revealed. The zigzag_hindsight_* columns place the same pivots on their true extreme bar using the whole dataset — they repaint / use future data, so never use them in a criterion or live RL feature; they exist only as a labeling target (e.g. ML swing labels) and are not plotted.

Parameters: Depth; Deviation; Backstep; Min Warm-up.
Columns: zigzag, zigzag_pivot, zigzag_is_high, zigzag_hindsight, zigzag_hindsight_pivot, zigzag_hindsight_is_high
Indicator toggle: zigzag
Engulfing Pattern

Flags bullish/bearish engulfing candlestick patterns, where a candle's body fully engulfs the previous one — a classic reversal cue.

Parameters:
Columns: engulfing
Indicator toggle: engulfing
FVG — Fair Value Gap

Detects price imbalances (gaps) left after a liquidity sweep and a strong displacement candle. Sizes are ATR-relative, so the same settings work across instruments.

Parameters: ATR Multiplier; Min Width ATR; Min ATR %; Sweep ATR Min; Max Candles After Sweep; Liquidity Lookback; Immediate Entry.
Columns: fvg_bull_entry, fvg_bear_entry, fvg_sweep_long, fvg_sweep_short, prev_session_high, prev_session_low
Indicator toggle: fvg

How the signal fires — and when it doesn't.

Fair value gap: the success path (sweep, displacement, gap, entry on the close back inside it) and the failure path (price closes below the swept low first, so the zone is invalidated and no trade is taken).
Taker Buy/Sell — Order Flow

Order-flow from aggressive (taker) buy vs. sell volume. Includes rolling sums, differences and smoothed series. Only Binance provides taker volume — not available for MetaTrader5 or OANDA.

Parameters: SMA Taker Vol; Buy/Sell Sum; Buy/Sell Volume; Vol Max/Min.
Columns: taker_buy_sell, taker_buy_sum, taker_sell_sum, taker_buy_sum_taker_sell_sum, taker_volume_sum, taker_buy_sell_volume, taker_buy_sell_volume_max, taker_buy_sell_volume_min, sma_taker_buy, sma_taker_sell
Indicator toggle: taker_buy_sell

Interface recreated from the PyQt6 desktop app. Buttons play recorded output — no broker connection, no computation.