Sepa Strategy
Alex YangCommunityCreated by Alex Yang
- Skill
- Role or persona
- Business and productivity
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The SEPA (Specific Entry Point Analysis) strategy is a systematic framework for identifying high-growth stocks in a Stage 2 uptrend. It combines technical analysis, such as the 8-condition trend template and volatility contraction patterns (VCP), with fundamental checks and strict risk management. This skill guides users through a structured evaluation process to determine if a stock meets the criteria for a high-probability trade, emphasizing asymmetric risk/reward ratios and disciplined position sizing.
What it does
- Identifies the current market stage of a stock to ensure it is in a Stage 2 uptrend.
- Validates stocks against the 8-condition trend template.
- Evaluates fundamental health through EPS growth, revenue trends, and margin stability.
- Recognizes chart patterns like VCP, cup-with-handle, and flags.
- Calculates precise entry points, stop-loss levels, and position sizes based on risk tolerance.
- Assesses the broader market environment to determine appropriate risk exposure.
When to use it
- When evaluating a potential growth or momentum stock for a swing trade.
- When you need to determine if a stock setup meets the SEPA criteria.
- When you want to calculate position sizing based on a specific risk percentage.
- When you need to analyze a chart for patterns like VCP or breakout pivots.
- When you are unsure if a stock is in a buyable stage or a topping phase.
Advantages
- Provides a disciplined, rule-based approach to stock selection.
- Focuses on asymmetric risk/reward to protect capital.
- Helps avoid 'fake' growth stocks by checking fundamental quality.
- Standardizes the process of identifying true breakout points.
- Encourages holding cash during unfavorable market environments.
Usage examples
- “Is NVDA a good buy right now based on SEPA?”
- The agent will perform a full analysis, checking the current stage, trend template, fundamentals, and chart pattern, then provide a verdict and position sizing plan.
- “Analyze this chart for a VCP pattern.”
- The agent will examine the price history for volatility contraction, volume dry-up, and pivot points to confirm if a valid VCP pattern is forming.
- “How many shares should I buy of XYZ if my account is $50k and I risk 1%?”
- The agent will calculate the position size based on the entry price and stop-loss level, ensuring the risk remains within the specified 1% limit.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/himself65/sepa-strategy/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip sepa-strategy.zip -d .agents/skills
Documentation by Alex Yang
SEPA Strategy Analysis
Analyze stocks using Mark Minervini's SEPA (Specific Entry Point Analysis) framework — a complete system for identifying high-probability growth stock entries with strict risk management.
Core philosophy: Buy the right stock, in the right stage, at a precise entry point, with strict risk controls. Win rate is ~50-55% — profitability comes from asymmetric risk/reward (small losses, large gains), not from predicting direction.
This skill is for educational/analytical purposes only. It does not constitute investment advice. Never execute trades based solely on this analysis.
Step 1: Gather Stock Data
Collect the following data for the stock. Use yfinance or any available market data tool.
| Data needed | Purpose |
|---|---|
| Current price | Trend template check |
| 50-day, 150-day, 200-day moving averages | MA alignment verification |
| 52-week high and low | Price position check |
| 200MA value from 1 month ago and 4-5 months ago | MA200 slope direction |
| 20-day average volume + today's volume | Volume ratio analysis |
| Recent quarterly EPS (last 3-4 quarters) | EPS growth & acceleration |
| Annual EPS (last 3 years) | Long-term growth trend |
| Recent quarterly revenue (last 3-4 quarters) | Revenue growth check |
| Gross margin and net margin trend | Margin health |
| Institutional ownership changes (if available) | Smart money signal |
| RS rating or 12-month relative performance vs S&P 500 | Relative strength |
| Price history for pattern recognition | VCP / chart pattern analysis |
Compute the moving averages, 200MA slope, 52-week range, volume ratio, and relative performance from daily price history in code rather than estimating them — two years of history covers the 200-day MA and its 5-month slope.
If certain data is unavailable, note it and proceed with what you have. Missing RS rating is a significant gap — flag it.
Step 2: Stage Analysis — Identify the Current Stage
Every stock cycles through four stages. Read references/stage-analysis.md for full details.
Determine which stage the stock is in:
| Stage | Characteristics | Action |
|---|---|---|
| Stage 1 — Basing | Price near 200MA, MA flat/declining, MAs tangled, low volume | Do nothing, wait |
| Stage 2 — Advancing | Making higher highs/lows, bullish MA alignment, volume on up days | Only stage to buy |
| Stage 3 — Topping | Wide swings at highs, frequent false breakouts, heavy volume without progress | Reduce, no new positions |
| Stage 4 — Declining | Below all MAs, bearish alignment, bounces are selling opportunities | Full cash, stay away |
If the stock is NOT in Stage 2, stop here and tell the user. No further analysis needed.
Within Stage 2, count the base number (how many consolidation-then-breakout cycles have occurred):
Base 1-2: Safest, most upside potential — full position
Base 3-4: Still valid but reduce position size
Base 5-6: Late stage — half position at most
Base 7+: Avoid — likely transitioning to Stage 3
Step 3: Trend Template — 8 Mandatory Conditions
All 8 conditions must be met simultaneously. If any fails, the stock does not qualify. Read references/trend-template.md for detailed explanations.
Present results as a checklist:
| # | Condition | Status | Value |
|---|---|---|---|
| 1 | Price > 150MA and Price > 200MA | Pass/Fail | [actual values] |
| 2 | 150MA > 200MA | Pass/Fail | [actual values] |
| 3 | 200MA trending up for ≥1 month (ideally 4-5 months) | Pass/Fail | [slope data] |
| 4 | 50MA > 150MA and 50MA > 200MA | Pass/Fail | [actual values] |
| 5 | Price > 50MA | Pass/Fail | [actual values] |
| 6 | Price ≥ 30% above 52-week low | Pass/Fail | [% above low] |
| 7 | Price within 25% of 52-week high | Pass/Fail | [% from high] |
| 8 | Relative Strength > 70th percentile (prefer 85-90+) | Pass/Fail/Unknown | [RS if available] |
Memory aid: Conditions 1-5 = "MA staircase" (Price > 50MA > 150MA > 200MA, 200MA rising). Conditions 6-7 = "Price position" (far from low, near high). Condition 8 = "Relative strength" (market leader).
Step 4: Fundamental Check
Strong fundamentals separate real leaders from momentum-only stocks. Read references/fundamentals.md for thresholds and rating criteria.
Check these in order of importance:
Quarterly EPS growth ≥ 20% (prefer 25-50%+). Below 20% = disqualify.
EPS acceleration: Current quarter growth > prior quarter growth. Deceleration (even with positive growth) is a warning.
Annual EPS growth ≥ 25% for each of the past 3 years.
Revenue growth ≥ 15% annually, ≥ 20-25% quarterly preferred. If EPS grows but revenue doesn't, the growth is likely from cost-cutting (unsustainable).
Margin trend: Gross and net margins stable or expanding = healthy. Contracting margins even with EPS growth = red flag.
Institutional ownership increasing: Smart money accumulating = fuel for Stage 2 move.
Catalyst: New product, FDA approval, major contract, market expansion, etc. Stocks with catalysts can run 50-100%+; without, typically 15-25%.
Rate fundamentals: A (EPS >30%, positive, revenue growing) / B (15-30%) / C (0-15%) / D (negative — skip).
Step 5: Pattern Recognition
Identify which consolidation pattern is forming (if any). Read references/patterns.md for detailed identification rules for each pattern.
VCP (Volatility Contraction Pattern) — The Core Pattern
The signature SEPA pattern. Look for these 7 characteristics:
Stock must be in Stage 2 uptrend (prerequisite)
Pullback depths decrease in sequence (e.g., 20% → 12% → 6% → 3%). Minimum 3 contractions, 4-5 ideal.
Volume shrinks with each contraction. Final contraction shows "Volume Dry-Up" (VDU) — multi-week low volume.
Higher lows — each pullback bottom is higher than the previous one.
Clear pivot point — the consolidation range high = resistance level to break.
RS > 70 (preferably 85-90+)
Market in bull or neutral environment
Other Valid Patterns
| Pattern | Depth | Duration | Key Feature |
|---|---|---|---|
| Cup with Handle | Cup 12-35%, handle ≤12% | 7-65 weeks | U-shaped base + small handle |
| Flat Base | ≤ 15% | 5-10 weeks | Tight range near prior highs |
| Bull Flag | ≤ 50% of flagpole | 1-5 weeks | Sharp advance + tight drift down |
| High Tight Flag | ≤ 25% after 100%+ advance | 1-4 weeks | Rarest but most powerful |
All patterns share the same entry rule: breakout above the pivot point with volume ≥ 1.5x the 20-day average.
Step 6: Entry Point Analysis
Read references/entry-rules.md for detailed entry mechanics, true vs false breakout identification, and the pocket pivot alternative.
Primary Entry: Pivot Point Breakout
Pivot point = the highest price in the consolidation range. This is the supply/demand inflection point.
Buy zone = pivot price to +5% above pivot. This is the only valid entry window.
Beyond +5%: Do NOT chase. Wait for the next setup.
Breakout volume: Must be ≥ 1.5x the 20-day average volume (≥ 2x is strong confirmation).
Earnings proximity: Avoid entering within 2 weeks of an earnings report.
Breakout Quality Check
| Signal | True Breakout | False Breakout |
|---|---|---|
| Volume | ≥ 1.5x average, big spike | Below average, weak |
| Close | Near the day's high | Falls back below pivot |
| Follow-through | Continues higher next day | Drops back into range |
| Context | VDU preceded breakout | No volume dry-up before |
Risk/Reward Validation
Before entering, verify:
Stop loss distance: Entry price to stop ≤ 7-8%
Reward/risk ratio: Target profit / stop distance ≥ 2:1 (prefer 3:1)
If ratio < 2:1, the entry is too risky — skip it.
Step 7: Market Environment Check
Read references/market-environment.md for detailed criteria.
The market environment is the master switch for position sizing — it sets the risk per trade used in Step 8:
| Environment | Criteria | Risk Per Trade | Max Positions |
|---|---|---|---|
| Bull | S&P 500/Nasdaq above 200MA, breadth expanding, new highs > new lows | 1-2% | 6-8 |
| Choppy | Sideways indices, frequent failed breakouts | 0.5-1% | 2-3 |
| Bear | Indices below 200MA, >50% of stocks below 200MA | 0% (no new positions) | 0 (all cash) |
Even the best setups fail in bear markets. Holding cash during bear markets IS a winning strategy — preserving capital for the next bull run.
Step 8: Position Sizing & Stop Loss Plan
Read references/position-sizing.md for the full formula, examples, stop loss evolution, and pyramiding rules.
Position Size Formula
Shares = (Account Value × Risk Per Trade %) ÷ (Entry Price − Stop Price)Example: $100,000 account, 1% risk, buy at $50, stop at $46.50:
Max loss = $100,000 × 1% = $1,000
Stop distance = $50 − $46.50 = $3.50
Shares = $1,000 ÷ $3.50 = 285 shares ($14,250 = 14.25% of account)
Stop Loss Evolution (3 phases)
| Phase | Trigger | Action |
|---|---|---|
| Phase 1: Initial | At entry | Hard stop at entry price −7-8%. Non-negotiable. |
| Phase 2: Breakeven | Stock reaches +8% | Sell half, move stop to entry price (breakeven). Trade can no longer lose money. |
| Phase 3: Trailing | Stock reaches +15% | Sell another 25%, trail remaining stop along 20MA. Close below 20MA = exit all. |
Iron rules: Stop losses only move UP, never down. Never average down on a losing position. After 3-4 consecutive losses, reduce risk per trade to 0.5%.
Pyramiding (Adding to Winners)
Only add to winning positions, with decreasing size: 50% initial → 30% at +8% → 20% at next base breakout. Never add to losers.
Step 9: Respond to the User
Present a structured analysis report with these sections:
Report Structure
Stock & Stage: Ticker, current price, identified stage, base count if Stage 2
Trend Template Scorecard: 8-condition checklist with pass/fail and actual values
Fundamental Grade: A/B/C/D with EPS growth, acceleration status, revenue, margins
Pattern Identified: Which pattern (VCP, cup-handle, flat base, flag, HTF, or none), with key measurements (contraction depths, volume behavior)
Entry Assessment:
If a valid pattern exists: pivot price, buy zone, breakout volume requirement
If not yet formed: what to watch for
If already extended: "This has moved beyond the buy zone — wait for the next consolidation"
Market Environment: Current assessment and the risk per trade it implies
Position Sizing: Using the formula, show exact shares, stop price, first target, second target, and reward/risk ratio. Ask the user for their account size and risk tolerance if not provided.
Overall Verdict: One of:
Strong Buy Setup — all criteria met, actionable now
Watch List — promising but pattern not yet complete or one condition marginal
Pass — fails trend template, wrong stage, or poor fundamentals
Always end with the disclaimer that this is educational analysis, not investment advice.
Reference Files
references/stage-analysis.md— Four-stage theory, transition signals, base countingreferences/trend-template.md— Detailed 8-condition explanations and memory aidsreferences/fundamentals.md— EPS, revenue, margins, institutional holdings, catalystsreferences/patterns.md— VCP 7 rules, cup-with-handle, flat base, flag, high tight flag, quality vs fake signalsreferences/entry-rules.md— Pivot point mechanics, buy zone, pocket pivot, true vs false breakout identificationreferences/position-sizing.md— Formula, stop loss 3-phase evolution, pyramiding, loss handlingreferences/market-environment.md— Bull/choppy/bear criteria and position adjustment rules
Files
- ATTRIBUTION.mdAdded by AutoGineer887 B
- LICENSELicence file added by AutoGineer1.0 KiB
- README.md2.5 KiB
- SKILL.md12.6 KiB
- references/entry-rules.md3.7 KiB
- references/fundamentals.md3.6 KiB
- references/market-environment.md3.4 KiB
- references/patterns.md5.3 KiB
- references/position-sizing.md6.5 KiB
- references/stage-analysis.md2.7 KiB
- references/trend-template.md3.2 KiB
references/position-sizing.md
Position Sizing, Stop Loss & Pyramiding
This is the most critical part of the entire SEPA system. Minervini: "Not losing big is the only prerequisite for winning big." You cannot control how much a stock goes up, but you can fully control how much you lose.
Key insight: Minervini discovered that if he had tightened his stop from 15% to 10% early in his career, a losing account would have been profitable (+72%). This discovery made the 7-8% stop loss a sacred, inviolable rule.
Position Size Formula
The logic: first determine the maximum dollar amount you're willing to lose, then work backward to determine how many shares to buy. Don't decide position size by looking at the stock — decide it by fixing your risk first.
Shares = (Account Value × Risk Per Trade %) ÷ (Entry Price − Stop Price)Complete Calculation Example ($100,000 account, 1% risk per trade)
Maximum loss amount = $100,000 × 1% = $1,000 (the most this trade can lose)
Entry price: $50.00. Stop at −7% = $46.50. Stop distance = $50 − $46.50 = $3.50/share
Shares = $1,000 ÷ $3.50 = 285 shares
Total position = 285 × $50 = $14,250 (14.25% of account — reasonable)
Stop price: $46.50 (exit immediately if touched)
Target 1: $50 × 1.08 = $54.00 (+8%, sell half)
Target 2: $50 × 1.15 = $57.50 (+15%, sell another 25%)
Reward/Risk (to target 2): ($57.50 − $50) / ($50 − $46.50) = 7.5 / 3.5 ≈ 2.14:1 (meets minimum)
Stop Loss Three-Phase Evolution
Phase 1: Initial Hard Stop (At Entry)
Set stop loss order immediately upon entry: entry price minus 7-8%
Non-negotiable. No "let's see how it goes." Entry = stop is set.
If triggered, exit immediately. Don't ask why, don't hesitate.
The stop being hit doesn't mean you failed — it means this trade's premise didn't hold. That's normal probability.
Phase 2: Move to Breakeven (At +8% Profit)
Sell half the position to lock in profit
Move stop loss from −7% up to the entry price (breakeven)
After this point, this trade cannot lose money — capital is safe
The remaining half is now a "free trade" — playing with house money
Phase 3: Trailing Stop (At +15% Profit)
Sell another 25% of the original position
Trail the remaining 25% using the 20-day moving average
Update stop weekly to 1-2% below the current 20MA
When price closes below 20MA, exit all remaining shares — let profits run as long as the trend holds
Special Case: Rapid Advance
If the stock surges 20-25% in a short period (obvious acceleration), tighten the stop to below the 10MA instead of the 20MA. This prevents large profit give-back in overextended moves.
Stop Level Summary
| Scenario | Stop Placement |
|---|---|
| At entry | Entry price − 7-8% |
| Stock at +8% (after selling half) | Entry price (breakeven) |
| Stock at +15% (after selling 25% more) | 1-2% below 20MA, updated weekly |
| Rapid surge (+20-25% quickly) | Tighten to below 10MA |
| Close below 50MA | Serious warning — consider exiting everything |
Iron Rules
Stop losses only move UP, never down. Moving a stop down "to give it more room" is how small losses become catastrophic ones.
Never average down on a losing position. Adding to a loser is the fastest path to account destruction.
After 3-4 consecutive losses, reduce risk per trade from 1% to 0.5% and cut the number of positions. Determine whether the issue is your execution or the market environment before resuming normal size.
Average loss should be 4-5%, hard cap at 10%. VCP's precise entry often allows exits at 3-5% loss. The smaller the average loss, the fewer winning trades needed to recover.
Pyramiding (Adding to Winners)
Pyramiding = adding to a winning position with decreasing size. This is the opposite of averaging down.
How to Pyramid
| Tranche | Timing | Size | Price (Example) | Shares | Amount |
|---|---|---|---|---|---|
| 1st (Main) | VCP breakout at pivot | 50% of target | $50.00 | 100 | $5,000 |
| 2nd (Add) | +8%, pullback to 20MA | 30% of target | $54.00 | 60 | $3,240 |
| 3rd (Add) | Next base breakout | 20% of target | $58.00 | 35 | $2,030 |
| Total | — | 100% | Avg ≈ $53.20 | 195 | $10,270 |
Why Pyramiding Works
The largest position (100 shares) is at the lowest cost ($50) — minimum risk, maximum cushion
Even if tranches 2 and 3 both hit stops (combined loss ~$263), tranche 1's locked profit from the +8% partial sell ($400) covers the loss
You only add more money when the market proves you right — each addition has a new breakout signal confirming the trend
Why Averaging Down Fails
Each addition is at a lower price = the market is proving you wrong
"$60 → $40, that's down a lot, must be near the bottom" — then it goes to $20, then $5
"My average cost went from $60 to $52" is an illusion — your real total loss is expanding exponentially
You're doubling down on a failed thesis
This is the single fastest way to destroy a trading account
Handling Losing Trades
SEPA wins only ~50-55% of the time. Nearly half of all trades lose money. This is expected and by design.
Loss Review Framework (Three Questions)
Q1: Was it an execution problem or a strategy problem?
Execution problem (chased above +5%, didn't set stop, entered with weak volume, entered before earnings) → fix the habit, the strategy isn't wrong
Strategy problem (misidentified the pattern, entered without trend template confirmation) → study more historical examples to improve recognition
Q2: Was it a "good loss" or a "bad loss"?
Good loss: Followed all rules, market just didn't cooperate, exited at stop — this is a normal cost of doing business, change nothing
Bad loss: Broke rules (no stop, averaged down, chased) — this is what must be eliminated
Q3: Was it the individual stock or the overall market?
If recent breakouts are frequently failing, check the market first: indices below MAs? Breadth deteriorating?
If the market environment has changed, pause trading and wait for improvement rather than forcing more trades
The Casino Analogy
A casino doesn't win every hand — it wins through mathematical edge (favorable odds) over thousands of hands. SEPA works the same way:
Win trades average +15-30%
Lose trades average −5-7%
Over 10 trades at 50% win rate: 5 × 15% − 5 × 6% = +45% net
A retail trader with 55% win rate but no discipline: 5.5 × 5% − 4.5 × 12% = −26.5% net
The win rate matters less than the win/loss size ratio.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Alex Yang
- Publisher
- Alex Yang (Community)
- Source
- himself65/finance-skills · plugins/market-analysis/skills/sepa-strategy · commit a085078
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Alex Yang or Alex Yang.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download sepa-strategy.zip