$npx -y skills add SKE-Labs/agent-trading-skills --skill altcoin-rotationBuild and test survivorship-aware crypto rotation rankings. Use when allocating among BTC, ETH, and liquid altcoins with relative strength, breadth, liquidity, stress, turnover, and concentration controls.
| 1 | # Altcoin Rotation Strategy |
| 2 | |
| 3 | Rank a liquid, survivorship-aware crypto universe and rotate only when relative strength and breadth improve without a BTC stress event. |
| 4 | |
| 5 | ## Rotation Model |
| 6 | |
| 7 | | Input | Reproducible measure | Use | |
| 8 | | --- | --- | --- | |
| 9 | | Relative strength | Candidate/BTC and candidate/ETH total return over frozen lookbacks | Rank, do not predict | |
| 10 | | Breadth | Share of eligible alts outperforming BTC | Require broad participation | |
| 11 | | Liquidity | Median dollar volume, spread, depth, listing age | Exclude untradeable winners | |
| 12 | | BTC stress | BTC drawdown, realized volatility, and market breadth | De-risk when the common factor dominates | |
| 13 | | Concentration | Pairwise correlation and BTC beta | Cap duplicated exposure | |
| 14 | |
| 15 | Build the universe from assets that were actually tradable at each historical date. Exclude stablecoins, wrapped duplicates, recent listings without sufficient history, and instruments that fail the account's liquidity floor. Do not use today's top coins in an old backtest. |
| 16 | |
| 17 | ## Workflow |
| 18 | |
| 19 | 1. **Establish the BTC regime** from price history, not headlines: |
| 20 | ``` |
| 21 | get_candles(symbol="BTC/USD", exchange="binance", interval="1d", count=120) |
| 22 | ``` |
| 23 | |
| 24 | 2. **Measure relative strength** on the same timestamps and venue: |
| 25 | ``` |
| 26 | get_candles(symbol="ETH/BTC", exchange="binance", interval="1d", count=120) |
| 27 | get_candles(symbol=<candidate_btc_pair>, exchange=<exchange>, interval="1d", count=120) |
| 28 | ``` |
| 29 | |
| 30 | 3. **Rank and gate** candidates by predeclared return lookbacks, breadth, liquidity, and correlation. Treat BTC dominance as optional context only when sourced from a consistent, documented series. |
| 31 | |
| 32 | 4. **Rebalance on a fixed schedule** with a no-trade buffer so small rank changes do not create fee churn. Compare the rotation with BTC-only, ETH/BTC, and equal-weight eligible-universe benchmarks. |
| 33 | |
| 34 | 5. **Report** universe date, excluded assets, lookbacks, ranks, breadth, BTC stress state, turnover, expected costs, proposed weights, and the condition that returns the portfolio to its defensive allocation. |
| 35 | |
| 36 | ## Evidence and Validation |
| 37 | |
| 38 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 39 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 40 | - Include spread, fees, slippage, borrow or funding, partial fills, and latency. Reject the setup when net expectancy is not positive or depends on one narrow parameter. |
| 41 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 42 | - Research basis: [Liu, Tsyvinski & Wu](https://www.nber.org/papers/w25882) documented size and momentum factors in crypto returns; this supports relative-strength testing, not fixed BTC-dominance cutoffs or static allocations. |
| 43 | |
| 44 | ## Key Rules |
| 45 | |
| 46 | - NEVER backtest with a present-day survivor list or rank on information unavailable at the rebalance timestamp |
| 47 | - NEVER treat BTC dominance thresholds as universal cycle boundaries |
| 48 | - Size from the portfolio risk budget, liquidity, and correlation; do not copy fixed allocation percentages |
| 49 | - Require a defensive exit for BTC stress, liquidity loss, delisting, or correlation convergence |
| 50 | |
| 51 | ## Related Skills |
| 52 | |
| 53 | - **on-chain-analysis** -- on-chain metrics confirm accumulation/distribution phases |
| 54 | - **dca-strategy** -- DCA into BTC/ETH during accumulation phases |