improve-trading-strategies
npx skills add https://github.com/robonet-tech/skills --skill improve-trading-strategies
Agent 安装分布
Skill 文档
Improve Trading Strategies
Quick Start
This skill provides tools to improve existing strategies through refinement, optimization, and ML enhancement.
Load the tools first:
Use MCPSearch to select: mcp__workbench__refine_strategy
Use MCPSearch to select: mcp__workbench__optimize_strategy
Use MCPSearch to select: mcp__workbench__enhance_with_allora
Quick improvement pattern:
1. Get existing code:
(use browse-robonet-data) get_strategy_code(strategy_name="MyStrategy")
2. Make targeted changes:
refine_strategy(
strategy_name="MyStrategy",
changes_description="Add trailing stop at 1% below peak profit",
mode="new"
)
3. Test improvement:
(use test-trading-strategies) run_backtest(strategy_name="MyStrategy_refined")
When to use this skill:
- Have existing strategy that needs improvement
- Want to add features without rewriting from scratch
- Need to tune parameters for better performance
- Want to integrate ML predictions (Allora Network)
- Cheaper than regenerating with
build-trading-strategies
Available Tools (3)
refine_strategy
Purpose: Make targeted code changes with AI editing
Parameters:
strategy_name(required): Strategy to refine (any version)changes_description(required): Specific changes you wantmode(required): “new” (create new version, safe) or “replace” (overwrite existing)
Returns: Refined strategy code with automatic validation and safety checks
Pricing: Real LLM cost + margin (max $3.00)
- Typical: $0.50-$1.50 depending on change complexity
Execution Time: ~20-30 seconds
Use when:
- Making specific code changes (add indicator, change threshold, fix bug)
- Adding features (trailing stop, new exit condition)
- Cheaper than regenerating with create_strategy ($0.50-$3.00 vs $1-$4.50)
Best practice: Always use mode="new" to preserve original (can compare before/after)
optimize_strategy
Purpose: Tune numeric parameters using backtesting data and AI
Parameters:
strategy_name(required): Strategy to optimizestart_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)symbol(required): Trading pair (e.g., “BTC-USDT”)timeframe(required): Timeframe (1m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d)
Returns: Optimized strategy version with improved parameters + performance comparison (before vs after)
Pricing: Real LLM cost + margin (max $4.00)
- Typical: $2.00-$3.50 (most expensive improvement tool)
Execution Time: ~30-60 seconds
Use when:
- Strategy logic is good but parameters need tuning
- Want AI to search parameter space
- Have sufficient backtest data (6+ months recommended)
Warning: Can lead to overfitting. Use walk-forward validation.
enhance_with_allora
Purpose: Add Allora Network ML price predictions to strategy logic
Parameters:
strategy_name(required): Strategy to enhancesymbol(required): Trading pairtimeframe(required): Timeframestart_date(required): Start date for comparison backtestend_date(required): End date for comparison backtest
Returns: Enhanced strategy version with ML signals integrated + before/after performance comparison
Pricing: Real LLM cost + margin (max $2.50)
- Typical: $1.00-$2.00
Execution Time: ~30-60 seconds
Use when:
- Strategy is profitable but could use ML signals
- Trading BTC, ETH, SOL, or NEAR (Allora coverage)
- Want to combine technical analysis with ML predictions
Note: Requires Allora topics available for your symbol/timeframe (check with browse-robonet-data)
Core Concepts
Iterative Improvement Pattern
Recommended improvement sequence:
1. START: Working strategy (tested, decent performance)
Sharpe: 0.8, Drawdown: 15%, Win rate: 48%
2. REFINE: Fix obvious issues ($0.50-$1.50)
- Add missing stop loss
- Fix indicator parameter typo
- Add position sizing limit
â New Sharpe: 1.1, Drawdown: 12%
3. TEST: Validate improvement
- Compare metrics before/after
- Ensure improvement is real, not noise
4. OPTIMIZE: Tune parameters ($2-$4)
- Search parameter space for RSI threshold
- Find optimal Bollinger Band period
â New Sharpe: 1.4, Drawdown: 10%
5. TEST: Validate optimization
- Test on out-of-sample data
- Check for overfitting
6. ENHANCE: Add ML predictions ($1-$2)
- Integrate Allora Network signals
- Use ML as confirmation filter
â New Sharpe: 1.7, Drawdown: 9%
7. TEST: Final validation
- Compare all metrics end-to-end
- Decide if ready for deployment
TOTAL COST: ~$4-7 (much cheaper than regenerating 3-4 times at $2.50 each = $7.50-$10)
Optimization Best Practices
Avoiding overfitting:
What is overfitting?
- Parameters tuned to past data perform poorly on new data
- Strategy “memorizes” historical noise instead of learning patterns
- Common with excessive optimization
How to avoid:
1. Use sufficient data (6+ months minimum):
optimize_strategy(
strategy_name="MyStrategy",
start_date="2024-01-01",
end_date="2024-12-31", # 12 months
symbol="BTC-USDT",
timeframe="1h"
)
2. Walk-forward validation:
# Train on first 8 months
optimize_strategy(..., start_date="2024-01-01", end_date="2024-08-31")
# Test on last 4 months (use test-trading-strategies)
run_backtest(..., start_date="2024-09-01", end_date="2024-12-31")
# Performance should be similar on test period
# If much worse â overfitted
3. Limit optimization iterations:
- 1st optimization: Often yields 20-30% improvement
- 2nd optimization: Yields 10-15% improvement
- 3rd optimization: Yields <5% improvement (diminishing returns)
- 4th+ optimization: Often makes performance worse (overfitting)
Stop after 2-3 optimization rounds
4. Compare multiple metrics (not just one):
Before optimization: Sharpe 1.0, Drawdown 15%, Win rate 52%
After optimization: Sharpe 1.3, Drawdown 14%, Win rate 54%
â Multiple metrics improved consistently â Good
â Sharpe jumped to 3.0 but drawdown 40% â Overfitted/risky
5. Keep parameter ranges reasonable:
- RSI: 10-20 (not 2-100)
- Moving average: 20-200 (not 1-1000)
- Stop loss: 1-5% (not 0.1-50%)
Allora Network ML Integration
What Allora provides:
- ML-powered price predictions
- Multiple horizons: 5m, 8h, 24h, 1 week
- Assets: BTC, ETH, SOL, NEAR
- Networks: Mainnet (production) + Testnet (experimental)
How to use ML predictions:
Pattern 1: ML as confirmation filter
Original strategy: Buy when RSI < 30
Enhanced strategy: Buy when RSI < 30 AND Allora predicts price increase
â Reduces false signals, improves win rate
Pattern 2: ML as primary signal
Original strategy: Trend following with EMA
Enhanced strategy: Buy when Allora predicts strong upward movement + EMA confirms
â ML catches moves early, EMA confirms trend
Pattern 3: ML for position sizing
Original strategy: Fixed 90% margin position size
Enhanced strategy:
- 95% margin when Allora confidence high
- 85% margin when Allora confidence medium
- 70% margin when Allora confidence low
â Adaptive sizing based on prediction confidence
Before using enhance_with_allora:
1. Check Allora topic availability (use browse-robonet-data):
get_allora_topics()
â Verify your symbol has predictions
2. Match prediction horizon to strategy timeframe:
- 5m scalping strategy â Use 5m predictions
- 1h swing strategy â Use 8h predictions
- 4h daily strategy â Use 24h predictions
3. Test before/after:
- enhance_with_allora automatically runs comparison backtest
- Check improvement metrics
- ML should improve Sharpe by 10-30% (not 200%âthat's unrealistic)
Realistic ML improvement expectations:
- 10-30% Sharpe improvement: Good, realistic
- 30-50% improvement: Excellent (verify it’s real, not overfitting)
- >50% improvement: Suspicious, likely overfit to historical data
- Negative improvement: ML doesn’t help this strategy, remove it
Refinement Modes
mode=”new” (recommended):
refine_strategy(
strategy_name="MyStrategy",
changes_description="Add trailing stop",
mode="new"
)
Creates: MyStrategy_refined
Advantages:
- Preserves original (safe)
- Can compare versions
- Easy to rollback if refinement makes things worse
Use when: Always (unless you’re certain about replacement)
mode=”replace” (destructive):
refine_strategy(
strategy_name="MyStrategy",
changes_description="Fix typo",
mode="replace"
)
Overwrites: MyStrategy (original lost)
Advantages:
- No version clutter
- Direct update
Use when:
- Fixing obvious bugs
- Making trivial changes (typos, formatting)
- You’re certain the change is correct
- You’ve backed up the original code
Warning: Original cannot be recovered. Use sparingly.
Best Practices
Cost Sequencing
Optimize costs by ordering operations from cheap to expensive:
RECOMMENDED ORDER:
1. Refine first ($0.50-$3.00):
- Fix obvious issues
- Add missing features
- Make targeted improvements
- Cheapest, often yields biggest gains
2. Optimize second ($2-$4):
- Tune parameters after logic is solid
- Most expensive improvement tool
- Wait until refinement complete
3. ML enhance third ($1-$2.50):
- Add after base strategy is strong
- ML won't fix fundamentally broken strategy
- Test thoroughly (ML can overfit too)
AVOID THIS ORDER:
1. Optimize first â Tuning parameters on broken logic
2. ML enhance â Adding ML to weak foundation
3. Refine â Should have fixed issues first
Cost difference: $3.50-9.50 (recommended) vs $3.50-9.50 (reversed order)
Outcome quality: Much better with recommended order
Before/After Validation
Always compare metrics after improvement:
BEFORE improvement:
run_backtest(strategy_name="MyStrategy_original", ...)
â Sharpe: 1.0, Drawdown: 15%, Win rate: 50%
IMPROVE:
refine_strategy(...) or optimize_strategy(...) or enhance_with_allora(...)
AFTER improvement:
run_backtest(strategy_name="MyStrategy_refined", ...)
â Sharpe: 1.3, Drawdown: 12%, Win rate: 54%
COMPARE:
- Sharpe improved 30% â
- Drawdown reduced 20% â
- Win rate up 4% â
â Real improvement, keep changes
Red flags (improvement might be overfitting):
- Sharpe improved >100% (doubled)
- Win rate >70% (unrealistic)
- Performance much better on recent data than older data
- Improvement disappears on out-of-sample test
Validation checklist:
- Test on multiple time periods (not just one)
- Compare all metrics (Sharpe, drawdown, win rate, profit factor)
- Check improvement is consistent (not just lucky period)
- Verify on out-of-sample data (walk-forward)
- Improvement is meaningful (>0.2 Sharpe increase)
Specific vs Generic Refinements
Specific refinements work best:
â GOOD (specific):
"Add trailing stop: Once profit exceeds 3%, move stop loss to 1.5% below highest price since entry"
â BAD (generic):
"Make the strategy better"
Specific refinement examples:
- “Change RSI threshold from 30 to 25”
- “Add volume filter: only enter if volume > 1.5Ã 20-period average”
- “Modify stop loss from 2% to 1.5Ã ATR”
- “Add time-based exit: close position after 24 hours regardless of profit/loss”
Generic refinements that don’t work well:
- “Improve performance”
- “Make it more profitable”
- “Optimize everything”
- “Fix all issues”
Testing After Each Change
Iterative test pattern:
1. Baseline:
run_backtest(strategy_name="Original") â Sharpe 1.0
2. Refine:
refine_strategy(changes="Add feature X")
3. Test refinement:
run_backtest(strategy_name="Original_refined") â Sharpe 1.2
Improvement: +0.2 â
4. Optimize:
optimize_strategy(strategy_name="Original_refined")
5. Test optimization:
run_backtest(strategy_name="Original_refined_optimized") â Sharpe 1.5
Improvement: +0.3 â
6. Enhance with ML:
enhance_with_allora(strategy_name="Original_refined_optimized")
7. Test ML enhancement:
run_backtest(strategy_name="Original_refined_optimized_allora") â Sharpe 1.8
Improvement: +0.3 â
CUMULATIVE: 1.0 â 1.8 (80% improvement through iterative testing)
Never skip testing between improvements. Each change should be validated before moving to next.
Common Workflows
Workflow 1: Targeted Refinement
Goal: Fix specific issues or add targeted features
1. Get current code (use browse-robonet-data):
get_strategy_code(strategy_name="MyStrategy")
2. Identify improvement:
"Strategy needs trailing stop to lock in profits"
3. Refine with specific changes:
refine_strategy(
strategy_name="MyStrategy",
changes_description="Add trailing stop: Once profit >3%,
trail stop at 1.5% below highest price",
mode="new"
)
4. Test before/after:
run_backtest(strategy_name="MyStrategy") â Sharpe 1.1
run_backtest(strategy_name="MyStrategy_refined") â Sharpe 1.4
5. Compare:
Improvement: +0.3 Sharpe (27% better) â
Keep refined version
Cost: ~$0.50-$1.50 (much cheaper than regenerating)
Workflow 2: Parameter Optimization
Goal: Tune numeric parameters for better performance
1. Baseline test (use test-trading-strategies):
run_backtest(
strategy_name="RSIMeanReversion_M",
start_date="2024-01-01",
end_date="2024-08-31"
)
â Sharpe: 0.9, Drawdown: 18%
2. Optimize parameters:
optimize_strategy(
strategy_name="RSIMeanReversion_M",
start_date="2024-01-01",
end_date="2024-08-31",
symbol="BTC-USDT",
timeframe="1h"
)
â Creates: RSIMeanReversion_M_optimized
3. Test optimized version:
run_backtest(
strategy_name="RSIMeanReversion_M_optimized",
start_date="2024-09-01", # Out-of-sample!
end_date="2024-12-31"
)
â Sharpe: 1.2, Drawdown: 14%
4. Validate improvement:
- Sharpe improved 33% â
- Drawdown reduced 22% â
- Performed well on out-of-sample data â
â Real improvement, not overfitting
Cost: ~$2-$4
Workflow 3: ML Enhancement
Goal: Integrate Allora predictions to improve performance
1. Check ML availability (use browse-robonet-data):
get_allora_topics()
â Verify BTC has 8h predictions available
2. Baseline strategy performance:
run_backtest(strategy_name="TrendFollower_M") â Sharpe 1.3
3. Enhance with ML:
enhance_with_allora(
strategy_name="TrendFollower_M",
symbol="BTC-USDT",
timeframe="1h",
start_date="2024-01-01",
end_date="2024-12-31"
)
â Automatically tests before/after
â Returns comparison: Base Sharpe 1.3 â Enhanced Sharpe 1.6
4. Review improvement:
+0.3 Sharpe (23% improvement) â
ML is helping, keep enhancement
5. If needed, refine ML integration:
refine_strategy(
strategy_name="TrendFollower_M_allora",
changes="Use ML only as confirmation, not primary signal",
mode="new"
)
Cost: ~$1-$2.50
Workflow 4: Complete Overhaul
Goal: Comprehensive improvement of existing strategy
1. Baseline:
get_latest_backtest_results(strategy_name="Old_Strategy")
â Sharpe: 0.7, Drawdown: 22%, Win rate: 45%
â Needs major improvement
2. Fix critical issues first (REFINE $0.50-$1.50):
refine_strategy(
strategy_name="Old_Strategy",
changes="Fix: Add proper stop loss (missing),
improve position sizing (too aggressive),
add volume filter (too many false signals)",
mode="new"
)
â Test: Sharpe 1.0 (+43% improvement)
3. Tune parameters (OPTIMIZE $2-$4):
optimize_strategy(
strategy_name="Old_Strategy_refined",
...
)
â Test: Sharpe 1.4 (+40% improvement from refined)
4. Add ML enhancement (ENHANCE $1-$2):
enhance_with_allora(
strategy_name="Old_Strategy_refined_optimized",
...
)
â Test: Sharpe 1.7 (+21% improvement from optimized)
5. Final validation:
Compare: 0.7 â 1.7 Sharpe (143% total improvement)
Test on multiple periods
Test on out-of-sample data
â Ready for deployment consideration
TOTAL COST: ~$4-7.50
ALTERNATIVE: Regenerate 3 times with build-trading-strategies â $7.50-$13.50
SAVINGS: $0.50-$6 + better iterative process
Troubleshooting
“Refinement Made Performance Worse”
Issue: Strategy performs worse after refinement
Solutions:
- Good thing you used
mode="new"(original preserved!) - Revert to original strategy
- Analyze what went wrong (was change too aggressive?)
- Try smaller, more targeted change
“Optimization Yields Unrealistic Results”
Issue: Optimized strategy has Sharpe >3.0, win rate >80%
Solutions:
- Likely overfitted to historical data
- Test on out-of-sample period (different date range)
- If performance drops significantly â overfitted, discard
- Use less aggressive optimization (shorter period, fewer parameters)
“ML Enhancement Doesn’t Help”
Issue: Sharpe same or worse after enhance_with_allora
Solutions:
- ML doesn’t help every strategy (technical analysis may be sufficient)
- Strategy timeframe may not match prediction horizon
- Check if Allora predictions align with strategy logic
- Remove ML enhancement, stick with base strategy
“Successive Optimizations Making Things Worse”
Issue: 1st optimization helped, 2nd optimization helped, 3rd made performance worse
Solutions:
- Diminishing returns: You’ve hit optimization limits
- Stop optimizing (keep version before 3rd optimization)
- More optimization = more overfitting risk
- General rule: Stop after 2-3 optimization rounds
Next Steps
After improving strategies:
Test improvements (CRITICAL):
- Use
test-trading-strategiesskill to validate - Cost: $0.001 per backtest
- Test on multiple time periods
- Compare all metrics (not just Sharpe)
Deploy improved strategies:
- Use
deploy-live-tradingskill (HIGH RISK) - Cost: $0.50 deployment fee
- Only after thorough testing shows consistent improvement
- Start small, monitor closely
Further improvement:
- Can iterate: refine â test â optimize â test â enhance â test
- Diminishing returns after 2-3 improvement cycles
- Know when to stop (don’t over-optimize)
Summary
This skill provides iterative strategy improvement tools:
- 3 tools: refine ($0.50-$3), optimize ($2-$4), enhance with ML ($1-$2.50)
- Cost: $0.50-$4 per operation (cheaper than regenerating)
- Execution: 20-60 seconds depending on tool
Core principle: Improve iteratively with testing between each change. Small, targeted improvements compound better than big, sweeping changes.
Recommended sequence: Refine (cheap, fix issues) â Optimize (expensive, tune parameters) â Enhance with ML (add predictions). Test after each step.
Critical warning: Optimization can lead to overfitting. Use walk-forward validation, test on out-of-sample data, and stop after 2-3 optimization rounds. If improvement looks too good to be true (>100% Sharpe increase), it probably is.
Best practice: Always use mode="new" for refinements to preserve originals. Test before/after on multiple time periods. Stop optimizing when improvements become marginal or negative.