Technical Analysis
Overviewโ
The technical analysis module processes raw market data through multiple analytical lenses to identify high-probability trading setups within the 30-minute hold constraint.
Analysis Categoriesโ
1. Trend Indicatorsโ
| Indicator | Parameters | Signal |
|---|---|---|
| EMA Cross | 9/21 periods | Bullish/Bearish cross |
| MACD | 12/26/9 | Histogram divergence |
| ADX | 14 periods | Trend strength > 25 |
| Parabolic SAR | 0.02/0.2 | Trend reversal dots |
2. Momentum Indicatorsโ
| Indicator | Parameters | Signal |
|---|---|---|
| RSI | 14 periods | Oversold < 30, Overbought > 70 |
| Stochastic | 14/3/3 | %K/%D crossover |
| CCI | 20 periods | Extreme readings ยฑ200 |
| Williams %R | 14 periods | Reversal zones |
3. Volatility Indicatorsโ
| Indicator | Parameters | Signal |
|---|---|---|
| Bollinger Bands | 20/2ฯ | Band squeeze/expansion |
| ATR | 14 periods | Position sizing, stop distance |
| Keltner Channels | 20/1.5 | Breakout confirmation |
4. Volume Analysisโ
| Indicator | Parameters | Signal |
|---|---|---|
| VWAP | Session | Price vs fair value |
| OBV | Cumulative | Divergence from price |
| Volume Profile | Session | Key levels, POC |
Pattern Recognitionโ
Candlestick Patterns (1-5 bar)โ
- Reversal: Hammer, Shooting Star, Engulfing, Morning/Evening Star
- Continuation: Three White Soldiers, Rising/Falling Three Methods
- Indecision: Doji, Spinning Top, Harami
Chart Patterns (Multi-bar)โ
- Double Top/Bottom
- Head & Shoulders
- Ascending/Descending Triangles
- Bull/Bear Flags
- Wedges
Confluence Scoringโ
Signals are scored based on confluence โ multiple indicators agreeing:
def calculate_confluence_score(signals: list[IndicatorSignal]) -> float:
"""
Score 0.0 - 1.0 based on how many indicators agree.
Weights:
- Trend alignment: 0.30
- Momentum confirmation: 0.25
- Volume confirmation: 0.20
- Pattern match: 0.15
- Key level proximity: 0.10
"""
weights = {
'trend': 0.30,
'momentum': 0.25,
'volume': 0.20,
'pattern': 0.15,
'level': 0.10
}
score = sum(
weights[s.category] * s.strength
for s in signals
if s.direction == consensus_direction(signals)
)
return min(score, 1.0)
Minimum confluence threshold for signal generation: 0.65
Timeframe Analysisโ
Given the 30-minute max hold constraint:
| Timeframe | Purpose |
|---|---|
| 1-minute | Entry timing, micro-structure |
| 5-minute | Primary signal generation |
| 15-minute | Trend context, S/R levels |
| 1-hour | Bias direction (trend filter) |
Backtesting Requirementsโ
- Minimum 30 days historical data
- Walk-forward optimization
- Out-of-sample validation
- Maximum drawdown tracking
- Sharpe ratio > 1.5 target