Skip to content
All strategies

Strategies

PAXG Perp vs Spot Gold Premium Reversion, Hedged Long-Short (PAXGUSDT.BINANCE USD-M vs XAUUSD.SPOTMETAL, 1H, session-gated, forced flat before the weekend)

Outcome: Verifying

PaxgXauPremiumReversionLS

PAXG Perp vs Spot Gold Premium Reversion, Hedged Long-Short (PAXGUSDT.BINANCE USD-M vs XAUUSD.SPOTMETAL, 1H, session-gated, forced flat before the weekend)

Hypothesis

A cross-venue, market-neutral relative-value trade between the tokenised-gold perpetual PAXGUSDT on Binance USD-M and spot gold XAUUSD.SPOTMETAL (Dukascopy XAU/USD mid). One PAXG token is redeemable for one fine troy ounce of LBMA gold, so the ratio PAXG/XAU should stay close to its slow structural level: a small persistent premium or discount driven by mint/redeem friction and perp funding. Crypto order flow (leveraged longs and shorts in the perp, liquidations, risk-off flows from stablecoin holders) pushes the……Show moreShow less

A cross-venue, market-neutral relative-value trade between the tokenised-gold perpetual PAXGUSDT on Binance USD-M and spot gold XAUUSD.SPOTMETAL (Dukascopy XAU/USD mid). One PAXG token is redeemable for one fine troy ounce of LBMA gold, so the ratio PAXG/XAU should stay close to its slow structural level: a small persistent premium or discount driven by mint/redeem friction and perp funding. Crypto order flow (leveraged longs and shorts in the perp, liquidations, risk-off flows from stablecoin holders) pushes the perp away from that level. The OTC gold market does not follow. Because mint/redeem and cross-venue arbitrageurs exist, these dislocations should mean-revert within hours to a day or two. The strategy measures dev = 100*(PAXG_close/XAU_close - 1) - rolling median of the same premium over the last `baseline_hours` aligned hours. It takes the hedged position only when the deviation is both statistically extreme (|z| >= z_entry versus the rolling std) AND economically large (|dev| >= min_dev_pct, which by construction exceeds the ~0.115% two-leg round trip). Short the rich leg, long the cheap leg, dollar-neutral. Diversity: this is cross-venue (BINANCE + SPOTMETAL; the portfolio is 7.9% cross-venue against a target of 15% or more), long+short (20.7% against 45% or more), and uses SPOTMETAL (3 of 4323 experiments) plus a PAXG perp that is barely in the corpus. It is not the failed 'PAXG Weekend Safe-Haven Carry'. That was a directional, long-only, calendar trade on PAXG spot. This is a hedged spread with no gold beta and no weekend holding. It is also not the failed BCH/LTC distance pair, whose hedge ratio left one leg at ~5% notional. Here both legs are sized to equal dollar notional, and the two assets are economically the same claim. Execution: Binance is 24/7, so a market order at the signal bar's close stands in for a next-bar-open fill (capability next_bar_open_fill = use_equivalent). On the SPOTMETAL session venue the platform fills a bar-close decision at the next bar's open (next_open_fill, supported). The developer must therefore treat the XAU leg's fill as the next open, and both legs are submitted on the same decision. Protective stops are platform-matched intrabar stops on the spread P&L, evaluated per bar. History: PAXGUSDT.BINANCE 1H bars start 2025-03-27 (~18 months). XAUUSD.SPOTMETAL 1H runs from 2003, so the binding history is the PAXG perp. Pre-study note: I tried to measure the premium's distribution and firing rate, but the catalog scan timed out. Firing frequency is therefore NOT measured. Expected firing comes from the threshold design below, and the min_dev_pct floor is tunable so the optimizer can find a region that both fires and clears costs.

Fills the most under-represented buckets: cross-venue (7.9% vs ≥15%) and long+short (20.7%). It uses SPOTMETAL (0.1% of the corpus) and a PAXG perp with essentially no research history, and avoids BINANCE-majors concentration (BTC/ETH). The mechanism is a structural convergence between two claims on the same physical asset, not a TA signal. It is OHLCV-only (L189), and it is materially different from the failed PAXG weekend carry (directional, long-only, calendar) and from the BCH/LTC distance pair (statistical, unhedged in practice). BINANCE is over quota, but the PAXG perp is the only liquid, long-history tokenised-gold perp with a short side on a venue we backtest across this window; the XAUT perps on Binance and Bybit list later.

Implementation

A dollar-neutral trade between PAXGUSDT.BINANCE (USD-M perp, primary, 1H bars) and spot gold XAUUSD.SPOTMETAL (1H bars), betting that the PAXG premium reverts. On bars with identical close stamps: premium = 100*(PAXG/XAU - 1), dev = premium minus its rolling median over baseline_hours aligned hours, z = dev / rolling std. Entry needs |z| >= z_entry AND |dev| >= min_dev_pct. When dev > 0 it shorts PAXG and buys XAU; when dev < 0 it buys PAXG and shorts XAU. Each leg is equity * leg_notional_pct * leverage, so both legs carry equal dollar notional. Exits: (1) reversion, when sign*dev <= exit_dev_frac*|entry dev|; (2) max_hold_hours; (3) a spread P&L stop at -stop_loss_pct % of leg notional, checked at each bar close; (4) reduce-only intrabar stops on each leg at leg_catastrophe_stop_pct from that leg's fill; (5) forced flat on Friday at or after 16:00 New York and before any multi-day gold closure such as a holiday; (6) a missing-hedge guard so neither leg is ever left open alone. No entries on Friday at or after 12:00 New York, or within 120 minutes of the gold session close.

Implements the hypothesis as written, using the optimization plan's exact parameter names. Tunable: z_entry, min_dev_pct, exit_dev_frac, baseline_hours, max_hold_hours. Fixed: leverage 2.0, stop_loss_pct 1.5, leg_notional_pct 0.3, friday_flatten_hour_ny 16, friday_no_entry_hour_ny 12, leg_catastrophe_stop_pct 3.0, no_entry_minutes_before_close 120. Two extra fixed parameters not in the plan (closure_flatten_minutes 60, closure_gap_hours 6) extend 'flat before the weekend' to holiday closures (Good Friday,……Show moreShow less

Implements the hypothesis as written, using the optimization plan's exact parameter names. Tunable: z_entry, min_dev_pct, exit_dev_frac, baseline_hours, max_hold_hours. Fixed: leverage 2.0, stop_loss_pct 1.5, leg_notional_pct 0.3, friday_flatten_hour_ny 16, friday_no_entry_hour_ny 12, leg_catastrophe_stop_pct 3.0, no_entry_minutes_before_close 120. Two extra fixed parameters not in the plan (closure_flatten_minutes 60, closure_gap_hours 6) extend 'flat before the weekend' to holiday closures (Good Friday, Christmas, New Year), using the platform calendar. Point-in-time alignment: the base barrier evaluates a PAXG bar only after the XAU bar with the same close stamp arrives. calculate_signal also rejects any XAU bar whose ts_event differs from the PAXG ts_event, so the XAU leg can never be ahead (L139). When there is no XAU bar (weekend, daily break) no decision is made, so the strategy is session-gated by construction. Execution: the PAXG market order fills at the decision bar's close. The XAU leg is submitted on the same decision, and the platform fills it at the next XAU bar's open (next_open_fill). The spread stop uses the real fill prices recorded in on_order_filled. Sizing uses leverage 2.0: equity*0.3*2 per leg, so gross exposure is 1.2x primary equity. baseline_hours is clamped to [72,480], and that range is declared in _param_bounds. All per-position state is held as scalar attributes. Checks: Layer-1 static analysis passed with no errors (only advisory warnings), and all 6 synthetic scenarios passed locally. Caveat: how often entries fire is NOT measured. On this node the local catalog's XAUUSD.SPOTMETAL bars end in 2006-06, so 1H spot-gold data for the 2025-03 to 2026-10 window must come from the backtest's on-demand Dukascopy collection. If that collection fails, the run should be classed as data_unavailable, not as a strategy defect.

Backtest and paper results are hypothetical. Trading involves risk of loss.