โ† Back to CLI Utilities
CLI Utilities by @andywilliams

dwlf

Interact with DWLF (dwlf.co.uk), a market analysis platform for crypto

0
Source Code

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"}'

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.

Core Endpoints

Market Data

Method Path Description
GET /market-data/{symbol}?interval=1d&limit=50 OHLCV candles
GET /market-data/symbols List all tracked symbols
GET /support-resistance/{symbol} S/R levels with scores
GET /chart-indicators/{symbol}?interval=1d All indicators (RSI, EMA, MACD, etc.)
GET /trendlines/{symbol} Auto-detected trendlines
GET /events?symbol={symbol}&limit=20 System events (breakouts)
GET /events?type=custom_event&scope=user&symbol={symbol}&days=30 User's custom events (wcl, dss, reversals etc.)

Strategies & Signals

Method Path Description
GET /visual-strategies List user's strategies
GET /visual-strategies/{id} Strategy details
POST /visual-strategies Create strategy
PUT /visual-strategies/{id} Update strategy
GET /user/trade-signals/active Active trade signals
GET /user/trade-signals/recent?limit=20 Recent signals
GET /user/trade-signals/stats Signal performance stats
GET /user/trade-signals/symbol/{symbol} Signals for a symbol

Backtesting

Method Path Description
POST /visual-backtests Trigger backtest (async)
GET /visual-backtests/{id} Get backtest results

Backtests are async โ€” POST triggers, then poll GET until complete.

Portfolio & Trades

Method Path Description
GET /portfolios List portfolios
GET /portfolios/{id} Portfolio details + holdings
GET /trades?status=open List trades
POST /trades Log a new trade
PUT /trades/{id} Update trade
GET /trade-plans List trade plans

Watchlist

Method Path Description
GET /watchlist Get watchlist
POST /watchlist Add symbol ({"symbol":"BTC-USD"})
DELETE /watchlist/{symbol} Remove symbol

Custom Events

Method Path Description
GET /custom-events List custom events
POST /custom-events Create custom event
GET /custom-events/{id} Event details

Custom Event Symbol Activation

Method Path Description
POST /custom-event-symbols/:eventId/enable-all Bulk activate symbols for an event
POST /custom-event-symbols/:eventId/disable-all Bulk deactivate symbols for an event
GET /custom-event-symbols/event/:eventId Get active symbols for an event
GET /custom-event-symbols List all event-symbol associations

Strategy Symbol Activation

Method Path Description
POST /strategy-symbols/:strategyId/enable-all Bulk activate symbols for a strategy
POST /strategy-symbols/:strategyId/disable-all Bulk deactivate symbols for a strategy
GET /strategy-symbols/strategy/:strategyId Get active symbols for a strategy
GET /strategy-symbols List all strategy-symbol associations

Evaluations

Method Path Description
POST /evaluations Trigger evaluation run
GET /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

  1. Create the event โ†’ POST /custom-events
  2. Compile the event โ†’ POST /custom-events/{id}/compile
  3. Ask the user which symbols to activate for
  4. Activate symbols โ†’ POST /custom-event-symbols/{eventId}/enable-all with { "symbols": ["BTC-USD", "ETH-USD"] }

Workflow: Strategies

  1. Create the strategy โ†’ POST /visual-strategies
  2. Compile the strategy โ†’ POST /visual-strategies/{id}/compile
  3. Ask the user which symbols to activate for
  4. Activate symbols โ†’ POST /strategy-symbols/{strategyId}/enable-all with { "symbols": ["BTC-USD", "ETH-USD"] }

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