1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
//! # Short-Term Trading Indicators
//!
//! This module provides indicators optimized for short-term trading with
//! a timeframe of days to weeks, suitable for swing trading approaches.
//!
//! ## Types of Indicators
//!
//! - Swing trading momentum indicators
//! - Short-term trend identification tools
//! - Pattern recognition for multi-day setups
//! - Market regime detection for daily timeframes
use *;
/// Calculate swing strength index
///
/// Measures the strength of price swings to identify
/// potential reversals in short-term trends.
///
/// # Arguments
///
/// * `df` - DataFrame with OHLC price data
/// * `period` - Lookback period for swing calculation
///
/// # Returns
///
/// * `Result<Series, PolarsError>` - Series with swing strength values
/// Detect short-term market regimes
///
/// Identifies whether the market is in a trending, ranging,
/// or transitional regime for short-term trading.
///
/// # Arguments
///
/// * `df` - DataFrame with price data
/// * `atr_period` - Period for ATR calculation (volatility)
/// * `trend_period` - Period for trend calculation
///
/// # Returns
///
/// * `Result<Series, PolarsError>` - Series with regime values (1 = trending, 0 = ranging, -1 = transitional)
/// Calculate dip-buying opportunity score
///
/// Creates a scoring system to identify potential dip-buying
/// opportunities in short-term uptrends.
///
/// # Arguments
///
/// * `df` - DataFrame with price and volume data
/// * `trend_period` - Period for trend identification
/// * `oversold_threshold` - RSI threshold to consider oversold
///
/// # Returns
///
/// * `Result<Series, PolarsError>` - Series with dip-buying scores (0-100)
/// Detect multi-day chart patterns
///
/// Identifies common multi-day chart patterns like flags,
/// pennants, and wedges for short-term trading opportunities.
///
/// # Arguments
///
/// * `df` - DataFrame with OHLC price data
/// * `max_pattern_length` - Maximum length of patterns to detect
/// * `min_pattern_quality` - Minimum quality threshold for pattern detection
///
/// # Returns
///
/// * `Result<DataFrame, PolarsError>` - DataFrame with detected patterns and attributes
/// Calculate average range for swing trading
///
/// # Arguments
///
/// * `df` - DataFrame with OHLC data
/// * `period` - Lookback period for range calculation
/// Find potential swing points using ATR and trend
///
/// # Arguments
///
/// * `df` - DataFrame with OHLC data
/// * `atr_period` - Period for ATR calculation
/// * `trend_period` - Period for trend identification
/// Generate mean reversion signals based on oversold/overbought conditions
///
/// # Arguments
///
/// * `df` - DataFrame with OHLC data
/// * `trend_period` - Period for trend identification
/// * `oversold_threshold` - Threshold to identify oversold conditions
/// Detect chart patterns for swing trading
///
/// # Arguments
///
/// * `df` - DataFrame with OHLC data
/// * `max_pattern_length` - Maximum length of patterns to detect
/// * `min_pattern_quality` - Minimum quality threshold for pattern detection