backtrader
FreeEvent-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
The English summary is being prepared. Showing the original description.
Standardized template for defining trading strategies with entry rules, exit rules, position sizing, risk parameters, and performance criteria
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
A standardized system for defining, documenting, testing, and managing trading strategies. This skill provides templates and tools that enforce discipline, enable reproducibility, and make strategies testable.
Trading without a written strategy framework leads to:
A strategy framework forces you to:
Every strategy must be documented using the standard template. The full copy-paste template is in references/strategy_template.md.
Identity
Name: SOL-EMA-Cross v1.0
Asset class: Solana tokens (top 50 by 24h volume)
Timeframe: Primary 1H, confirmation 4H
Style: Trend following
Edge Hypothesis: State what market inefficiency you are exploiting and why it exists.
Hypothesis: Solana mid-cap tokens exhibit momentum persistence
on the 1H timeframe due to retail herding behavior and low
institutional participation. EMA crossovers capture the
initiation of these trends.
Entry Rules: Specific, testable conditions combined with AND/OR logic.
def entry_signal(data: pd.DataFrame) -> bool:
"""All conditions must be True (AND logic)."""
ema_cross = data["ema_12"] > data["ema_26"] # EMA 12 crossed above 26
ema_rising = data["ema_26"].diff(3) > 0 # 26 EMA trending up
volume_ok = data["volume"] > data["vol_sma_20"] * 1.5 # Volume confirmation
regime_ok = data["adx"] > 20 # Trending regime
return ema_cross & ema_rising & volume_ok & regime_ok
Exit Rules: Every strategy needs multiple exit mechanisms.
| Exit Type | Method | Parameters |
|---|---|---|
| Stop Loss | ATR-based | 2.0 × ATR(14) below entry |
| Take Profit | Risk multiple | 3.0 × risk (3:1 R:R) |
| Trailing Stop | Chandelier | 3.0 × ATR(14) from highest high |
| Time Stop | Bar count | Close if flat after 20 bars |
| Signal Exit | EMA reversal | EMA 12 crosses below EMA 26 |
Position Sizing: Method and parameters. See the position-sizing skill for details.
risk_per_trade = 0.02 # 2% of portfolio
stop_distance_pct = 0.05 # 5% from entry (ATR-derived)
position_size = (portfolio * risk_per_trade) / stop_distance_pct
Risk Parameters: Portfolio-level guardrails. See the risk-management skill.
Max concurrent positions: 5
Risk per trade: 2% of portfolio
Daily loss limit: 5% of portfolio
Max drawdown halt: 15% — stop trading, review strategy
Correlated exposure limit: 10% (e.g., meme tokens combined)
Filters: Conditions that prevent entry even if signals fire.
def filters_pass(token: dict, market: dict) -> bool:
"""All filters must pass before entry is allowed."""
volume_ok = token["volume_24h"] > 500_000 # Min $500K volume
liquidity_ok = token["liquidity"] > 100_000 # Min $100K liquidity
age_ok = token["age_days"] > 7 # Not brand new
holders_ok = token["holder_count"] > 500 # Sufficient distribution
regime_ok = market["regime"] != "crisis" # No crisis regime
return all([volume_ok, liquidity_ok, age_ok, holders_ok, regime_ok])
Performance Criteria: When to continue, review, or retire.
Continue: Sharpe > 1.0, PF > 1.5, Win Rate > 40%, MDD < 20%
Review: Any metric degrades 25% from baseline
Retire: Rolling 30-day Sharpe < 0, or 3 consecutive losing months
Identify a market inefficiency and explain why it exists and why it might persist.
Good hypothesis: "New PumpFun tokens that reach 80+ SOL in bonding curve within 10 minutes have a 65% probability of graduating to Raydium, creating a predictable price spike at graduation."
Bad hypothesis: "SOL will go up." (Not specific, not testable, no edge identified.)
Write the full strategy document using the template in references/strategy_template.md. Every field must be filled. If you cannot fill a field, the strategy is not ready.
Test on historical data using vectorbt or equivalent. Requirements:
slippage-modeling skill)Run the strategy in simulation for at least 2 weeks (or 30 trades, whichever is longer).
Trade with minimum viable size (enough to cover fees, small enough to be inconsequential).
If small-live metrics match expectations (within 25% of backtest):
Ongoing performance tracking:
Stop using a strategy when:
Minimum thresholds before a strategy should be traded live:
| Metric | Trend Following | Mean Reversion | Scalping |
|---|---|---|---|
| Min Trades | 100 | 100 | 500 |
| Sharpe (OOS) | > 1.0 | > 1.0 | > 1.5 |
| Profit Factor | > 1.5 | > 1.5 | > 1.3 |
| Max Drawdown | < 20% | < 15% | < 10% |
| Win Rate | > 35% | > 55% | > 55% |
| Avg Win/Avg Loss | > 2.0 | > 1.0 | > 1.0 |
Detailed descriptions of each strategy type are in references/strategy_types.md.
| Skill | Integration |
|---|---|
vectorbt | Backtest strategy definitions programmatically |
pandas-ta | Compute technical indicators for entry/exit signals |
regime-detection | Market regime filters for strategy activation |
exit-strategies | Detailed exit rule implementation |
position-sizing | Position size calculation methods |
risk-management | Portfolio-level risk parameter enforcement |
slippage-modeling | Realistic execution cost estimation |
feature-engineering | ML feature computation from strategy signals |
references/strategy_template.md — Complete copy-paste strategy definition templatereferences/strategy_types.md — Detailed guide to each strategy type with parameters and examplesscripts/define_strategy.py — Interactive strategy definition tool with --demo modescripts/strategy_scorecard.py — Strategy evaluation scorecard with GO/REVIEW/NO-GO recommendationsNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
The English summary is being prepared. Showing the original description.
Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity
The English summary is being prepared. Showing the original description.
Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical price data going back years, exchange volumes, trending tokens, and category filters. Best for macro analysis and long-term historical data.
The English summary is being prepared. Showing the original description.
Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis
The English summary is being prepared. Showing the original description.
Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading
The English summary is being prepared. Showing the original description.
Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation
The English summary is being prepared. Showing the original description.