$npx -y skills add SKE-Labs/agent-trading-skills --skill momentum-tradingDefine and test short-horizon directional momentum setups. Use when measuring normalized return, regime, participation, breakout/pullback entry, exhaustion exit, and transaction costs.
| 1 | # Momentum Trading |
| 2 | |
| 3 | Enter confirmed directional moves and ride them until momentum decays. |
| 4 | |
| 5 | ## Setup Conditions |
| 6 | |
| 7 | ### Regime Features |
| 8 | |
| 9 | ``` |
| 10 | get_indicators(indicator_code="dmi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 11 | ``` |
| 12 | |
| 13 | Use ADX level and slope, normalized return, and relative volume as candidate features. Calibrate thresholds per instrument and timeframe, preferably against rolling percentiles; an ADX number is neither a probability nor a position-size instruction. |
| 14 | |
| 15 | ### Exit Features |
| 16 | |
| 17 | - Volume declining while price advancing |
| 18 | - MACD histogram shrinking |
| 19 | - RSI divergence (price HH, RSI LH) |
| 20 | - Candles smaller with long wicks |
| 21 | - ADX turning down from its recent distribution |
| 22 | |
| 23 | These features are correlated transformations of the same price/volume series. Define one exit rule and test it rather than counting two features as independent confirmation. |
| 24 | |
| 25 | ## Workflow |
| 26 | |
| 27 | ### 1. Check Regime |
| 28 | |
| 29 | ``` |
| 30 | get_indicators(indicator_code="dmi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 31 | ``` |
| 32 | |
| 33 | Compare current ADX and normalized return with thresholds frozen from training data. If the regime gate fails, report `no trade` rather than substituting another strategy automatically. |
| 34 | |
| 35 | ### 2. Get Price Data and Confirm Momentum |
| 36 | |
| 37 | ``` |
| 38 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<date>) |
| 39 | get_indicators(indicator_code="rsi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 40 | get_indicators(indicator_code="macd", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 41 | get_indicators(indicator_code="mfi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 42 | ``` |
| 43 | |
| 44 | Record multi-bar RSI and MACD progressions, time-of-day relative volume, and objectively detected swing structure. Avoid requiring every correlated indicator unless that conjunction improves held-out net expectancy. |
| 45 | |
| 46 | ### 3. Entry |
| 47 | |
| 48 | **Breakout**: enter on a closed-bar break beyond a predeclared buffer. **Pullback**: define retracement depth as a tested interval rather than a fixed Fibonacci band. Invalidate beyond the structural level plus modeled slippage and size from the stop distance. |
| 49 | |
| 50 | ### 4. Report to Orchestrator |
| 51 | |
| 52 | ADX value and trend direction, RSI/MACD/volume readings, entry type, exhaustion signals, stop and target levels. |
| 53 | |
| 54 | ## Evidence and Validation |
| 55 | |
| 56 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 57 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 58 | - 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. |
| 59 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 60 | - Research basis: [Moskowitz & Grinblatt](https://onlinelibrary.wiley.com/doi/pdf/10.1111/0022-1082.00146) documented industry momentum, but implementation still requires regime, liquidity, cost, and crash-risk controls. |
| 61 | |
| 62 | ## Key Rules |
| 63 | |
| 64 | - Do not map ADX directly to trade size or use a universal cutoff. |
| 65 | - Normalize extension and participation to the instrument, session, and timeframe. |
| 66 | - Predeclare whether entry is breakout or pullback; do not select retrospectively. |
| 67 | - Define the exit from observable price or feature conditions and test it after costs. |
| 68 | - Cap risk from the portfolio mandate, not from a momentum label. |
| 69 | |
| 70 | ## Related Skills |
| 71 | |
| 72 | - **breakout-trading** -- breakout momentum is a primary entry type |
| 73 | - **pullback-trading** -- retracement entries use pullback principles for timing |