ta_lib_in_rust/strategy/
mod.rs

1//! # Trading Strategies
2//!
3//! This module provides a collection of trading strategies that combine multiple technical indicators
4//! for making trading decisions.
5//!
6//! ## Available Strategy Types
7//!
8//! - [`daily`](daily/index.html): Strategies optimized for daily timeframe analysis
9//! - [`minute`](minute/index.html): Strategies optimized for minute timeframe (intraday) analysis
10//!
11//! Each strategy module typically provides:
12//!
13//! - A `StrategyParams` struct for configuring the strategy parameters
14//! - A `run_strategy` function that applies the strategy to price data
15//! - A `calculate_performance` function to evaluate the strategy's performance
16//!
17//! ## Example Usage
18//!
19//! ```rust,no_run
20//! use polars::prelude::*;
21//! use ta_lib_in_rust::strategy::{run_strategy_1, StrategyParams1};
22//!
23//! fn main() -> Result<(), PolarsError> {
24//!     // Create or load a DataFrame with OHLCV data
25//!     let df = DataFrame::default(); // Replace with actual data loading
26//!     
27//!     // Use default parameters for strategy 1
28//!     let params = StrategyParams1::default();
29//!     
30//!     // Run the strategy
31//!     let signals = run_strategy_1(&df, &params)?;
32//!     
33//!     // Analyze the signals
34//!     let close_prices = df.column("close")?;
35//!     let (final_value, return_pct, num_trades, win_rate, max_drawdown, profit_factor) =
36//!         ta_lib_in_rust::strategy::daily::multi_indicator_daily_1::calculate_performance(
37//!             close_prices,
38//!             &signals.buy_signals,
39//!             &signals.sell_signals,
40//!             10000.0 // Initial capital
41//!         );
42//!     
43//!     println!("Strategy return: {:.2}%", return_pct);
44//!     println!("Win rate: {:.2}%", win_rate);
45//!     
46//!     Ok(())
47//! }
48//! ```
49
50pub mod daily;
51pub mod minute;
52
53// Re-export daily strategies
54pub use daily::multi_indicator_daily_1::{
55    run_strategy as run_strategy_1, StrategyParams as StrategyParams1,
56};
57pub use daily::multi_indicator_daily_2::{
58    run_strategy as run_strategy_222, StrategyParams as StrategyParams222,
59};
60pub use daily::multi_indicator_daily_3::{
61    run_strategy as run_strategy_3, StrategyParams as StrategyParams3,
62};
63pub use daily::multi_indicator_daily_4::{
64    run_strategy as run_strategy_4, StrategyParams as StrategyParams4,
65};
66
67// Re-export minute strategies with shorter names for direct access
68pub use minute::enhanced_minute_strategy as enhanced_minute;
69pub use minute::multi_indicator_minute_1 as minute_1;
70pub use minute::multi_indicator_minute_2 as minute_2;
71pub use minute::multi_indicator_minute_3 as minute_3;
72pub use minute::multi_indicator_minute_4 as minute_4;