/install finskills-trading-plan-generator
Trading Plan Generator
Transform a stock idea into a complete, structured trading plan with specific entry triggers, position sizing, stop-loss levels, profit targets, timeline, and thesis statement — powered by live data from the Finskills API. Implements professional trading desk methodology for both swing trades (days to weeks) and position trades (weeks to months).
Setup
API Key required — Register at https://finskills.net to get your free key.
Header: X-API-Key: \x3Cyour_api_key>
Get your API key: Register at https://finskills.net — free tier available, Pro plan unlocks real-time quotes, history, and financials.
When to Activate This Skill
Activate when the user:
- Has a stock pick and wants a complete trade plan around it
- Asks "how should I size this position?"
- Says "I think AAPL is going to $200, help me plan this trade"
- Asks for entry, stop-loss, and target for a specific trade
- Wants to calculate position size based on account risk tolerance
- Uses terms like "trade plan", "entry point", "risk/reward", "stop loss", "price target"
Information to Collect from the User
Before fetching data, confirm:
- Symbol: Which stock/ETF?
- Thesis: Why do they want this trade? (Earnings catalyst, technical breakout, macro tailwind, etc.)
- Direction: Long or Short?
- Account Size: Portfolio total value (for position sizing)
- Max Risk per Trade: % of portfolio willing to lose on this trade (default: 1–2%)
- Time Horizon: Swing trade (1–10 days), Position trade (1–3 months), or Investment (6+ months)?
Data Retrieval — Finskills API Calls
1. Current Quote + Market Context
GET https://finskills.net/v1/stocks/quote/{SYMBOL}
Extract: price, dayHigh, dayLow, open, previousClose, volume, avgVolume, marketCap, 52WeekHigh, 52WeekLow, peRatio, beta
2. Historical Price Data (for ATR, support/resistance, trend)
GET https://finskills.net/v1/stocks/history/{SYMBOL}?period=6mo&interval=1d
Extract: last 6 months of daily OHLCV
Compute: ATR (14), key swing highs/lows, 50-day SMA, 20-day SMA, 200-day SMA, RSI
3. Analyst Recommendations + Price Targets
GET https://finskills.net/v1/stocks/recommendations/{SYMBOL}
Extract:
- Consensus recommendation (Strong Buy / Buy / Hold / Underperform / Sell)
- Mean price target
- Highest/lowest price target
- Number of analysts
Analysis Workflow
Step 1 — Live Market Context Assessment
From the quote data, determine:
- Where is price relative to 52-week range? (Near high/low/mid-range)
- Is today's volume above or below average? (Volume confirmation check)
- Beta: How volatile is this stock relative to market?
- P/E: Is valuation extreme (which might cap upside for long trades)?
Step 2 — Key Level Identification (from historical data)
Compute critical levels:
ATR-based volatility:
ATR_14 = EWM(True_Range, span=14)
Daily_Range_Estimate = 1.2 × ATR_14
Support Levels (from 6-month history):
- S1: Most recent swing low (last 20 sessions)
- S2: Prior swing low (last 60 sessions)
- S3: Major structure low (52-week low if within 20% of current price)
Resistance Levels (from 6-month history):
- R1: Most recent swing high or overhead consolidation zone
- R2: Prior swing high
- R3: 52-week high or prior major resistance
Moving Averages (dynamic support/resistance):
- SMA_20, SMA_50, SMA_200 — note if price is above or below each
Step 3 — Entry Strategy
For Long Trades:
- Breakout Entry: Enter above R1 on above-avg volume (aggressive)
- Pullback Entry: Enter at S1 or SMA_20 with bounce confirmation (conservative)
- Range Entry: Enter at lower third of recent range when RSI \x3C 40 (mean reversion)
For Short Trades:
- Breakdown Entry: Enter below S1 on above-avg volume
- Bounce Entry: Enter on rally to resistance (R1/SMA_20) with bearish conditions
Recommend an entry type and exact trigger price based on the user's thesis and time horizon.
Entry Trigger:
Entry = Buy {SYMBOL} at $X only if {volume confirmation condition AND price condition}
or
Entry = Limit order at ${level} (pullback entry)
Step 4 — Position Sizing (Risk-Based)
Fixed Risk Position Sizing (Industry Standard):
Dollar Risk Per Trade = Account_Size × Max_Risk_Pct
e.g., $100,000 × 2% = $2,000 max risk
Distance to Stop = Entry_Price - Stop_Loss_Price (for longs)
Shares to Buy = Dollar_Risk_Per_Trade / Distance_to_Stop
Position Value = Shares × Entry_Price
Position % of Portfolio = Position_Value / Account_Size
Flag if position exceeds 20% of portfolio (concentration risk warning).
Volatility-Adjusted Check:
- If beta > 2.0: Reduce max risk % by 50% (high-beta stocks need smaller positions)
- If beta \x3C 0.5: Position can be slightly larger if fundamentals are strong
Step 5 — Stop-Loss Placement
ATR-Based Stop (preferred):
For Long: Stop_Loss = Entry_Price - (1.5 × ATR_14)
For Short: Stop_Loss = Entry_Price + (1.5 × ATR_14)
Structure-Based Stop (alternative):
- Long: Stop just below S1 (last swing low) with small buffer (~0.5%)
- Short: Stop just above R1 (last swing high) with small buffer
Hard Rule: Never place stop inside a natural support/resistance zone — price will "shake you out" before continuing.
Choose the wider of the two methods for stops (more conservative).
Step 6 — Profit Targets
Target 1 (partial exit — 50% of position):
- Risk/Reward ratio ≥ 2:1 for swing trades
- Target_1 = Entry + (2 × Distance_to_Stop) [for longs]
Target 2 (remaining position — trail or hold):
- Next major resistance level (R2) or analyst mean price target
- Minimum R:R 3:1
Target 3 (maximum case):
- Analyst high price target or key technical level
Time Stop (important):
- If trade has not reached T1 within the defined time horizon, exit regardless of P&L
- Swing trade time stop: 10 trading days
- Position trade time stop: 45 trading days
Step 7 — Trade Thesis Validation
Write a formal 3-part thesis:
- Catalyst: What is the specific reason this trade will work?
- Invalidation: What would tell you the thesis is wrong? (beyond the price stop)
- Monitoring Points: What news, data, or price action to watch during the trade?
Output Format
╔══════════════════════════════════════════════════════════════════╗
║ TRADE PLAN — {DIRECTION} {TICKER} ║
║ Generated: {DATE} | Type: {Swing/Position/Investment} ║
╚══════════════════════════════════════════════════════════════════╝
📌 TRADE THESIS
"I believe {TICKER} will {rise/fall} because {1-sentence catalyst}.
The trade is invalidated if {invalidation condition}."
Tag: {Breakout / Reversal / Catalyst / Macro-Driven / Technical}
📊 MARKET SNAPSHOT — {TICKER}
Price: ${price} Day Range: ${low} – ${high}
52-Week: ${52wkLow} – ${52wkHigh} Position: {Top/Mid/Bottom} third of range
Beta: {X.X} P/E: {X.X}x Avg Volume: {Xm} shares/day
Today's Vol: {Xm} shares ({+/-}% vs. average)
Analyst Consensus: {Strong Buy / Buy / Hold} Target: ${mean} Range: ${low}–${high}
🎯 KEY LEVELS
Resistance 3: ${R3} [{structure / 52wk-high}]
Resistance 2: ${R2} [{structure}]
► Resistance 1:${R1} [{recent swing high}] ← Nearest overhead
─── CURRENT: ${price} ───
► Support 1: ${S1} [{recent swing low}] ← Stop zone
Support 2: ${S2} [{prior swing low}]
Support 3: ${S3} [{major level}]
20-Day SMA: ${SMA20} 50-Day SMA: ${SMA50} 200-Day SMA: ${SMA200}
ATR (14): ${ATR} ({X.X}% of price)
📋 TRADE PARAMETERS
┌─────────────────────────────────────────────────────┐
│ ENTRY TYPE: {Breakout above} / {Pullback to} ${entry_price}
│ Entry Trigger: Price ${entry_trigger} on volume > {X}M shares
│ OR limit order at ${limit_price} │
│ │
│ STOP-LOSS: ${stop_price} ({ATR-based / Structure}) │
│ Distance: ${entry - stop} ({X.X}% below entry) │
│ │
│ TARGET 1: ${t1} ({2.1:1} R:R) ← Exit 50% │
│ TARGET 2: ${t2} ({3.2:1} R:R) ← Exit 35% │
│ TARGET 3: ${t3} ({4.5:1} R:R) ← Trail 15% │
│ │
│ TIME STOP: Exit by {date} if no progress │
└─────────────────────────────────────────────────────┘
💰 POSITION SIZING (Account: ${account_size})
Max Risk: ${risk_amount} ({risk_pct}% of portfolio)
Stop Distance: ${stop_distance}/share ({stop_pct}%)
Shares to Buy: {shares_count} shares
Position Value: ${position_value} ({position_pct}% of portfolio)
Beta-Adjusted Risk: ${adjusted_risk}
⚠️ {Any concentration or volatility warnings}
📅 TRADE MANAGEMENT RULES
On entry day: Confirm volume and price action before committing
At -50% to stop: Evaluate — add context, consider waiting for new catalyst
At Target 1: Sell 50%, move stop to break-even
At Target 2: Sell 35%, trail stop at 2× ATR
At Target 3: Sell remaining 15%
Time Stop: Exit FULL position on {date}, regardless of P&L
📌 MONITORING CHECKLIST
□ {Key upcoming earnings date if applicable}
□ {Key macro data that could impact trade}
□ {Sector ETF behavior as leading indicator}
□ {Price/Volume action to watch for confirmation or invalidation}
Limitations
- Price targets are based on technical structure and analyst consensus — not guaranteed.
- Stop-loss placement does not eliminate the risk of gap-down opens in fast markets.
- ATR-based position sizing assuming normal market conditions; extreme volatility events can bypass stops.
- This plan is for educational purposes; complete research and use your own judgment before trading.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install finskills-trading-plan-generator - 安装完成后,直接呼叫该 Skill 的名称或使用
/finskills-trading-plan-generator触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
trading-plan-generator 是什么?
Generate structured trade plans with entry, stop-loss, and take-profit levels based on technical and fundamental data from the Finskills API. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 81 次。
如何安装 trading-plan-generator?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install finskills-trading-plan-generator」即可一键安装,无需额外配置。
trading-plan-generator 是免费的吗?
是的,trading-plan-generator 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
trading-plan-generator 支持哪些平台?
trading-plan-generator 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 trading-plan-generator?
由 finskills(@finskills)开发并维护,当前版本 v1.0.2。