Skip to content
All strategies

Strategies

ASX Gold-Miner Idiosyncratic Down-Shock Rebound: buy an Australian gold miner at the next ASX open after a >=2-sigma daily drop RELATIVE TO ITS GOLD-MINER PEER BASKET, fixed 5-session clock (AUEQ 1-DAY, 10-name point-in-time panel, long-only, unlevered, flat most of the time)

Outcome: Paper Trading

AsxGoldMinerIdioDownShockRebound

Outcome Summary

This original hypothesis moved peer-relative shock absorption with a fixed exit clock into ASX gold miners, a market the factory had barely traded. The baseline rule made a modest 18.6% over 288 trades (Sharpe 0.34), and its peer-excess edge was thin and fading after 2022, but backtest review approved optimization. The optimized rule improved the full-history and holdout figures and kept the falsification diagnostic positive, so the analyst recommended promotion despite weak pooled OOS significance, unstable hold lengths and losses in the calm regime. After one iteration the strategy reached paper trading, where its evidence is still not statistically proven.

Hypothesis

Original Research Lead hypothesis (not seeded). It moves the factory's most reliable mechanism family, long-side shock absorption measured against peers with a fixed exit clock, into a market the factory has never traded. AUEQ (ASX) has 2 experiments in 4,999, and no ASX gold-miner experiment exists. The trigger is sector-residual rather than raw, as L256 asks. Each day at the ASX close, for every panel miner, the strategy computes its log return minus beta x the equal-weight log return of the OTHER panel miners……Show moreShow less

Original Research Lead hypothesis (not seeded). It moves the factory's most reliable mechanism family, long-side shock absorption measured against peers with a fixed exit clock, into a market the factory has never traded. AUEQ (ASX) has 2 experiments in 4,999, and no ASX gold-miner experiment exists. The trigger is sector-residual rather than raw, as L256 asks. Each day at the ASX close, for every panel miner, the strategy computes its log return minus beta x the equal-weight log return of the OTHER panel miners listed that day. Beta is a 120-session rolling OLS lagged one session. The residual is divided by its own 60-session standard deviation, also lagged one session. A residual z <= -2.0 together with a negative raw return marks a stock-specific down-shock: the miner fell much more than the gold-mining complex on a day the gold price and the sector did not explain it. Typical causes are a guidance cut, a grade/reconciliation miss, a capital raise or a forced index or fund exit. ASX gold miners have a thin domestic institutional base and many small-cap holders, and Australian brokers publish sell-side reratings with a lag. Liquidity-driven selling overshoots and partly reverses over about a week. The miner is bought at the NEXT ASX session open: next_open_fill is supported on session venues, and a decision made on the daily close fills at the next session's open. It is held for exactly 5 sessions open-to-open. Panel: NST, EVN, RMS, CMM, GMD, PRU and VAU (all with daily history from 2018-01-02), plus NEM (ASX listing from 2023-10), DPM (from 2025-09) and GGP (from 2025-06). Each name enters the peer basket and becomes tradable only once it has 180 sessions of its own history at that date (point-in-time via listed_since()/is_listed()). SURVIVORSHIP DISCLOSURE: the panel is the gold miners in today's ASX top-100 universe file. Miners that collapsed or were absorbed (e.g. St Barbara, Resolute, Westgold, Silver Lake before its merger into VAU) are not in the catalog, so the long arm is biased upward by name selection. The peer-relative trigger and the diagnostic below are the controls for that bias. A pre-registered diagnostic reports the per-trade return in EXCESS of the peer basket's same 5-session open-to-open return. If the raw return is positive but the peer-excess return is <= 0, the 'idiosyncratic rebound' premise is not shown: the result is then just gold-miner beta in a gold bull market. The analyst should read it that way. Pre-study (counts only, used to pre-register sample size, not to accept the idea): fixed k=2.0, 5-session clock, 2018-2026 gives 381 events on 341 distinct dates. The mean raw 5-session open-to-open return was +1.40% and the peer-excess return +0.64%. A close-location absorption filter (close in the upper 40% of the range, L258) cut the sample to 57 events / 54 dates, so it is NOT part of the base rule. It is offered only as a categorical tunable. Costs: AUEQ is a CASH account (long-only, unlevered). The commission is 0.08% of trade value per side, so ~0.16% round trip plus about 0.05-0.10% spread/impact on these liquid ASX200 names, giving ~0.25% all-in. The promotion floor is the round trip + 0.05%. No FX leg and no gold-price leg, so there is no cross-currency or cross-calendar complication. Metrics are in AUD (USD view in fx_report).

Diversity: AUEQ is at 0.0% of the corpus (2 experiments), and no ASX or gold-miner panel has ever been run, so the factory spends a completely unused data estate. The mechanism is the factory's best-surviving family (long-side peer-relative down-shock absorption on a fixed clock), and the trigger is defined against a sector peer basket per L256. Gold itself was ruled out as the residual reference because the XAUUSD.SPOTMETAL daily catalog is sparse after 2018. L236 warned that NR7 did not transfer to US ETFs; this is a different trigger (an idiosyncratic residual, not a compression break) on single stocks in a narrow sector. It carries its own pre-registered falsification test (peer-excess return > 0), so a gold-beta artefact cannot be promoted as the premise. Event count (L237/L259): 381 events / 341 distinct dates inside the common history, far above 30. A 20% drawdown limit (above the 15% equity default) is stated honestly: up to 60% gross in one high-volatility sector (daily std ~2.8% per name).

Implementation

Long-only, unlevered ASX gold-miner event panel (AUEQ CASH, 1-DAY): NST primary plus EVN, RMS, CMM, GMD, PRU, VAU, NEM, DPM and GGP as traded extra legs. At each ASX close, every listed miner gets a peer residual: its log return minus beta times the equal-weight log return of the OTHER mature panel miners. Beta is a 120-session OLS ending at t-1, and the residual is divided by its own 60-session std, also ending at t-1. A name buys when z <= -shock_sigma (2.0) on a negative raw return, with an optional 'upper40'……Show moreShow less

Long-only, unlevered ASX gold-miner event panel (AUEQ CASH, 1-DAY): NST primary plus EVN, RMS, CMM, GMD, PRU, VAU, NEM, DPM and GGP as traded extra legs. At each ASX close, every listed miner gets a peer residual: its log return minus beta times the equal-weight log return of the OTHER mature panel miners. Beta is a 120-session OLS ending at t-1, and the residual is divided by its own 60-session std, also ending at t-1. A name buys when z <= -shock_sigma (2.0) on a negative raw return, with an optional 'upper40' close-location filter that is off by default. The name must have at least 180 sessions since listing (listed_since), hold no position and have no entry in flight, and fewer than 5 panel positions may be open; ties go to the most negative z. The market BUY is decided on the close and fills at the next session open (next_open_fill). Size is 12% of mark-to-market equity at the signal close, in whole shares. Exit is a pure time exit: a market SELL decided at the close of entry session + hold_sessions - 1 (baseline 5 sessions open-to-open), counted from the position's own open time. No stop and no target.

This implements the hypothesis rules as written. Peers count only names that are listed and have at least 180 sessions since their listing at that date, applied identically to historical rows, so the composition is point-in-time. The listing date is the leg's first catalog bar via listed_since(); without a listing calendar (paper/synthetic) the leg's own stored bar count is used instead. The residual for each past session uses the beta known the session before it, so beta, sigma and z carry no look-ahead. At……Show moreShow less

This implements the hypothesis rules as written. Peers count only names that are listed and have at least 180 sessions since their listing at that date, applied identically to historical rows, so the composition is point-in-time. The listing date is the leg's first catalog bar via listed_since(); without a listing calendar (paper/synthetic) the leg's own stored bar count is used instead. The residual for each past session uses the beta known the session before it, so beta, sigma and z carry no look-ahead. At least 3 peers, 60 beta pairs and 40 residual observations are required. A slot is freed only once a position is actually closed: positions whose exit is decided on the same close still count as open, which keeps the 'fewer than max_concurrent open' rule literal and the CASH account funded. Risk route (b) applies: a time exit, each position at most 12% of equity, at most 60% gross, unlevered. Per-position state is anchored to position.ts_opened, so a restart does not change the clock. The panel rows are derived data rebuilt from the bar buffers. The pre-registered peer-excess diagnostic (trade return minus the peer basket's same open-to-open return) is not computed in the strategy; it can be derived from the trades and the panel's daily bars.

Verification Results

Optionally skip the z-test (still append the row) when t_prev is not the previous ASX trading day (sessions.previous_trading_day). This is not blocking.

Panel rows and returns are built only on primary (NST) bars, with t_prev = NST's previous bar. If NST has no bar for a session (halt, missing catalog row), that session is skipped for every name. The next row's r_n then spans two sessions, which inflates that day's residual relative to sigma. Separately, a leg halted for a capital raise (common for ASX miners) gets no return on the halt days and a multi-day return gap on resumption only if its bars are missing. The base alignment barrier decides whether the session is processed at all.

Compute it at backtest review from the trades and the panel's daily bars.

The pre-registered peer-excess diagnostic (trade return minus the peer basket's same open-to-open return) is not produced by the strategy. The developer discloses this in config.rationale. It is an analysis-side diagnostic, not a trading rule, so this is not a mismatch, but the analyst needs it to falsify the premise.

None needed.

min_bars_required() is overridden (beta_lookback + resid_std_lookback + 2 = 182 primary bars). The override is deliberate and harmless: rows skipped before then are rebuilt from the bar buffers by _rebuild() on the first processed bar. NST has history from 2018, so the delay costs nothing.

The panel is survivorship-biased (today's ASX top-100 gold miners), and 2019-2026 was a gold bull market. The pre-registered falsification test is the peer-excess 5-session open-to-open return, which the strategy does not compute itself. The analyst should derive it from the trade ledger and the panel's daily bars before reading a positive raw Sharpe as support for the idiosyncratic-rebound premise. Pre-study edge: +0.64% peer-excess against ~0.25% all-in cost. That is thin once the haircut is applied.

Backtest Review

Sharpe
0.34
Total return
18.60%
Max drawdown
8.76%
Trades
288
Win rate
52.1%
Profit factor
1.19

Numerically viable on the development period (2018-10 to 2025-01): 214 closed long trades, mean net trade return 0.47% of notional against the 0.30% AUEQ floor, profit factor 1.17, Sharpe 0.31, max drawdown 8.7% (pre-registered limit 20%).

The trades match the mechanism: all long, the fixed ~5-session open-to-open clock (e.g. VAU 2019-02-14 to 02-21), about 12% of equity per position, and entries spread over 8 names and 199 distinct entry dates, so they are not clustered.

There are enough trades for the trade-count-aware walk-forward (about 214 trades over about 6.3 years). The plan is small: 3 tunables (shock_sigma, hold_sessions, close_filter), and everything else fixed by the contract.

I ran the pre-registered falsification test from the ledger, because the strategy does not compute it. I took each trade's raw open-to-open return and subtracted the equal-weight return of the other panel miners over the same entry and exit opens. Raw mean +0.91% gross; peer-excess mean +0.21% (median +0.07%). The excess is positive, so the premise is not falsified on the development period.

The peer-excess edge is thin and not significant: +0.21% gross per trade, t of about 0.5 across 214 trades. That is below the roughly 0.25% all-in round trip. Most of the raw return is gold-miner beta. This bears out QA's concern in part, but does not settle it.

The edge decays over time. Annual returns were positive in 2019-2022 and negative in 2023 (-4.5%) and 2024 (-1.2%). Peer-excess by entry year: 2020 +1.5%, 2021 +1.1%, 2022 +0.4%, 2023 -0.5%, 2024 -0.3%. The longest drawdown lasted 948 days.

Peer-excess varies a lot by name: CMM +1.8% and GMD +1.7%, but NST -1.4% and VAU -1.6%. The thin aggregate rests on a few names.

Small deployment: total return 12.1% over about 6.3 years (CAGR 1.8%), calmar 0.21. Each trade deploys about 12% of equity, so the low drawdown reflects that size.

Analysis

No hard or soft gate failed. On the final parameters (shock_sigma 1.53, hold 6) the full-history replay shows 520 trades, Sharpe 0.85, PF 1.43, 1.16% average net trade return against the 0.30% AUEQ floor, 14.2% drawdown within the pre-registered 20%, and 8 of 8 years positive. The best year carries 28.8% of profit.

Holdout of 127 trades over 644 days: Sharpe 1.25, t 1.63 against a hurdle of 2.0. It is consistent with OOS (z +0.84) and is not adverse.

I recomputed the pre-registered peer-excess diagnostic from catalog opens. At the final rule it is +0.56% per event (702 events, date-clustered t 2.1). In the holdout it is +0.49%, so the falsification test did not fire. At the baseline rule it is only +0.18% per trade (t 0.58).

No sensitivity cliffs. Worst loss is 3.2% of equity, the largest position 13% of equity, and the account is an unlevered CASH account.

Pooled walk-forward OOS Sharpe is 0.23 (t 0.52, DSR 0.70) and only 6 of 12 windows were positive. This is not statistically proven.

Most of the raw return is sector beta, and the gross peer-excess is only about 2x the round-trip cost.

Parameters are unstable: walk-forward chose hold_sessions anywhere from 3 to 8. shock_sigma sits at the lower edge of its range.

The strategy loses in the calm regime (Sharpe -0.51), and the baseline rule had a 1,171-day drawdown duration.

LOW CONFIDENCE: NOT STATISTICALLY PROVEN, paper only. Each trade deploys about 12% of equity, with up to 5 open at once. The kill criteria are set in advance. Re-evaluate after 60 paper trades, which needs a mean net return of at least 0.30% and a positive peer-excess. Halt if drawdown passes 15%, or if the first 30 trades show both a non-positive mean and a negative peer-excess. Report peer-excess and calm-regime results at every review. Use the minimum allocation.

Risk Review

Risk control holds on route (b), signal-based exit: a fixed 6-session time exit plus capped sizing. Each position is 12% of mark-to-market equity, and the largest measured was 13.0%, far below the 100% cap. The account is an unlevered CASH account (leverage 1.0) with long-only entries. The worst realised trade lost 3.21% of equity (VAU, Feb 2023: -26.2% on a 12.3% position) and the worst adverse excursion was 4.23% of equity. Against the conservative profile: realized vol is 10.1% (band 5-60%), peak position vol 12.3% (limit 120%) and worst trade loss 3.2% (limit 15%). There is no liquidation risk on a cash account.

Sector concentration: up to 5 positions of 12% each, so 60% gross, can be open at once, all in Australian gold miners. These names are highly correlated with each other and with the gold price, and down-shocks cluster on sector-wide days. A gold sell-off while the book is full would hit every position together. The development drawdown of 14.2% (rate shock 2022; June 2022 was -7.96% in one month) shows this, though it stays within the pre-registered 20%.

Single-name gap risk: there is no stop, and a guidance cut or capital raise can gap a miner by 25% or more (the worst trade was -26% of notional). At 12% sizing that costs about 3% of equity per event. That is acceptable under route (b), but position_pct must not be raised without adding a stop.

The evidence is not statistically proven. Pooled walk-forward out-of-sample Sharpe is 0.23 (t 0.52 against a hurdle of 2.0), the optimization outcome is 'not enough out-of-sample significance', and the holdout is inconclusive. Only 6 of 12 walk-forward windows were positive, and the last development window (Aug 2024 - Jan 2025) was negative on both the final and the walk-forward parameters. Annual returns decline steadily (16.2% in 2019 down to 2.4% in 2024).

Parameters are unstable: walk-forward chose hold_sessions anywhere from 3 to 8 sessions (rated unstable), and shock_sigma 1.53 sits at the lower edge of its 1.5-2.75 range. The deployed rule therefore fires on milder shocks than the 2-sigma premise, which raises turnover. Commissions were A$13.9k over the development period.

Survivorship bias is disclosed: the panel is today's ASX top-100 gold miners, so the long-only arm is biased upward. The peer-excess diagnostic is the control. The positive raw returns partly reflect gold-miner beta during a gold bull market.

Correlation with the live book: there is no AUEQ or gold-miner member, so asset correlation with the book is low. The mechanism (idiosyncratic down-shock rebound) duplicates several crypto paper members (HlIdioDownShockReboundBtcHedged, BybitTwoDayIdioDownShockReboundBtcHedged, SpotLedIdioAltSelloffReboundBtcHedged), but on uncorrelated underlyings. The live book shows no members in breach and no open items. Many members still report replay verdicts of 'diverged' or 'no_data' and are only 'collecting', so the book's fidelity evidence is still immature.

Market impact: orders of about A$12k at A$100k equity in ASX200 gold miners (NST, EVN, NEM, etc.) are a negligible share of daily volume. Smaller names (VAU, GMD, PRU) need watching if capital grows.

Paper only, under the low-confidence label 'not statistically proven'. This is not real-money evidence.

Keep position_pct at 0.12 or below and max_concurrent at 5 or below (60% gross in a single sector) while there is no stop-loss. Any increase requires route (a): a stop risking at most 2% of equity.

Paper trading on AUEQ requires the AUEQ venue to be enabled in SF_PAPER_INTL_EQ (delayed Yahoo quotes). Confirm the next-open fills and the session-clock exits match the backtest before counting paper results.

Circuit breakers apply: strategy 5% loss per hour, portfolio 3% per 5 minutes, plus the factory level.

Outcome Summary

Most of the raw return was gold-miner sector beta and the gross peer-excess edge was only about 2x the round-trip cost, so paper results should be judged on peer-excess returns, not raw P&L.

Backtest review sent it to optimization, and after optimization the analyst recommended promotion because no hard or soft gate failed and the pre-registered peer-excess diagnostic stayed positive (+0.56% per event, t 2.1; +0.49% in the holdout). It is now in paper trading, and the evidence is still not statistically proven: only 6 of 12 walk-forward windows were positive.

Buy an ASX gold miner at the next session open after a >=2-sigma daily drop relative to its gold-miner peer basket (a stock-specific down-shock), then hold it for a fixed 5 sessions. The strategy was long-only and unlevered and traded a 10-name point-in-time panel on AUEQ daily bars.

The baseline full-history backtest returned 18.6% in AUD (15.1% in USD) over 288 trades, with Sharpe 0.34, profit factor 1.19, 0.54% average net trade return and an 8.8% max drawdown; its signal diagnostic called the forecast noise (IC 0.018, t 0.4). With the optimized parameters (shock_sigma 1.53, hold 6), the full-history replay showed 520 trades, Sharpe 0.85, PF 1.43 and 1.16% average net trade return; the holdout showed 127 trades, Sharpe 1.25 and t 1.63, but pooled walk-forward OOS Sharpe was only 0.23 (t 0.52, DSR 0.70).

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