$npx -y skills add SKE-Labs/agent-trading-skills --skill triangle-patternsTrade ascending, descending, and symmetrical triangle patterns. Use when anticipating breakouts from consolidation, measuring potential move targets, or timing entries on compression breakouts.
| 1 | # Triangle Pattern Trading |
| 2 | |
| 3 | Triangles describe converging swing boundaries. Treat breakout direction as unknown until price closes beyond a boundary. |
| 4 | |
| 5 | ## Pattern Structure |
| 6 | |
| 7 | ### Ascending Triangle (Bullish Bias) |
| 8 | - Flat horizontal resistance + rising lows — bullish bias is a hypothesis |
| 9 | |
| 10 | ### Descending Triangle (Bearish Bias) |
| 11 | - Flat horizontal support + lower highs — bearish bias is a hypothesis |
| 12 | |
| 13 | ### Symmetrical Triangle (Neutral) |
| 14 | - Lower highs + higher lows, converging — condition results on trend rather than assuming direction |
| 15 | |
| 16 | ## Workflow |
| 17 | |
| 18 | ### 1. Get Swing Point Data |
| 19 | |
| 20 | Identify at least 2 swing highs and 2 swing lows (4+ total touch points): |
| 21 | |
| 22 | ``` |
| 23 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<swing_date>) |
| 24 | ``` |
| 25 | |
| 26 | ### 2. Draw Converging Trendlines (2 parallel calls) |
| 27 | |
| 28 | ``` |
| 29 | # Upper trendline (connecting swing highs) |
| 30 | draw_chart_analysis(action="create", drawing={ |
| 31 | "type": "trend", |
| 32 | "points": [ |
| 33 | {"time": <high1_time>, "price": <high1_price>}, |
| 34 | {"time": <high2_time>, "price": <high2_price>} |
| 35 | ], |
| 36 | "options": {"text": "Triangle R"} |
| 37 | }) |
| 38 | |
| 39 | # Lower trendline (connecting swing lows) |
| 40 | draw_chart_analysis(action="create", drawing={ |
| 41 | "type": "trend", |
| 42 | "points": [ |
| 43 | {"time": <low1_time>, "price": <low1_price>}, |
| 44 | {"time": <low2_time>, "price": <low2_price>} |
| 45 | ], |
| 46 | "options": {"text": "Triangle S"} |
| 47 | }) |
| 48 | ``` |
| 49 | |
| 50 | For ascending: upper line is flat (`resistance` type instead of `trend`). For descending: lower line is flat (`support` type). |
| 51 | |
| 52 | ### 3. Confirm and Enter |
| 53 | |
| 54 | Check volume declining during formation via `get_indicators(indicator_code="mfi", symbol=<symbol>, exchange=<exchange>, interval=<interval>)`. |
| 55 | |
| 56 | **Standard:** Enter on break + candle close outside triangle with volume spike. Stop inside triangle on opposite side. |
| 57 | **Preferred:** Wait for breakout, then retest of broken trendline. Enter on rejection. |
| 58 | **Target:** Triangle height at widest point, projected from breakout. |
| 59 | |
| 60 | | Phase | Expected Volume | |
| 61 | |-------|----------------| |
| 62 | | Formation | Declining | |
| 63 | | Breakout | Spike | |
| 64 | | Continuation | Sustained | |
| 65 | |
| 66 | ## Evidence and Validation |
| 67 | |
| 68 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 69 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 70 | - 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. |
| 71 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 72 | - Research basis: [Lo, Mamaysky & Wang](https://www.nber.org/papers/w7613) supports systematic pattern recognition; direction, breakout buffer, and target rules still require out-of-sample calibration. |
| 73 | |
| 74 | ## Key Rules |
| 75 | - Minimum 4 touch points (2 per trendline) to validate |
| 76 | - NEVER enter on a wick breakout alone — wait for candle close outside |
| 77 | - If using trend direction or apex timing as filters, freeze their definitions and verify their incremental net expectancy |
| 78 | - Report width in ATR units and breakout location as a fraction of time-to-apex; do not infer strength from width alone |
| 79 | |
| 80 | ## Related Skills |
| 81 | - **wedge-patterns** — Similar converging lines, both slope same direction |
| 82 | - **flag-pennant** — Pennants are small symmetrical triangles |