BTS: BackTest Strategy
BTS is a Rust library designed for backtesting trading strategies on candlestick data. It enables testing technical indicators, custom strategies, and simulating trading performance on historical or generated data.
Key Features
- Technical Indicators: Uses with popular indicators (Impulse MACD, Parabolic SAR, VWAP, etc.) and allows easy addition of new ones.
- Backtesting: Simulates trading strategies on historical or generated data.
- Market Engine: Processes candles one by one to test strategies under realistic conditions.
- Performance Metrics: Calculates P&L (Profit & Loss), drawdown, Sharpe ratio, and more.
- Flexibility: Compatible with the
tacrate for seamless integration with other indicators. - Order & Position Management: Supports market orders, limit orders, take-profit, stop-loss, and trailing stops.
Core Concepts
Candle
Represents a candlestick with OHLCV data (Open, High, Low, Close, Volume). Used as the basic unit for market data.
Order
Represents a trading order (buy or sell) with a specific type (market, limit, etc.). Orders can be placed and executed based on market conditions.
Position
Represents an open market position with exit rules (take-profit, stop-loss, trailing stop). Positions are managed by the backtesting engine.
Event
Records backtest events (order/position additions/removals) for detailed tracking.
Usage Example
use *;
// Candlestick data
let data = vec!;
// Initialize backtest
let mut bts = new.unwrap;
// Custom strategy
bts.run.unwrap;
// Results
println!;
println!;
println!;
Performance Metrics
The backtesting engine automatically calculates the following metrics:
- Profit & Loss (P&L): Total profits or losses.
- Drawdown: Maximum capital decline.
- Sharpe Ratio: Risk-adjusted return measure.
- Win Rate: Percentage of winning trades.
Integration with Other Crates
BTS is compatible with the ta crate for technical analysis,
allowing you to easily integrate additional indicators.
Advanced Features
- Custom Strategies: Implement your own trading logic.
- Event Tracking: Detailed logging of all trading events.
- Risk Management: Built-in support for stop-loss and take-profit rules.
- Performance Optimization: Uses efficient data structures for order/position management.
- Parameters Optimization: Computes the best parameters (indicators, RR, etc...) for your strategy.
Error Handling
BTS provides comprehensive error handling for:
- Insufficient funds
- Invalid orders/positions
- Market data errors
- Configuration issues
Getting Started
Add BTS to your Cargo.toml:
[]
= "0.7"
Then import and use it in your project:
use *;
Contributing
See Contributing file to contribute to this project.
License
This project is licensed under the MIT License.
Generated by Mistral.ai