{
  "schemaVersion": "1.0",
  "item": {
    "slug": "dwlf",
    "name": "A Clawdbot skill that gives your agent native access to DWLF — a market analysis platform for crypto and stocks.",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/andywilliams/dwlf",
    "canonicalUrl": "https://clawhub.ai/andywilliams/dwlf",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/dwlf",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dwlf",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/dwlf-api.sh",
      "references/strategy-builder.md",
      "references/api-endpoints.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/dwlf"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/dwlf",
    "agentPageUrl": "https://openagent3.xyz/skills/dwlf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dwlf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dwlf/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "DWLF — Market Analysis Platform",
        "body": "API base: https://api.dwlf.co.uk/v2"
      },
      {
        "title": "Auth",
        "body": "Use API key auth. Check TOOLS.md for the key. Header:\n\nAuthorization: ApiKey dwlf_sk_...\n\nHelper script: scripts/dwlf-api.sh"
      },
      {
        "title": "Quick Start",
        "body": "# Generic GET request\n./scripts/dwlf-api.sh GET /market-data/BTC-USD\n\n# With query params\n./scripts/dwlf-api.sh GET \"/events?symbol=BTC-USD&limit=10\"\n\n# POST request\n./scripts/dwlf-api.sh POST /visual-backtests '{\"strategyId\":\"...\",\"symbol\":\"BTC-USD\"}'"
      },
      {
        "title": "Annotation Examples",
        "body": "# Create a horizontal line annotation at a key support level\n./scripts/dwlf-api.sh POST /annotations '{\n  \"symbol\": \"BTC-USD\",\n  \"timeframe\": \"1d\",\n  \"type\": \"hline\",\n  \"data\": { \"price\": 95000, \"color\": \"#00ff00\", \"label\": \"Key Support\", \"lineStyle\": \"solid\", \"lineWidth\": 2, \"showPrice\": true },\n  \"origin\": \"ai\"\n}'\n\n# Create a text annotation on chart\n./scripts/dwlf-api.sh POST /annotations '{\n  \"symbol\": \"ETH-USD\",\n  \"timeframe\": \"4h\",\n  \"type\": \"text\",\n  \"data\": { \"text\": \"Breakout zone\", \"price\": 3800, \"time\": \"2025-06-01T00:00:00Z\", \"color\": \"#ffaa00\", \"fontSize\": 14 },\n  \"origin\": \"ai\"\n}'\n\n# Bulk create multiple annotations\n./scripts/dwlf-api.sh POST /annotations/bulk '{\n  \"annotations\": [\n    { \"symbol\": \"BTC-USD\", \"timeframe\": \"1d\", \"type\": \"hline\", \"data\": { \"price\": 100000, \"color\": \"#ff0000\", \"label\": \"Resistance\" }, \"origin\": \"ai\" },\n    { \"symbol\": \"BTC-USD\", \"timeframe\": \"1d\", \"type\": \"hline\", \"data\": { \"price\": 92000, \"color\": \"#00ff00\", \"label\": \"Support\" }, \"origin\": \"ai\" }\n  ]\n}'\n\n# List annotations for a symbol\n./scripts/dwlf-api.sh GET \"/annotations?symbol=BTC-USD&timeframe=1d\"\n\n# Update an annotation (merges data — only changes specified fields)\n./scripts/dwlf-api.sh PUT /annotations/abc123 '{ \"data\": { \"color\": \"#ff0000\" } }'"
      },
      {
        "title": "Trade Plan & Position Sizing Examples",
        "body": "# Calculate position size\n./scripts/dwlf-api.sh POST /tools/position-size '{\n  \"accountSize\": 10000,\n  \"riskPercent\": 2,\n  \"entryPrice\": 95000,\n  \"stopLoss\": 93000,\n  \"symbol\": \"BTC-USD\"\n}'\n\n# Create a trade plan\n./scripts/dwlf-api.sh POST /trade-plans '{\n  \"symbol\": \"BTC-USD\",\n  \"direction\": \"long\",\n  \"entryPrice\": 95000,\n  \"stopLoss\": 93000,\n  \"takeProfit\": 100000,\n  \"notes\": \"Bounce off key support with RSI divergence\"\n}'"
      },
      {
        "title": "Symbol Format",
        "body": "Crypto: BTC-USD, ETH-USD, SOL-USD (always with -USD suffix)\nStocks/ETFs: TSLA, NVDA, META, MARA, RIOT\nForex: GBP-USD, EUR-USD\n\nIf user says \"BTC\" → use BTC-USD. If \"TSLA\" → use TSLA."
      },
      {
        "title": "Market Data",
        "body": "MethodPathDescriptionGET/market-data/{symbol}?interval=1d&limit=50OHLCV candlesGET/market-data/symbolsList all tracked symbolsGET/support-resistance/{symbol}S/R levels with scoresGET/chart-indicators/{symbol}?interval=1dAll indicators (RSI, EMA, MACD, etc.)GET/trendlines/{symbol}Auto-detected trendlinesGET/events?symbol={symbol}&limit=20System events (breakouts)GET/events?type=custom_event&scope=user&symbol={symbol}&days=30User's custom events (wcl, dss, reversals etc.)"
      },
      {
        "title": "Chart Annotations",
        "body": "MethodPathDescriptionGET/annotations?symbol={symbol}&timeframe={tf}List annotationsPOST/annotationsCreate annotation (hline, text, trendline, rectangle, channel)PUT/annotations/{annotationId}Update annotation (merges data fields)DELETE/annotations/{annotationId}Delete annotationPOST/annotations/bulkBulk create annotations"
      },
      {
        "title": "Trade Plans",
        "body": "MethodPathDescriptionGET/trade-plansList trade plansGET/trade-plans/{planId}Get trade planPOST/trade-plansCreate trade planPUT/trade-plans/{planId}Update trade planDELETE/trade-plans/{planId}Delete trade planPOST/trade-plans/{planId}/duplicateDuplicate trade plan"
      },
      {
        "title": "Position Sizing",
        "body": "MethodPathDescriptionPOST/tools/position-sizeCalculate position size from risk params"
      },
      {
        "title": "User Settings",
        "body": "MethodPathDescriptionGET/user/settingsGet user settingsPUT/user/settingsUpdate user settingsDELETE/user/settings/{settingKey}Delete a setting"
      },
      {
        "title": "Strategies & Signals",
        "body": "MethodPathDescriptionGET/visual-strategiesList user's strategiesGET/visual-strategies/{id}Strategy detailsPOST/visual-strategiesCreate strategyPUT/visual-strategies/{id}Update strategyGET/user/trade-signals/activeActive trade signalsGET/user/trade-signals/recent?limit=20Recent signalsGET/user/trade-signals/statsSignal performance statsGET/user/trade-signals/symbol/{symbol}Signals for a symbol"
      },
      {
        "title": "Backtesting",
        "body": "MethodPathDescriptionPOST/backtestsTrigger backtest (async)GET/backtestsList backtestsGET/backtests/summaryBacktest summaryGET/backtests/{requestId}Get backtest statusGET/backtests/{requestId}/resultsGet backtest resultsDELETE/backtests/{requestId}Delete a backtest\n\nBacktests are async — POST triggers, then poll GET until status: \"completed\".\n\nBody: { strategyId, symbols: [\"BTC-USD\"], startDate: \"2025-01-01\", endDate: \"2026-01-30\" }\nNote: symbols is an array, not symbol (singular)."
      },
      {
        "title": "Portfolio & Trades",
        "body": "MethodPathDescriptionGET/portfoliosList portfoliosGET/portfolios/{id}Portfolio details + holdingsGET/trades?status=openList tradesPOST/tradesLog a new tradePUT/trades/{id}Update tradeGET/trade-plansList trade plans"
      },
      {
        "title": "Watchlist",
        "body": "MethodPathDescriptionGET/watchlistGet watchlistPOST/watchlistAdd symbol ({\"symbol\":\"BTC-USD\"})DELETE/watchlist/{symbol}Remove symbol"
      },
      {
        "title": "Custom Events",
        "body": "MethodPathDescriptionGET/custom-eventsList custom eventsPOST/custom-eventsCreate custom eventGET/custom-events/{id}Event details"
      },
      {
        "title": "Custom Event Symbol Activation",
        "body": "MethodPathDescriptionPOST/custom-event-symbols/:eventId/enable-allBulk activate symbols for an eventPOST/custom-event-symbols/:eventId/disable-allBulk deactivate symbols for an eventGET/custom-event-symbols/event/:eventIdGet active symbols for an eventGET/custom-event-symbolsList all event-symbol associations"
      },
      {
        "title": "Strategy Symbol Activation",
        "body": "MethodPathDescriptionPOST/strategy-symbols/:strategyId/enable-allBulk activate symbols for a strategyPOST/strategy-symbols/:strategyId/disable-allBulk deactivate symbols for a strategyGET/strategy-symbols/strategy/:strategyIdGet active symbols for a strategyGET/strategy-symbolsList all strategy-symbol associations"
      },
      {
        "title": "AI Summaries",
        "body": "MethodPathDescriptionGET/ai/dashboardFull account overview: watchlist, signals, trades, portfolios, strategies, eventsGET/ai/symbol-brief/{symbol}Single-symbol snapshot: price, candles, indicators, S/R, events, signalsGET/ai/strategy-performanceAll strategies with signal stats, win rate, P&L breakdowns\n\n💡 Use these first! The AI summary endpoints are pre-aggregated for AI consumption. When a user asks \"how's BTC?\" or \"what's going on?\", hit these before making multiple individual calls."
      },
      {
        "title": "Evaluations",
        "body": "MethodPathDescriptionPOST/evaluationsTrigger evaluation runGET/evaluations/{id}Get evaluation results"
      },
      {
        "title": "Symbol Activation (Required After Creation)",
        "body": "⚠️ IMPORTANT: Creating a custom event or strategy does NOT automatically activate it for any symbols. After creation, you MUST ask the user which symbols to activate it for, then call the enable endpoint. Without this step, the event/strategy will not fire or generate signals."
      },
      {
        "title": "Workflow: Custom Events",
        "body": "Create the event → POST /custom-events\nCompile the event → POST /custom-events/{id}/compile\nAsk the user which symbols to activate for\nActivate symbols → POST /custom-event-symbols/{eventId}/enable-all with { \"symbols\": [\"BTC-USD\", \"ETH-USD\"] }"
      },
      {
        "title": "Workflow: Strategies",
        "body": "Create the strategy → POST /visual-strategies\nCompile the strategy → POST /visual-strategies/{id}/compile\nAsk the user which symbols to activate for\nActivate symbols → POST /strategy-symbols/{strategyId}/enable-all with { \"symbols\": [\"BTC-USD\", \"ETH-USD\"] }"
      },
      {
        "title": "Editing Events or Strategies",
        "body": "⚠️ Any update to a custom event or strategy requires recompilation!\nThe evaluator runs the compiled output, not the visual graph. If you update nodes, edges, conditions, or parameters without recompiling, the changes have no effect.\n\nAfter editing an event: POST /custom-events/{id}/compile\nAfter editing a strategy: POST /visual-strategies/{id}/compile\n\nAlways recompile immediately after any PUT update call."
      },
      {
        "title": "Checking Active Symbols",
        "body": "Event symbols: GET /custom-event-symbols/event/{eventId}\nStrategy symbols: GET /strategy-symbols/strategy/{strategyId}\nAll activations: GET /custom-event-symbols and GET /strategy-symbols (query: ?activeOnly=true)"
      },
      {
        "title": "Deactivating Symbols",
        "body": "Event: POST /custom-event-symbols/{eventId}/disable-all with { \"symbols\": [...] }\nStrategy: POST /strategy-symbols/{strategyId}/disable-all with { \"symbols\": [...] }"
      },
      {
        "title": "Response Formatting",
        "body": "When presenting data to users:\n\nMarket overview: Show price, % change, key S/R levels, and any recent events.\n\nSignals: Show symbol, direction, entry, stop loss, confidence score, strategy name.\n\nS/R levels: Sort by score (strongest first), show level and touch count.\n\nBacktests: Show trade count, win rate, total return, Sharpe ratio, best/worst trades."
      },
      {
        "title": "Available Indicators",
        "body": "EMA (multiple periods), SMA, RSI, MACD, Bollinger Bands, DSS (Double Smoothed Stochastic),\nStochastic RSI, ATR, ADX, OBV, Volume Profile, Ichimoku Cloud, Fibonacci Retracement,\nSupport/Resistance, Trendlines, Candlestick Patterns, SMC (Order Blocks, FVGs, BOS/ChoCH)."
      },
      {
        "title": "Academy",
        "body": "DWLF Academy is a CDN-hosted collection of educational content (15 tracks, 60+ lessons) covering indicators, events, strategies, charting, and more. No auth required.\n\nUse academy tools to read lesson content and understand DWLF concepts:\n\ndwlf_list_academy_tracks — browse all tracks and lessons\ndwlf_search_academy — search by keyword\ndwlf_get_academy_lesson — read a specific lesson (markdown)\n\nWhen a user asks \"how does X work in DWLF?\" or \"what is DSS?\", check the academy first — it likely has a lesson explaining it."
      },
      {
        "title": "Detailed Reference",
        "body": "API endpoints (params, response shapes): read references/api-endpoints.md\nStrategy builder (node types, edge wiring, examples): read references/strategy-builder.md"
      }
    ],
    "body": "DWLF — Market Analysis Platform\n\nAPI base: https://api.dwlf.co.uk/v2\n\nAuth\n\nUse API key auth. Check TOOLS.md for the key. Header:\n\nAuthorization: ApiKey dwlf_sk_...\n\n\nHelper script: scripts/dwlf-api.sh\n\nQuick Start\n# Generic GET request\n./scripts/dwlf-api.sh GET /market-data/BTC-USD\n\n# With query params\n./scripts/dwlf-api.sh GET \"/events?symbol=BTC-USD&limit=10\"\n\n# POST request\n./scripts/dwlf-api.sh POST /visual-backtests '{\"strategyId\":\"...\",\"symbol\":\"BTC-USD\"}'\n\nAnnotation Examples\n# Create a horizontal line annotation at a key support level\n./scripts/dwlf-api.sh POST /annotations '{\n  \"symbol\": \"BTC-USD\",\n  \"timeframe\": \"1d\",\n  \"type\": \"hline\",\n  \"data\": { \"price\": 95000, \"color\": \"#00ff00\", \"label\": \"Key Support\", \"lineStyle\": \"solid\", \"lineWidth\": 2, \"showPrice\": true },\n  \"origin\": \"ai\"\n}'\n\n# Create a text annotation on chart\n./scripts/dwlf-api.sh POST /annotations '{\n  \"symbol\": \"ETH-USD\",\n  \"timeframe\": \"4h\",\n  \"type\": \"text\",\n  \"data\": { \"text\": \"Breakout zone\", \"price\": 3800, \"time\": \"2025-06-01T00:00:00Z\", \"color\": \"#ffaa00\", \"fontSize\": 14 },\n  \"origin\": \"ai\"\n}'\n\n# Bulk create multiple annotations\n./scripts/dwlf-api.sh POST /annotations/bulk '{\n  \"annotations\": [\n    { \"symbol\": \"BTC-USD\", \"timeframe\": \"1d\", \"type\": \"hline\", \"data\": { \"price\": 100000, \"color\": \"#ff0000\", \"label\": \"Resistance\" }, \"origin\": \"ai\" },\n    { \"symbol\": \"BTC-USD\", \"timeframe\": \"1d\", \"type\": \"hline\", \"data\": { \"price\": 92000, \"color\": \"#00ff00\", \"label\": \"Support\" }, \"origin\": \"ai\" }\n  ]\n}'\n\n# List annotations for a symbol\n./scripts/dwlf-api.sh GET \"/annotations?symbol=BTC-USD&timeframe=1d\"\n\n# Update an annotation (merges data — only changes specified fields)\n./scripts/dwlf-api.sh PUT /annotations/abc123 '{ \"data\": { \"color\": \"#ff0000\" } }'\n\nTrade Plan & Position Sizing Examples\n# Calculate position size\n./scripts/dwlf-api.sh POST /tools/position-size '{\n  \"accountSize\": 10000,\n  \"riskPercent\": 2,\n  \"entryPrice\": 95000,\n  \"stopLoss\": 93000,\n  \"symbol\": \"BTC-USD\"\n}'\n\n# Create a trade plan\n./scripts/dwlf-api.sh POST /trade-plans '{\n  \"symbol\": \"BTC-USD\",\n  \"direction\": \"long\",\n  \"entryPrice\": 95000,\n  \"stopLoss\": 93000,\n  \"takeProfit\": 100000,\n  \"notes\": \"Bounce off key support with RSI divergence\"\n}'\n\nSymbol Format\nCrypto: BTC-USD, ETH-USD, SOL-USD (always with -USD suffix)\nStocks/ETFs: TSLA, NVDA, META, MARA, RIOT\nForex: GBP-USD, EUR-USD\n\nIf user says \"BTC\" → use BTC-USD. If \"TSLA\" → use TSLA.\n\nCore Endpoints\nMarket Data\nMethod\tPath\tDescription\nGET\t/market-data/{symbol}?interval=1d&limit=50\tOHLCV candles\nGET\t/market-data/symbols\tList all tracked symbols\nGET\t/support-resistance/{symbol}\tS/R levels with scores\nGET\t/chart-indicators/{symbol}?interval=1d\tAll indicators (RSI, EMA, MACD, etc.)\nGET\t/trendlines/{symbol}\tAuto-detected trendlines\nGET\t/events?symbol={symbol}&limit=20\tSystem events (breakouts)\nGET\t/events?type=custom_event&scope=user&symbol={symbol}&days=30\tUser's custom events (wcl, dss, reversals etc.)\nChart Annotations\nMethod\tPath\tDescription\nGET\t/annotations?symbol={symbol}&timeframe={tf}\tList annotations\nPOST\t/annotations\tCreate annotation (hline, text, trendline, rectangle, channel)\nPUT\t/annotations/{annotationId}\tUpdate annotation (merges data fields)\nDELETE\t/annotations/{annotationId}\tDelete annotation\nPOST\t/annotations/bulk\tBulk create annotations\nTrade Plans\nMethod\tPath\tDescription\nGET\t/trade-plans\tList trade plans\nGET\t/trade-plans/{planId}\tGet trade plan\nPOST\t/trade-plans\tCreate trade plan\nPUT\t/trade-plans/{planId}\tUpdate trade plan\nDELETE\t/trade-plans/{planId}\tDelete trade plan\nPOST\t/trade-plans/{planId}/duplicate\tDuplicate trade plan\nPosition Sizing\nMethod\tPath\tDescription\nPOST\t/tools/position-size\tCalculate position size from risk params\nUser Settings\nMethod\tPath\tDescription\nGET\t/user/settings\tGet user settings\nPUT\t/user/settings\tUpdate user settings\nDELETE\t/user/settings/{settingKey}\tDelete a setting\nStrategies & Signals\nMethod\tPath\tDescription\nGET\t/visual-strategies\tList user's strategies\nGET\t/visual-strategies/{id}\tStrategy details\nPOST\t/visual-strategies\tCreate strategy\nPUT\t/visual-strategies/{id}\tUpdate strategy\nGET\t/user/trade-signals/active\tActive trade signals\nGET\t/user/trade-signals/recent?limit=20\tRecent signals\nGET\t/user/trade-signals/stats\tSignal performance stats\nGET\t/user/trade-signals/symbol/{symbol}\tSignals for a symbol\nBacktesting\nMethod\tPath\tDescription\nPOST\t/backtests\tTrigger backtest (async)\nGET\t/backtests\tList backtests\nGET\t/backtests/summary\tBacktest summary\nGET\t/backtests/{requestId}\tGet backtest status\nGET\t/backtests/{requestId}/results\tGet backtest results\nDELETE\t/backtests/{requestId}\tDelete a backtest\n\nBacktests are async — POST triggers, then poll GET until status: \"completed\".\n\nBody: { strategyId, symbols: [\"BTC-USD\"], startDate: \"2025-01-01\", endDate: \"2026-01-30\" }\nNote: symbols is an array, not symbol (singular).\nPortfolio & Trades\nMethod\tPath\tDescription\nGET\t/portfolios\tList portfolios\nGET\t/portfolios/{id}\tPortfolio details + holdings\nGET\t/trades?status=open\tList trades\nPOST\t/trades\tLog a new trade\nPUT\t/trades/{id}\tUpdate trade\nGET\t/trade-plans\tList trade plans\nWatchlist\nMethod\tPath\tDescription\nGET\t/watchlist\tGet watchlist\nPOST\t/watchlist\tAdd symbol ({\"symbol\":\"BTC-USD\"})\nDELETE\t/watchlist/{symbol}\tRemove symbol\nCustom Events\nMethod\tPath\tDescription\nGET\t/custom-events\tList custom events\nPOST\t/custom-events\tCreate custom event\nGET\t/custom-events/{id}\tEvent details\nCustom Event Symbol Activation\nMethod\tPath\tDescription\nPOST\t/custom-event-symbols/:eventId/enable-all\tBulk activate symbols for an event\nPOST\t/custom-event-symbols/:eventId/disable-all\tBulk deactivate symbols for an event\nGET\t/custom-event-symbols/event/:eventId\tGet active symbols for an event\nGET\t/custom-event-symbols\tList all event-symbol associations\nStrategy Symbol Activation\nMethod\tPath\tDescription\nPOST\t/strategy-symbols/:strategyId/enable-all\tBulk activate symbols for a strategy\nPOST\t/strategy-symbols/:strategyId/disable-all\tBulk deactivate symbols for a strategy\nGET\t/strategy-symbols/strategy/:strategyId\tGet active symbols for a strategy\nGET\t/strategy-symbols\tList all strategy-symbol associations\nAI Summaries\nMethod\tPath\tDescription\nGET\t/ai/dashboard\tFull account overview: watchlist, signals, trades, portfolios, strategies, events\nGET\t/ai/symbol-brief/{symbol}\tSingle-symbol snapshot: price, candles, indicators, S/R, events, signals\nGET\t/ai/strategy-performance\tAll strategies with signal stats, win rate, P&L breakdowns\n\n💡 Use these first! The AI summary endpoints are pre-aggregated for AI consumption. When a user asks \"how's BTC?\" or \"what's going on?\", hit these before making multiple individual calls.\n\nEvaluations\nMethod\tPath\tDescription\nPOST\t/evaluations\tTrigger evaluation run\nGET\t/evaluations/{id}\tGet evaluation results\nSymbol Activation (Required After Creation)\n\n⚠️ IMPORTANT: Creating a custom event or strategy does NOT automatically activate it for any symbols. After creation, you MUST ask the user which symbols to activate it for, then call the enable endpoint. Without this step, the event/strategy will not fire or generate signals.\n\nWorkflow: Custom Events\nCreate the event → POST /custom-events\nCompile the event → POST /custom-events/{id}/compile\nAsk the user which symbols to activate for\nActivate symbols → POST /custom-event-symbols/{eventId}/enable-all with { \"symbols\": [\"BTC-USD\", \"ETH-USD\"] }\nWorkflow: Strategies\nCreate the strategy → POST /visual-strategies\nCompile the strategy → POST /visual-strategies/{id}/compile\nAsk the user which symbols to activate for\nActivate symbols → POST /strategy-symbols/{strategyId}/enable-all with { \"symbols\": [\"BTC-USD\", \"ETH-USD\"] }\nEditing Events or Strategies\n\n⚠️ Any update to a custom event or strategy requires recompilation! The evaluator runs the compiled output, not the visual graph. If you update nodes, edges, conditions, or parameters without recompiling, the changes have no effect.\n\nAfter editing an event: POST /custom-events/{id}/compile\nAfter editing a strategy: POST /visual-strategies/{id}/compile\n\nAlways recompile immediately after any PUT update call.\n\nChecking Active Symbols\nEvent symbols: GET /custom-event-symbols/event/{eventId}\nStrategy symbols: GET /strategy-symbols/strategy/{strategyId}\nAll activations: GET /custom-event-symbols and GET /strategy-symbols (query: ?activeOnly=true)\nDeactivating Symbols\nEvent: POST /custom-event-symbols/{eventId}/disable-all with { \"symbols\": [...] }\nStrategy: POST /strategy-symbols/{strategyId}/disable-all with { \"symbols\": [...] }\nResponse Formatting\n\nWhen presenting data to users:\n\nMarket overview: Show price, % change, key S/R levels, and any recent events.\n\nSignals: Show symbol, direction, entry, stop loss, confidence score, strategy name.\n\nS/R levels: Sort by score (strongest first), show level and touch count.\n\nBacktests: Show trade count, win rate, total return, Sharpe ratio, best/worst trades.\n\nAvailable Indicators\n\nEMA (multiple periods), SMA, RSI, MACD, Bollinger Bands, DSS (Double Smoothed Stochastic), Stochastic RSI, ATR, ADX, OBV, Volume Profile, Ichimoku Cloud, Fibonacci Retracement, Support/Resistance, Trendlines, Candlestick Patterns, SMC (Order Blocks, FVGs, BOS/ChoCH).\n\nAcademy\n\nDWLF Academy is a CDN-hosted collection of educational content (15 tracks, 60+ lessons) covering indicators, events, strategies, charting, and more. No auth required.\n\nUse academy tools to read lesson content and understand DWLF concepts:\n\ndwlf_list_academy_tracks — browse all tracks and lessons\ndwlf_search_academy — search by keyword\ndwlf_get_academy_lesson — read a specific lesson (markdown)\n\nWhen a user asks \"how does X work in DWLF?\" or \"what is DSS?\", check the academy first — it likely has a lesson explaining it.\n\nDetailed Reference\nAPI endpoints (params, response shapes): read references/api-endpoints.md\nStrategy builder (node types, edge wiring, examples): read references/strategy-builder.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/andywilliams/dwlf",
    "publisherUrl": "https://clawhub.ai/andywilliams/dwlf",
    "owner": "andywilliams",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/dwlf",
    "downloadUrl": "https://openagent3.xyz/downloads/dwlf",
    "agentUrl": "https://openagent3.xyz/skills/dwlf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dwlf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dwlf/agent.md"
  }
}