[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F7KG7B0RTZB81PHV7EN33C":3,"skill-same:01M6F7KG7B0RTZB81PHV7EN33C":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6F7KG7B0RTZB81PHV7EN33C","backtesting-trading-strategies",null,"Backtest crypto and traditional trading strategies against historical data.\nCalculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves,\nand optimizes strategy parameters. Use when user wants to test a trading strategy,\nvalidate signals, or compare approaches.\nTrigger with phrases like \"backtest strategy\", \"test trading strategy\", \"historical performance\",\n\"simulate trades\", \"optimize parameters\", or \"validate signals\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fbacktesting-trading-strategies\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"strategies","backtesting","backtesting trading strategies","trading","equity","testing","trigger","io","signals","optimize","max","edit","write","read","Bash","data","metrics","code","performance","openclaw","2026-11-10 10:12:30",false,"---\nname: backtesting-trading-strategies\ndescription: |\n  Backtest crypto and traditional trading strategies against historical data.\n  Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves,\n  and optimizes strategy parameters. Use when user wants to test a trading strategy,\n  validate signals, or compare approaches.\n  Trigger with phrases like \"backtest strategy\", \"test trading strategy\", \"historical performance\",\n  \"simulate trades\", \"optimize parameters\", or \"validate signals\".\nallowed-tools: Read, Write, Edit, Grep, Glob, Bash(python:*)\nversion: 2.0.0\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\nlicense: MIT\ncompatible-with: claude-code, codex, openclaw\ntags: [crypto, testing, performance]\n\n---\n# Backtesting Trading Strategies\n\n## Overview\n\nValidate trading strategies against historical data before risking real capital. This skill provides a complete backtesting framework with 8 built-in strategies, comprehensive performance metrics, and parameter optimization.\n\n**Key Features:**\n- 8 pre-built trading strategies (SMA, EMA, RSI, MACD, Bollinger, Breakout, Mean Reversion, Momentum)\n- Full performance metrics (Sharpe, Sortino, Calmar, VaR, max drawdown)\n- Parameter grid search optimization\n- Equity curve visualization\n- Trade-by-trade analysis\n\n## Prerequisites\n\nInstall required dependencies:\n\n```bash\nset -euo pipefail\npip install pandas numpy yfinance matplotlib\n```\n\nOptional for advanced features:\n```bash\nset -euo pipefail\npip install ta-lib scipy scikit-learn\n```\n\n## Instructions\n\n1. Fetch historical data (cached to `${CLAUDE_SKILL_DIR}\u002Fdata\u002F` for reuse):\n   ```bash\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Ffetch_data.py --symbol BTC-USD --period 2y --interval 1d\n   ```\n2. Run a backtest with default or custom parameters:\n   ```bash\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fbacktest.py --strategy sma_crossover --symbol BTC-USD --period 1y\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fbacktest.py \\\n     --strategy rsi_reversal \\\n     --symbol ETH-USD \\\n     --period 1y \\\n     --capital 10000 \\  # 10000: 10 seconds in ms\n     --params '{\"period\": 14, \"overbought\": 70, \"oversold\": 30}'\n   ```\n3. Analyze results saved to `${CLAUDE_SKILL_DIR}\u002Freports\u002F` -- includes `*_summary.txt` (performance metrics), `*_trades.csv` (trade log), `*_equity.csv` (equity curve data), and `*_chart.png` (visual equity curve).\n4. Optimize parameters via grid search to find the best combination:\n   ```bash\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Foptimize.py \\\n     --strategy sma_crossover \\\n     --symbol BTC-USD \\\n     --period 1y \\\n     --param-grid '{\"fast_period\": [10, 20, 30], \"slow_period\": [50, 100, 200]}'  # HTTP 200 OK\n   ```\n\n## Output\n\n### Performance Metrics\n\n| Metric | Description |\n|--------|-------------|\n| Total Return | Overall percentage gain\u002Floss |\n| CAGR | Compound annual growth rate |\n| Sharpe Ratio | Risk-adjusted return (target: >1.5) |\n| Sortino Ratio | Downside risk-adjusted return |\n| Calmar Ratio | Return divided by max drawdown |\n\n### Risk Metrics\n\n| Metric | Description |\n|--------|-------------|\n| Max Drawdown | Largest peak-to-trough decline |\n| VaR (95%) | Value at Risk at 95% confidence |\n| CVaR (95%) | Expected loss beyond VaR |\n| Volatility | Annualized standard deviation |\n\n### Trade Statistics\n\n| Metric | Description |\n|--------|-------------|\n| Total Trades | Number of round-trip trades |\n| Win Rate | Percentage of profitable trades |\n| Profit Factor | Gross profit divided by gross loss |\n| Expectancy | Expected value per trade |\n\n### Example Output\n\n```\n================================================================================\n                    BACKTEST RESULTS: SMA CROSSOVER\n                    BTC-USD | [start_date] to [end_date]\n================================================================================\n PERFORMANCE                          | RISK\n Total Return:        +47.32%         | Max Drawdown:      -18.45%\n CAGR:                +47.32%         | VaR (95%):         -2.34%\n Sharpe Ratio:        1.87            | Volatility:        42.1%\n Sortino Ratio:       2.41            | Ulcer Index:       8.2\n--------------------------------------------------------------------------------\n TRADE STATISTICS\n Total Trades:        24              | Profit Factor:     2.34\n Win Rate:            58.3%           | Expectancy:        $197.17\n Avg Win:             $892.45         | Max Consec. Losses: 3\n================================================================================\n```\n\n## Supported Strategies\n\n| Strategy | Description | Key Parameters |\n|----------|-------------|----------------|\n| `sma_crossover` | Simple moving average crossover | `fast_period`, `slow_period` |\n| `ema_crossover` | Exponential MA crossover | `fast_period`, `slow_period` |\n| `rsi_reversal` | RSI overbought\u002Foversold | `period`, `overbought`, `oversold` |\n| `macd` | MACD signal line crossover | `fast`, `slow`, `signal` |\n| `bollinger_bands` | Mean reversion on bands | `period`, `std_dev` |\n| `breakout` | Price breakout from range | `lookback`, `threshold` |\n| `mean_reversion` | Return to moving average | `period`, `z_threshold` |\n| `momentum` | Rate of change momentum | `period`, `threshold` |\n\n## Configuration\n\nCreate `${CLAUDE_SKILL_DIR}\u002Fconfig\u002Fsettings.yaml`:\n\n```yaml\ndata:\n  provider: yfinance\n  cache_dir: .\u002Fdata\n\nbacktest:\n  default_capital: 10000  # 10000: 10 seconds in ms\n  commission: 0.001     # 0.1% per trade\n  slippage: 0.0005      # 0.05% slippage\n\nrisk:\n  max_position_size: 0.95\n  stop_loss: null       # Optional fixed stop loss\n  take_profit: null     # Optional fixed take profit\n```\n\n## Error Handling\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Ferrors.md` for common issues and solutions.\n\n## Examples\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexamples.md` for detailed usage examples including:\n- Multi-asset comparison\n- Walk-forward analysis\n- Parameter optimization workflows\n\n## Files\n\n| File | Purpose |\n|------|---------|\n| `scripts\u002Fbacktest.py` | Main backtesting engine |\n| `scripts\u002Ffetch_data.py` | Historical data fetcher |\n| `scripts\u002Fstrategies.py` | Strategy definitions |\n| `scripts\u002Fmetrics.py` | Performance calculations |\n| `scripts\u002Foptimize.py` | Parameter optimization |\n\n## Resources\n\n- [yfinance](https:\u002F\u002Fgithub.com\u002Franaroussi\u002Fyfinance) - Yahoo Finance data\n- [TA-Lib](https:\u002F\u002Fta-lib.org\u002F) - Technical analysis library\n- [QuantStats](https:\u002F\u002Fgithub.com\u002Franaroussi\u002Fquantstats) - Portfolio analytics\n","# Backtesting Trading Strategies\n\n## Overview\n\nValidate trading strategies against historical data before risking real capital. This skill provides a complete backtesting framework with 8 built-in strategies, comprehensive performance metrics, and parameter optimization.\n\n**Key Features:**\n- 8 pre-built trading strategies (SMA, EMA, RSI, MACD, Bollinger, Breakout, Mean Reversion, Momentum)\n- Full performance metrics (Sharpe, Sortino, Calmar, VaR, max drawdown)\n- Parameter grid search optimization\n- Equity curve visualization\n- Trade-by-trade analysis\n\n## Prerequisites\n\nInstall required dependencies:\n\n```bash\nset -euo pipefail\npip install pandas numpy yfinance matplotlib\n```\n\nOptional for advanced features:\n```bash\nset -euo pipefail\npip install ta-lib scipy scikit-learn\n```\n\n## Instructions\n\n1. Fetch historical data (cached to `${CLAUDE_SKILL_DIR}\u002Fdata\u002F` for reuse):\n   ```bash\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Ffetch_data.py --symbol BTC-USD --period 2y --interval 1d\n   ```\n2. Run a backtest with default or custom parameters:\n   ```bash\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fbacktest.py --strategy sma_crossover --symbol BTC-USD --period 1y\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fbacktest.py \\\n     --strategy rsi_reversal \\\n     --symbol ETH-USD \\\n     --period 1y \\\n     --capital 10000 \\  # 10000: 10 seconds in ms\n     --params '{\"period\": 14, \"overbought\": 70, \"oversold\": 30}'\n   ```\n3. Analyze results saved to `${CLAUDE_SKILL_DIR}\u002Freports\u002F` -- includes `*_summary.txt` (performance metrics), `*_trades.csv` (trade log), `*_equity.csv` (equity curve data), and `*_chart.png` (visual equity curve).\n4. Optimize parameters via grid search to find the best combination:\n   ```bash\n   python ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Foptimize.py \\\n     --strategy sma_crossover \\\n     --symbol BTC-USD \\\n     --period 1y \\\n     --param-grid '{\"fast_period\": [10, 20, 30], \"slow_period\": [50, 100, 200]}'  # HTTP 200 OK\n   ```\n\n## Output\n\n### Performance Metrics\n\n| Metric | Description |\n|--------|-------------|\n| Total Return | Overall percentage gain\u002Floss |\n| CAGR | Compound annual growth rate |\n| Sharpe Ratio | Risk-adjusted return (target: >1.5) |\n| Sortino Ratio | Downside risk-adjusted return |\n| Calmar Ratio | Return divided by max drawdown |\n\n### Risk Metrics\n\n| Metric | Description |\n|--------|-------------|\n| Max Drawdown | Largest peak-to-trough decline |\n| VaR (95%) | Value at Risk at 95% confidence |\n| CVaR (95%) | Expected loss beyond VaR |\n| Volatility | Annualized standard deviation |\n\n### Trade Statistics\n\n| Metric | Description |\n|--------|-------------|\n| Total Trades | Number of round-trip trades |\n| Win Rate | Percentage of profitable trades |\n| Profit Factor | Gross profit divided by gross loss |\n| Expectancy | Expected value per trade |\n\n### Example Output\n\n```\n================================================================================\n                    BACKTEST RESULTS: SMA CROSSOVER\n                    BTC-USD | [start_date] to [end_date]\n================================================================================\n PERFORMANCE                          | RISK\n Total Return:        +47.32%         | Max Drawdown:      -18.45%\n CAGR:                +47.32%         | VaR (95%):         -2.34%\n Sharpe Ratio:        1.87            | Volatility:        42.1%\n Sortino Ratio:       2.41            | Ulcer Index:       8.2\n--------------------------------------------------------------------------------\n TRADE STATISTICS\n Total Trades:        24              | Profit Factor:     2.34\n Win Rate:            58.3%           | Expectancy:        $197.17\n Avg Win:             $892.45         | Max Consec. Losses: 3\n================================================================================\n```\n\n## Supported Strategies\n\n| Strategy | Description | Key Parameters |\n|----------|-------------|----------------|\n| `sma_crossover` | Simple moving average crossover | `fast_period`, `slow_period` |\n| `ema_crossover` | Exponential MA crossover | `fast_period`, `slow_period` |\n| `rsi_reversal` | RSI overbought\u002Foversold | `period`, `overbought`, `oversold` |\n| `macd` | MACD signal line crossover | `fast`, `slow`, `signal` |\n| `bollinger_bands` | Mean reversion on bands | `period`, `std_dev` |\n| `breakout` | Price breakout from range | `lookback`, `threshold` |\n| `mean_reversion` | Return to moving average | `period`, `z_threshold` |\n| `momentum` | Rate of change momentum | `period`, `threshold` |\n\n## Configuration\n\nCreate `${CLAUDE_SKILL_DIR}\u002Fconfig\u002Fsettings.yaml`:\n\n```yaml\ndata:\n  provider: yfinance\n  cache_dir: .\u002Fdata\n\nbacktest:\n  default_capital: 10000  # 10000: 10 seconds in ms\n  commission: 0.001     # 0.1% per trade\n  slippage: 0.0005      # 0.05% slippage\n\nrisk:\n  max_position_size: 0.95\n  stop_loss: null       # Optional fixed stop loss\n  take_profit: null     # Optional fixed take profit\n```\n\n## Error Handling\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Ferrors.md` for common issues and solutions.\n\n## Examples\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexamples.md` for detailed usage examples including:\n- Multi-asset comparison\n- Walk-forward analysis\n- Parameter optimization workflows\n\n## Files\n\n| File | Purpose |\n|------|---------|\n| `scripts\u002Fbacktest.py` | Main backtesting engine |\n| `scripts\u002Ffetch_data.py` | Historical data fetcher |\n| `scripts\u002Fstrategies.py` | Strategy definitions |\n| `scripts\u002Fmetrics.py` | Performance calculations |\n| `scripts\u002Foptimize.py` | Parameter optimization |\n\n## Resources\n\n- [yfinance](https:\u002F\u002Fgithub.com\u002Franaroussi\u002Fyfinance) - Yahoo Finance data\n- [TA-Lib](https:\u002F\u002Fta-lib.org\u002F) - Technical analysis library\n- [QuantStats](https:\u002F\u002Fgithub.com\u002Franaroussi\u002Fquantstats) - Portfolio analytics\n",{"name":5,"tags":49,"author":51,"license":15,"version":52,"description":53,"allowed-tools":54,"compatible-with":55},[50,29,42],"crypto","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","2.0.0","Backtest crypto and traditional trading strategies against historical data.\nCalculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves,\nand optimizes strategy parameters. Use when user wants to test a trading strategy,\nvalidate signals, or compare approaches.\nTrigger with phrases like \"backtest strategy\", \"test trading strategy\", \"historical performance\",\n\"simulate trades\", \"optimize parameters\", or \"validate signals\".\n","Read, Write, Edit, Grep, Glob, Bash(python:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fbacktesting-trading-strategies",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill backtesting-trading-strategies",{"tool":71,"command":72},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill backtesting-trading-strategies",{"tool":74,"command":75},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill backtesting-trading-strategies","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fbacktesting-trading-strategies\u002FSKILL.md",true,[],[80,92,102,111,117,124],{"skillNo":81,"name":82,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":88,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[89,90,91],"model","model hierarchy","model hierarchy skill",{"skillNo":93,"name":94,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":98,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[97],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[99,100,101],"MCP","zoom","zoom mcp",{"skillNo":103,"name":104,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[108,109,110,100],"sdk","zoom apps sdk","apps",{"skillNo":112,"name":113,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[113],{"skillNo":118,"name":119,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[122],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[119],{"skillNo":125,"name":126,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[126]]