agentsclimarketplace

Trading plan builder

Skill mahmoud20138/Tradecraft/plugins/tradecraft/skills/trading-plan-builder

102 Claude Code skills across 7 categories -- trading strategies, Azure, VSCode extensions, AI prompts, and custom automation skills

Install
npx -y skills add mahmoud20138/Tradecraft --skill trading-plan-builder

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Structured pre-market routine, watchlist generation, daily preparation checklist, and trading plan templates. Use this skill for "trading plan", "pre-market routine", "daily prep", "watchlist", "what should I focus on today", "morning routine", "prepare for trading", "daily checklist", "plan my trading day", "what pairs to watch", or any trading preparation. Works with all analysis skills to auto-generate the daily plan.

SKILL.md

4.8 KB, as published. Nobody here has run it

Trading Plan Builder

from datetime import datetime, timedelta
from dataclasses import dataclass, field

@dataclass
class DailyTradingPlan:
    date: str
    session_focus: str
    watchlist: list[dict] = field(default_factory=list)
    macro_context: str = ""
    key_events: list[str] = field(default_factory=list)
    bias: dict = field(default_factory=dict)
    risk_budget: dict = field(default_factory=dict)
    rules_today: list[str] = field(default_factory=list)
    checklist: dict = field(default_factory=dict)

class TradingPlanBuilder:

    @staticmethod
    def pre_market_checklist() -> dict:
        return {
            "1_macro_scan": {
                "task": "Check DXY, VIX, yield curves, equity futures",
                "tools": ["macro-economic-dashboard"],
                "time": "5 min",
            },
            "2_news_check": {
                "task": "Review upcoming economic events and overnight news",
                "tools": ["market-news-impact", "risk-calendar-trade-filter"],
                "time": "5 min",
            },
            "3_htf_analysis": {
                "task": "D1 and H4 analysis on watchlist pairs — set daily bias",
                "tools": ["mt5-chart-browser", "mtf-confluence-scorer"],
                "time": "10 min",
            },
            "4_key_levels": {
                "task": "Mark S/R, order blocks, FVGs on H1 charts",
                "tools": ["trendline-sr-vision", "liquidity-order-flow-mapper"],
                "time": "10 min",
            },
            "5_risk_budget": {
                "task": "Set max risk for the day, check portfolio heat",
                "tools": ["risk-and-portfolio"],
                "time": "2 min",
            },
            "6_session_check": {
                "task": "Verify current session quality and killzones",
                "tools": ["session-profiler", "risk-calendar-trade-filter"],
                "time": "2 min",
            },
            "total_time": "~35 minutes",
        }

    @staticmethod
    def generate_watchlist(pairs: list[str], confluence_scores: dict) -> list[dict]:
        """Rank pairs by confluence and generate focused watchlist."""
        watchlist = []
        for pair in pairs:
            score = confluence_scores.get(pair, {})
            watchlist.append({
                "pair": pair,
                "mtf_score": score.get("overall_score", 0),
                "bias": score.get("direction", "NEUTRAL"),
                "confluence_pct": score.get("confluence_pct", 0),
                "priority": "A" if score.get("confluence_pct", 0) >= 75 else
                           "B" if score.get("confluence_pct", 0) >= 50 else "C",
            })
        return sorted(watchlist, key=lambda w: w.get("confluence_pct", 0), reverse=True)[:6]

    @staticmethod
    def end_of_day_review() -> dict:
        return {
            "1_log_trades": "Journal all trades with setup type, entry/exit reasoning, and R-multiple",
            "2_review_execution": "Did you follow the plan? Rate 1-10.",
            "3_what_worked": "List setups that worked and why",
            "4_what_failed": "List setups that failed and why",
            "5_lessons": "One key lesson for tomorrow",
            "6_emotional_state": "Rate emotional discipline 1-10",
            "7_plan_adjustments": "Any changes for tomorrow's plan?",
        }

    @staticmethod
    def build_plan(now: datetime = None) -> DailyTradingPlan:
        now = now or datetime.utcnow()
        session = "london" if 7 <= now.hour < 13 else "new_york" if 13 <= now.hour < 22 else "tokyo"
        return DailyTradingPlan(
            date=now.strftime("%Y-%m-%d"),
            session_focus=session,
            risk_budget={"max_risk_today": "4%", "max_trades": 3, "max_loss_per_trade": "2%"},
            rules_today=[
                "Follow the plan. Do not deviate.",
                "Only A and B grade setups.",
                "No revenge trades after a loss.",
                "Stop after 3 trades (win or lose).",
                "No trading in last hour before high-impact news."],
            checklist=TradingPlanBuilder.pre_market_checklist(),
        )

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.