# Send A Clawdbot skill that gives your agent native access to DWLF — a market analysis platform for crypto and stocks. to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "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": {
    "downloadUrl": "/downloads/dwlf",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dwlf",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/dwlf-api.sh",
      "references/strategy-builder.md",
      "references/api-endpoints.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "dwlf",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T01:45:06.655Z",
      "expiresAt": "2026-05-06T01:45:06.655Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dwlf",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dwlf",
        "contentDisposition": "attachment; filename=\"dwlf-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "dwlf"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "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."
      ]
    }
  },
  "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"
  }
}
```
## Documentation

### DWLF — Market Analysis Platform

API base: https://api.dwlf.co.uk/v2

### Auth

Use API key auth. Check TOOLS.md for the key. Header:

Authorization: ApiKey dwlf_sk_...

Helper script: scripts/dwlf-api.sh

### Quick Start

# Generic GET request
./scripts/dwlf-api.sh GET /market-data/BTC-USD

# With query params
./scripts/dwlf-api.sh GET "/events?symbol=BTC-USD&limit=10"

# POST request
./scripts/dwlf-api.sh POST /visual-backtests '{"strategyId":"...","symbol":"BTC-USD"}'

### Annotation Examples

# Create a horizontal line annotation at a key support level
./scripts/dwlf-api.sh POST /annotations '{
  "symbol": "BTC-USD",
  "timeframe": "1d",
  "type": "hline",
  "data": { "price": 95000, "color": "#00ff00", "label": "Key Support", "lineStyle": "solid", "lineWidth": 2, "showPrice": true },
  "origin": "ai"
}'

# Create a text annotation on chart
./scripts/dwlf-api.sh POST /annotations '{
  "symbol": "ETH-USD",
  "timeframe": "4h",
  "type": "text",
  "data": { "text": "Breakout zone", "price": 3800, "time": "2025-06-01T00:00:00Z", "color": "#ffaa00", "fontSize": 14 },
  "origin": "ai"
}'

# Bulk create multiple annotations
./scripts/dwlf-api.sh POST /annotations/bulk '{
  "annotations": [
    { "symbol": "BTC-USD", "timeframe": "1d", "type": "hline", "data": { "price": 100000, "color": "#ff0000", "label": "Resistance" }, "origin": "ai" },
    { "symbol": "BTC-USD", "timeframe": "1d", "type": "hline", "data": { "price": 92000, "color": "#00ff00", "label": "Support" }, "origin": "ai" }
  ]
}'

# List annotations for a symbol
./scripts/dwlf-api.sh GET "/annotations?symbol=BTC-USD&timeframe=1d"

# Update an annotation (merges data — only changes specified fields)
./scripts/dwlf-api.sh PUT /annotations/abc123 '{ "data": { "color": "#ff0000" } }'

### Trade Plan & Position Sizing Examples

# Calculate position size
./scripts/dwlf-api.sh POST /tools/position-size '{
  "accountSize": 10000,
  "riskPercent": 2,
  "entryPrice": 95000,
  "stopLoss": 93000,
  "symbol": "BTC-USD"
}'

# Create a trade plan
./scripts/dwlf-api.sh POST /trade-plans '{
  "symbol": "BTC-USD",
  "direction": "long",
  "entryPrice": 95000,
  "stopLoss": 93000,
  "takeProfit": 100000,
  "notes": "Bounce off key support with RSI divergence"
}'

### Symbol Format

Crypto: BTC-USD, ETH-USD, SOL-USD (always with -USD suffix)
Stocks/ETFs: TSLA, NVDA, META, MARA, RIOT
Forex: GBP-USD, EUR-USD

If user says "BTC" → use BTC-USD. If "TSLA" → use TSLA.

### Market Data

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.)

### Chart Annotations

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

### Trade Plans

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

### Position Sizing

MethodPathDescriptionPOST/tools/position-sizeCalculate position size from risk params

### User Settings

MethodPathDescriptionGET/user/settingsGet user settingsPUT/user/settingsUpdate user settingsDELETE/user/settings/{settingKey}Delete a setting

### Strategies & Signals

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

### Backtesting

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

Backtests are async — POST triggers, then poll GET until status: "completed".

Body: { strategyId, symbols: ["BTC-USD"], startDate: "2025-01-01", endDate: "2026-01-30" }
Note: symbols is an array, not symbol (singular).

### Portfolio & Trades

MethodPathDescriptionGET/portfoliosList portfoliosGET/portfolios/{id}Portfolio details + holdingsGET/trades?status=openList tradesPOST/tradesLog a new tradePUT/trades/{id}Update tradeGET/trade-plansList trade plans

### Watchlist

MethodPathDescriptionGET/watchlistGet watchlistPOST/watchlistAdd symbol ({"symbol":"BTC-USD"})DELETE/watchlist/{symbol}Remove symbol

### Custom Events

MethodPathDescriptionGET/custom-eventsList custom eventsPOST/custom-eventsCreate custom eventGET/custom-events/{id}Event details

### Custom Event Symbol Activation

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

### Strategy Symbol Activation

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

### AI Summaries

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

💡 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.

### Evaluations

MethodPathDescriptionPOST/evaluationsTrigger evaluation runGET/evaluations/{id}Get evaluation results

### Symbol Activation (Required After Creation)

⚠️ 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.

### Workflow: Custom Events

Create the event → POST /custom-events
Compile the event → POST /custom-events/{id}/compile
Ask the user which symbols to activate for
Activate symbols → POST /custom-event-symbols/{eventId}/enable-all with { "symbols": ["BTC-USD", "ETH-USD"] }

### Workflow: Strategies

Create the strategy → POST /visual-strategies
Compile the strategy → POST /visual-strategies/{id}/compile
Ask the user which symbols to activate for
Activate symbols → POST /strategy-symbols/{strategyId}/enable-all with { "symbols": ["BTC-USD", "ETH-USD"] }

### Editing Events or Strategies

⚠️ 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.

After editing an event: POST /custom-events/{id}/compile
After editing a strategy: POST /visual-strategies/{id}/compile

Always recompile immediately after any PUT update call.

### Checking Active Symbols

Event symbols: GET /custom-event-symbols/event/{eventId}
Strategy symbols: GET /strategy-symbols/strategy/{strategyId}
All activations: GET /custom-event-symbols and GET /strategy-symbols (query: ?activeOnly=true)

### Deactivating Symbols

Event: POST /custom-event-symbols/{eventId}/disable-all with { "symbols": [...] }
Strategy: POST /strategy-symbols/{strategyId}/disable-all with { "symbols": [...] }

### Response Formatting

When presenting data to users:

Market overview: Show price, % change, key S/R levels, and any recent events.

Signals: Show symbol, direction, entry, stop loss, confidence score, strategy name.

S/R levels: Sort by score (strongest first), show level and touch count.

Backtests: Show trade count, win rate, total return, Sharpe ratio, best/worst trades.

### Available Indicators

EMA (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).

### Academy

DWLF Academy is a CDN-hosted collection of educational content (15 tracks, 60+ lessons) covering indicators, events, strategies, charting, and more. No auth required.

Use academy tools to read lesson content and understand DWLF concepts:

dwlf_list_academy_tracks — browse all tracks and lessons
dwlf_search_academy — search by keyword
dwlf_get_academy_lesson — read a specific lesson (markdown)

When a user asks "how does X work in DWLF?" or "what is DSS?", check the academy first — it likely has a lesson explaining it.

### Detailed Reference

API endpoints (params, response shapes): read references/api-endpoints.md
Strategy builder (node types, edge wiring, examples): read references/strategy-builder.md
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: andywilliams
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T01:45:06.655Z
- Expires at: 2026-05-06T01:45:06.655Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/dwlf)
- [Send to Agent page](https://openagent3.xyz/skills/dwlf/agent)
- [JSON manifest](https://openagent3.xyz/skills/dwlf/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/dwlf/agent.md)
- [Download page](https://openagent3.xyz/downloads/dwlf)