Loading...
Loading...
Browse all reviews, rankings, guides, strategies, and trust documents.
Glossary
Every term we use across the AI Signals platform, defined in plain language and cross-referenced to the methodology page.
54 / 54
The 0-100% score on every signal card.
Composite probability the model assigns to a signal succeeding. Computed as 0.5×P_ml + 0.3×confluence + 0.2×historical hit rate. Below 60% → not published. 75-89% → high-confidence. 90%+ → premium (rare).
Also known as: Model probability
The raw probability output from the LightGBM model.
After Platt scaling, P_ml is a real probability — 0.7 means the model is historically 70% accurate on similar feature vectors during out-of-sample validation. It enters the confidence formula with the largest weight (0.5).
Making model probabilities mean what they say.
A model that outputs 0.7 but is only right 50% of the time is uncalibrated. We use Platt scaling on a held-out validation set so that the displayed probability actually matches the empirical hit rate on out-of-sample data.
Logistic-regression layer that calibrates raw model scores.
Maps a model's raw output to a true probability via a small logistic regression fit on held-out data. After Platt scaling, score=0.7 means "this configuration has won 70% of the time on out-of-sample windows."
Also known as: Win rate
Rolling out-of-sample winrate for a (symbol, timeframe, model version) tuple.
90-day rolling fraction of TP-hits on the specific model version. Enters the confidence formula with weight 0.2. Cold-start defaults to 0.55 for newly-promoted model versions until 90 days of live data accumulates.
Microsoft's gradient-boosted decision tree library — the ML engine behind every signal.
We train one LightGBM ensemble per (symbol, timeframe) tuple — 40 total. Chosen over deep neural networks because for tabular financial data with limited samples, gradient-boosted trees beat deep nets on Sharpe and interpretability at 10× lower training cost (Grinsztajn 2022, NeurIPS).
Systematically removing features to verify each one helps.
For each candidate feature, retrain the model with the feature held out. If out-of-sample Sharpe doesn't drop, the feature wasn't helping and gets cut. Our 82 final features survived ablation from 140+ candidates.
Labelling scheme: TP / SL / TTL exit barriers instead of fixed-horizon returns.
Per López de Prado (Advances in Financial Machine Learning, 2018). Each training bar is labelled with the outcome that would have happened from that entry: TP hit (+1), SL hit (-1), or TTL elapsed (0). Far less label leakage than naïve "return at t+N" labels.
Train on past window, validate on next window, advance, repeat.
Train on a 6-month window, validate on the following 1-month window, advance both by 1 month, repeat. Strict temporal ordering — never random shuffles. Models that fail acceptance thresholds across the full walk-forward record are not promoted to production.
A model setting (tree depth, learning rate) chosen before training, not learned from data.
Tuned via Optuna on a 70/15/15 train/val/test split with walk-forward boundaries. Includes LightGBM's num_leaves, learning_rate, feature_fraction, lambda_l2. Re-tuned on each weekly retrain only if the previous hyperparameters' Sharpe drifts more than 0.3.
A published recommendation to enter a trade with specific entry / SL / TP.
Generated by the pipeline (see methodology). Carries direction (long/short), entry price, stop-loss, take-profit, R-target, confidence, TTL, and the model version that produced it. Lives in an append-only log from publication through outcome.
Also known as: Entry price
The price at which the signal recommends opening the position.
Always the close price of the bar at which the signal was generated. For GUEST tier signals, entry is hidden (`null`) — only REGISTERED tier and above see the actual price. The signal page marks GUEST cards with `blurred: true`.
Also known as: SL
Predetermined exit price that caps the loss if the trade moves against us.
Computed as entry ± ATR(14) × stop_multiplier. Multiplier varies by timeframe: M15=1.0, H1=1.5, H4=2.0, D1=2.5. Tight enough that random noise doesn't trigger it; wide enough that normal pullbacks don't either. Never moved after publication.
Also known as: TP
Predetermined exit price where the position closes in profit.
TP = entry ± ATR(14) × stop_multiplier × R_target. R_target is 1.5-3.0 depending on confidence — higher confidence signals carry higher R targets. Always set so risk-reward ratio is at least 1.5R.
Also known as: R
Standardised unit of risk: 1R = the distance from entry to SL.
If your SL is 50 pips below entry, that's your 1R. Hitting TP at 100 pips above entry = +2R. Hitting SL = -1R. R-multiples normalise across symbols and timeframes — a 2R win on EURUSD H1 and a 2R win on XAUUSD H4 represent the same risk-adjusted gain.
Also known as: Time-to-live, expiry
Maximum lifetime of a signal before it expires unfilled.
Default TTL by timeframe: M15=6 bars, H1=12 bars, H4=12 bars, D1=5 bars. If neither TP nor SL is hit within TTL, the signal is marked `expired` — it counts neither as a win nor a loss in track record metrics.
GUEST-tier signal where entry / SL / TP are hidden.
The backend sets `blurred: true` and nulls out entry_price, stop_loss, take_profit for GUEST tier (anonymous visitors). Direction and confidence are still visible. UI shows the card with a blur overlay + upgrade CTA. REGISTERED tier and above see all numbers.
Internal signal that was blocked by the macro overlay before publication.
When a pending high-impact economic event falls within event_window_hours, the signal is vetoed — never published, never visible to users. Vetoes are logged internally but excluded from track record metrics (they were never actionable).
Signal where TTL elapsed without TP or SL hitting.
Counts as neither a win nor a loss in track record. Typically caused by low-volatility regimes where the bar didn't move enough to hit either barrier. Tracked separately in performance summaries (`n_expired`).
Agreement across multiple technical signals on direction.
Score 0-1 from 5 sub-checks: multi-timeframe alignment, S/R proximity, RSI divergence, MACD signal-line cross, EMA stack alignment. Equally weighted. Enters the confidence formula with weight 0.3. High confluence + high P_ml = premium signal.
Also known as: Annualised Sharpe
(Mean return − risk-free rate) / standard deviation, annualised.
The standard risk-adjusted return metric. Sharpe 1.0+ is good for a publicly published signal service; 2.0+ is rare and meaningful; 3.0+ is hedge-fund tier (and usually involves infrastructure retail traders don't have). Used as a walk-forward acceptance gate.
Also known as: PF
Gross R won / gross R lost.
If winning trades net +50R and losing trades net -20R, profit factor = 2.5. A profit factor below 1.0 means the system is losing money. Above 1.5 is solid; above 2.0 is strong. Walk-forward acceptance threshold is ≥ 1.5.
Fraction of signals where TP hit before SL.
Expired signals are excluded from both numerator and denominator. With our typical R-target of 2.0, a 50% win rate is profitable; 55% is good; 60%+ is rare. Don't fixate on win rate alone — average R-multiple matters more for actual P&L.
Also known as: Max drawdown, DD
Largest peak-to-trough loss in R-multiples within a window.
A -8R drawdown means running P&L dropped 8R below its prior peak at some point. Walk-forward acceptance threshold is ≤ 15R within a 6-month training window. Live monitoring rolling-30-signal drawdown triggers auto-rollback if it exceeds the threshold.
Also known as: R:R, R-target
How much you stand to win compared to what you risk on a trade.
A 2.0 R-target means for every 1R you risk (entry → SL distance), you target 2R on the upside (entry → TP distance). With a 50% win rate at 2R, expected value is positive: 0.5 × +2R + 0.5 × -1R = +0.5R per signal.
How much of your account you risk on one signal.
Not something we set — it's your decision. Standard prudent sizing: risk 0.5%-1% of account per signal. For a 2% account-risk signal with 50-pip SL on EURUSD, that's a position size such that 50 pips × pip value = 2% of equity.
Standardised forex position quantity. 1 standard lot = 100,000 base currency.
Mini = 0.1 lot (10,000), Micro = 0.01 lot (1,000), Nano = 0.001 lot (100). Pip value scales linearly with lot size — 1 pip on EURUSD ≈ $10 per standard lot, $1 per mini, $0.10 per micro.
Smallest standard price move in a forex pair — 0.0001 for most majors, 0.01 for JPY pairs.
Pip = "percentage in point". For EURUSD at 1.0850, moving to 1.0851 is +1 pip. For USDJPY at 145.20, moving to 145.21 is +1 pip. Our SL/TP distances are typically 30-150 pips depending on symbol volatility (ATR-scaled, not fixed).
Schedule of upcoming high-impact economic data releases and central-bank events.
Our backend queries Forex Factory's calendar feed, cross-checked against Bloomberg. High/medium-impact events on currencies in a signal's pair within event_window_hours veto the signal. The calendar API endpoint is `/api/public/economic-calendar`.
Economic release with historically large market reaction — NFP, CPI, FOMC, etc.
Forex Factory tags events red/orange/yellow by historical volatility impact. Red (high-impact) events always trigger a veto in the relevant currencies. Orange (medium-impact) trigger veto only if within tighter event_window (1h for M15/H1, 2h for H4).
Also known as: event_window_hours
Time window before a high-impact event during which fresh signals are vetoed.
Default: 4 hours for H1 signals, 8 hours for H4, 24 hours for D1, 1 hour for M15. Configurable per-symbol via backend settings. A signal generated 3 hours before NFP on USD pairs → vetoed (within the 4h H1 window).
Also known as: Non-Farm Payrolls
Monthly US employment report — one of the highest-impact forex events.
Released by the US Bureau of Labor Statistics first Friday of each month at 12:30 UTC. Affects all USD pairs heavily. Always vetoes USD-pair signals within event_window — 4h for H1, 8h for H4.
Also known as: Consumer Price Index, inflation print
Headline inflation reading — drives central-bank policy expectations.
US CPI released mid-month at 12:30 UTC. EU/UK/JP releases follow regional schedules. Hot inflation typically strengthens the local currency (rate-hike expectations); cooling weakens. High-impact across the relevant currency pairs.
Also known as: Federal Open Market Committee
US central bank rate-decision committee — 8 meetings per year.
Statement + press conference release the largest USD volatility events. We veto USD pair signals 48h before scheduled meetings (a longer "blackout period" than the standard event window) because positioning shifts unpredictably in the run-up.
Also known as: Relative Strength Index
Momentum oscillator measuring 14-bar gain/loss ratio. 0-100 scale.
Computed as RSI = 100 − 100 / (1 + RS), where RS = avg gain / avg loss over 14 bars. Values >70 traditionally indicate overbought; <30 oversold. Used as a feature plus confluence component (divergence between price and RSI is a high-quality reversal signal).
Also known as: Moving Average Convergence Divergence
Trend + momentum indicator built from EMA differences.
MACD line = EMA(12) − EMA(26). Signal line = EMA(9) of MACD. Histogram = MACD − Signal. Signal-line crosses (MACD crossing above/below Signal) and histogram acceleration are the high-value features for our models.
Also known as: Average True Range
Measure of bar-to-bar price movement — drives all SL/TP placement.
14-bar average of True Range (max of: high-low, |high-prev_close|, |low-prev_close|). Adapts to symbol volatility: EURUSD ATR ≈ 30-50 pips on H1; XAUUSD ATR ≈ 300-500 cents. All our stops are sized in ATR units, never fixed pips.
Also known as: BB
20-period moving average ± 2 standard deviations — volatility envelope.
Middle band = SMA(20). Upper/lower = middle ± 2 × stdev(20). Price tends to mean-revert when touching outer bands during ranging regimes; breaks of outer bands signal trending regimes. Used as a feature + confluence weight.
Also known as: Exponential Moving Average
Recency-weighted moving average — more responsive than SMA.
We use a 4-EMA stack (5, 21, 50, 200) per symbol. Alignment of the stack (all sloping same direction, ordered correctly) signals a trending regime. Crossovers between stack members are high-quality features. Slope is a separate feature.
Also known as: S/R, supply-demand zones
Price levels where buyers (support) or sellers (resistance) historically dominated.
Detected via 20-bar swing pivots. Distance to nearest S/R level is a feature; entries near strong S/R get a confluence boost. SL placement avoids being just beyond an S/R level (stop-runs).
Price and an oscillator (RSI, MACD) move in opposite directions.
Bullish divergence: price makes lower low, RSI/MACD makes higher low → potential reversal up. Bearish: price higher high, oscillator lower high → potential reversal down. We treat divergences as a high-weight confluence signal.
Daily reference price computed from prior session's high/low/close.
Pivot = (H + L + C) / 3 from the prior day. R1/S1 levels = 2×Pivot − L / 2×Pivot − H. Distance to today's pivot is a session-context feature; entries near pivots get tracked separately for performance analysis.
Simulating a trading strategy on historical data to estimate performance.
We backtest models on 5 years of historical bars (4 for crypto due to data quality) using walk-forward methodology — never random splits. Tested for execution feasibility against Tier-1 ECN spread + slippage assumptions. See methodology page for full "tested vs untested" scope.
Also known as: OOS
Data the model has never seen during training.
The walk-forward validation window is OOS for the corresponding training window. All performance numbers we report come from OOS evaluation — never in-sample. Track record on the live signal log is the ultimate OOS evaluation.
Automatic reversion to previous model version when live performance degrades.
A rolling 30-signal window per (symbol, timeframe) tracks live Sharpe / WR / PF. When any metric falls below threshold for 20 consecutive signals, the engine reverts to the previous good model version. No human approval needed for the rollback itself.
Initial period after a new model version is promoted before reliable live stats exist.
For the first 90 days of a new model version's life, historical hit rate defaults to 0.55 in the confidence formula (sensible prior). After 90 days of OOS signals, the actual rolling hit rate replaces the prior.
Combination of multiple weak learners that outperforms any single one.
Each (symbol, timeframe) tuple's LightGBM is itself an ensemble of ~500 decision trees, sequentially fit to correct residuals from previous trees. The 0.5 weight on P_ml + 0.3 on confluence + 0.2 on hit-rate in the confidence formula is also an ensemble (of different signal sources).
Difference between signal entry price and actual fill price you receive.
In validation we assume 0.5-pip slippage on top of Tier-1 ECN spreads. Live trading usually shows 0.3-1.5 pip slippage depending on broker, account size, and market conditions. Slippage matters most for tight-stop M15 signals where it can erode 5-10% of the R-target.
Also known as: Currency pair
Two-currency quote like EURUSD — value of base in terms of quote.
EURUSD 1.0850 means 1 EUR = 1.0850 USD. Majors (USD on one side): EURUSD, GBPUSD, USDJPY, AUDUSD, USDCAD, NZDUSD, USDCHF. Crosses: no USD (EURJPY, GBPJPY). Exotics: emerging-market currencies. We trade only majors + XAUUSD + BTCUSD/ETHUSD.
Difference between bid (sell) and ask (buy) prices.
Tier-1 ECN broker EURUSD spreads typically 0.1-0.3 pips. Wider on minors (0.5-1.5), exotic pairs (5-50), and XAUUSD (2-4). Spread eats into every trade — a 2-pip TP after a 0.5-pip spread leaves you 1.5 pips net. Why we don't trade exotics: spread alone often exceeds 1R.
Also known as: Electronic Communication Network
Broker model that routes orders to a pool of liquidity providers, not to a dealing desk.
ECN brokers (IC Markets, Pepperstone, Tickmill) typically offer tighter spreads + faster execution than market-maker brokers, in exchange for a per-side commission ($3-7 per standard lot). Our methodology assumes Tier-1 ECN execution — slippage tolerances widen for non-ECN setups.
Cryptocurrency quoted in a fiat or stablecoin — BTCUSD, ETHUSD.
We trade BTCUSD and ETHUSD on H1/H4/D1. M15 is skipped on crypto because the spread + slippage friction relative to ATR is too high. Crypto markets run 24/7 with no economic-calendar veto — but we apply additional drawdown filters.
How easily a position can be entered or exited without moving the price.
High liquidity (EURUSD London session) → tight spreads, low slippage. Low liquidity (USDJPY Asian session lows, holiday weekends) → wider spreads, higher slippage, gaps. We surface session-of-day as a feature so the model learns liquidity-regime-aware behaviour.
One of Asia / London / NY / overlap — drives liquidity, volatility, and direction biases.
London (07-16 UTC) is the most liquid for EUR/GBP. NY (12-21 UTC) overlap with London is the highest-volatility window. Asia (22-07 UTC) is calmer except for JPY events. The session is a feature in every model — strategies vary by session bias.
The methodology page connects these terms into the full pipeline. The track record page shows them in action.