Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates and analyzes trading strategies from a structured config. Produces runnable JS + portfolio analysis.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 96% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -21% | 0% |
Take a structured strategy configuration — entry/exit conditions, TP/SL, drawdown limits, seed capital — and produce a runnable JavaScript strategy script that returns {trades, equity}. After the script is backtested, the same skill can analyze the results and suggest concrete improvements.
This skill is the counterpart to the Pattern Skill: instead of finding historical patterns, it trades them (or any other hypothesis).
Vibe Trade should dispatch to the Strategy Skill when the user:
chatbox.card.strategy_builder to show the structured form in the chat
context.strategy_config
context.analyze_results plusthe strategy config to produce an assessment + suggestions
entry rule) — regenerate from the updated config
strategy_config is in context, show the structured form:chatbox.card.strategy_builder to inject the form into the chata runnable strategy for you."
strategy_config is present and mode = "generate" (default):sma() exists)maxAdverseExcursion / maxFavorableExcursion per tradeequity array on every bar (not just on trade events)script_editor.load with the full scriptbottom_panel.activate_tab → portfoliomode = "analyze" (backtest results in context.analyze_results):data.suggestionsstrategy chat (without a structured config) should be handled as a general chat fallback, not by this skill.
| Key | Type | Meaning | |---|---|---| | context.mode | "generate" \| "analyze" | Which operation to run (default: generate) | | context.strategy_config | object | Full strategy config from the form | | context.analyze_results | object | Backtest metrics (analyze mode only) |
strategy_config shape:
js{ entryCondition: string, exitCondition: string, takeProfit: { type: "percentage" | "absolute", value: number }, stopLoss: { type: "percentage" | "absolute", value: number }, maxDrawdown: number, // percent seedAmount: number, // USD specialInstructions: string }
Generate mode:
reply — short confirmation ("Strategy script generated.")script — JavaScript strategy returning {trades, equity}script_type — "strategy"data.config — echoes the config (for persistence)tool_calls — load + activate portfolio tabAnalyze mode:
reply — 2–3 sentence assessmentdata.suggestions — 3–5 improvement suggestionstool_calls — none (analyze is read-only)| Tool | When | Payload | |---|---|---| | chatbox.card.strategy_builder | User wants to build a strategy but no config yet | — | | script_editor.load | Strategy generated | The JS source | | script_editor.run | User asks to backtest immediately | — | | bottom_panel.activate_tab | After generating | "portfolio" | | bottom_panel.set_data | Push analysis data into a tab | {target, data} | | chart.draw_markers | Visualize entry/exit points on the chart | Marker[] | | notify.toast | Status updates ("Backtest complete: 42 trades") | {level, message} |
Generate Config: Entry = SMA(20) > SMA(50), Exit = SMA(20) < SMA(50), TP = 5%, SL = 2%, Max DD = 20%, Seed = $10,000.
→ Returns a strategy script with inline sma() helper, golden-cross entry logic, per-trade PnL + MAE/MFE tracking, equity-curve pushes on every bar. Loads into the editor; bottom panel switches to Portfolio.
Analyze Metrics: 42 trades, 38% win rate, 1.1 profit factor, -18% max drawdown.
→ "Marginal profitability, asymmetric losses are hurting overall returns." Suggestions: tighten stop to 1.5%, add an ATR volatility filter, require ADX > 25 for trend regime, etc.
Wired through core/agents/processors.py::_strategy_processor, which calls core/agents/strategy_agent.py::StrategyAgent.generate_from_config or .analyze_results depending on context.mode. The agent owns STRATEGY_GENERATE_PROMPT and STRATEGY_ANALYSIS_PROMPT.
Other measured skills in the registry, with their headline benchmark lift.