Jump to content

Alpha Research1

From PlusEV Wiki Page
Revision as of 05:30, 6 January 2026 by 152.57.143.243 (talk) (Created page with "= Multi-Layer Confluence Strategy (MLC) = == Systematic Intraday Trading System == === MCX Crude Oil Futures === ---- = PART 1: STRATEGY OVERVIEW = == What Is This Strategy? == '''Multi-Layer Confluence (MLC)''' is a systematic intraday trading strategy that requires multiple analytical layers to align before taking a trade. Think of it as a '''layered cake''' - each layer must be present for a valid setup. == The Layered Architecture (Read Top-Down) == <pre> ┌...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Multi-Layer Confluence Strategy (MLC)

Systematic Intraday Trading System

MCX Crude Oil Futures


PART 1: STRATEGY OVERVIEW

What Is This Strategy?

Multi-Layer Confluence (MLC) is a systematic intraday trading strategy that requires multiple analytical layers to align before taking a trade. Think of it as a layered cake - each layer must be present for a valid setup.

The Layered Architecture (Read Top-Down)

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   LAYER 1: MULTI-TIMEFRAME ANALYSIS  ◄── THE FOUNDATION    │
│   5 timeframes analyzed for trend alignment                 │
│   Daily → 4H → 1H → 15M → 5M                               │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   LAYER 2: MARKET STATE ANALYSIS                           │  ← Context
│   7 algorithms: Railroad, Creeper, Phase, BOS, etc.         │
│   Calculates penalties and bonuses                          │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   LAYER 3: SETUP QUALITY GRADING                           │  ← Scoring
│   5-factor weighted scoring → Assigns grade A+ to F         │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   LAYER 4: HARD FILTERS  ◄── GATE (Pass/Fail)              │
│   • Direction: MA21 slope must match trade direction        │
│   • Grade: D/F grades blocked (A+/A/B/C can trade)          │
│   • Hours: Block hours 9, 22, 23                            │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   LAYER 5: ENTRY TECHNIQUE                                 │  ← Final trigger
│   Price must be near 21-period MA (±25 points)              │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Key Insight: A trade only happens when ALL layers align. MTF Analysis is the foundation - without trend alignment across timeframes, nothing else matters.

Instrument Details

Parameter Value
Instrument MCX Crude Oil Futures
Lot Size 100 barrels
Tick Value 1 point = Rs 100 per lot
Market Hours 9:00 AM - 11:30 PM IST
Strategy Hours 10:00 AM - 9:59 PM IST (blocks hours 9, 22, 23)

Backtest Results

Metric Value
Period 19 months
Total Trades 7,534
Win Rate 57.6%
Profit Factor 1.20
Initial Capital Rs 1.00 Lakhs
Final Value Rs 26.48 Lakhs
Total Return 2,548%
Total Costs Rs 5.93 Lakhs (brokerage + taxes)
Avg Holding Period 2.43 hours

Trade Distribution

Category Count Percentage
By Setup Grade
A+ Grade 3,457 45.9%
A Grade 551 7.3%
C Grade 3,526 46.8%
By Direction
SHORT 6,024 80.0%
LONG 1,510 20.0%
By Exit Reason
Stop (including trailing) 5,444 72.3%
Target 1,716 22.8%
Timeout (end of day) 374 5.0%

PART 2: THE EDGE (Why This Works)

Core Philosophy

The edge comes from requiring multiple independent confirmations before trading. Each layer filters out bad trades:

Layer What It Filters Out
1. MTF Analysis Counter-trend trades, choppy markets
2. Market State Dangerous conditions (creeper moves, institutional fights)
3. Quality Grading Scores the setup, adjusts position size
4. Hard Filters Wrong direction, very low grades (D/F), blocked hours
5. Entry Technique Chasing price far from value (MA21)

The Math

If each layer has 70% accuracy independently:

  • Single layer: 70% edge
  • 2 layers: 70% × 70% = 49% of trades pass, but higher quality
  • 5 layers: Only the best setups survive all filters

Result: Fewer trades, but each trade has multiple confluences supporting it.


PART 3: LAYER 1 - MULTI-TIMEFRAME ANALYSIS (The Foundation)

THIS IS THE FOUNDATION - Everything else builds on top of MTF alignment. If timeframes disagree, we don't trade.

The 5 Timeframes

Timeframe Role Weight
Daily (1D) Overall market bias Highest
4-Hour (4H) Primary trend direction High
1-Hour (1H) Trend confirmation Medium
15-Minute (15M) Entry timing context Lower
5-Minute (5M) Execution timeframe Lowest

What We Analyze Per Timeframe

For each of the 5 timeframes, the system calculates:

Analysis Description Source
MA21 Value 21-period Moving Average trend_analysis_core.py
MA21 Slope Rising/Flat/Declining trend_analysis_core.py
MA200 Value 200-period Moving Average trend_analysis_core.py
Price vs MA21 Above/Below/At the MA trend_analysis_core.py
Trend Direction UP/DOWN/NEUTRAL trend_analysis_core.py

MTF Alignment Score

For each timeframe:
  1. Determine trend direction (UP/DOWN/NEUTRAL)
  2. Check if aligned with trade direction
  3. Apply timeframe weight
  4. Sum weighted alignment scores

Example (LONG trade):
  Daily:  UP (aligned)     × 1.00 weight = 1.00
  4H:     UP (aligned)     × 0.86 weight = 0.86
  1H:     UP (aligned)     × 0.72 weight = 0.72
  15M:    DOWN (not aligned) × 0.58 weight = 0.00
  5M:     UP (aligned)     × 0.44 weight = 0.44
  ─────────────────────────────────────────────
  Total MTF Score: 3.02 / 3.60 = 83.9% aligned

Why MTF Matters

Scenario MTF Alignment Action
All 5 timeframes aligned 100% High conviction trade
4 of 5 aligned ~85% Trade with normal size
3 of 5 aligned ~70% Proceed with caution
2 or fewer aligned <60% Reduced quality score

PART 4: LAYER 2 - MARKET STATE ANALYSIS

The 7 Market State Algorithms

The system runs 7 independent algorithms to understand current market context:

# Algorithm What It Detects Impact
1 Railroad Tracks Strong momentum bars in sequence +15% bonus
2 Creeper Move Slow grinding trend (dangerous) -50% penalty
3 Two-Day Trend Trend visible on Daily for 2+ days Required for A+
4 Phase Analysis Accumulation/Distribution/Markup/Markdown Phase mismatch = -25%
5 Institutional Activity Big player accumulation/distribution Fight = 0.7× multiplier
6 Break of Structure (BOS) Key level breaks Affects stop placement
7 Volatility Regime High/Normal/Low volatility Adjusts expectations

Penalty System

Condition Penalty Rationale
Creeper Move Detected -50 points Slow trends often reverse suddenly
MA Struggle (price fighting MA) -30 points Indecision, likely to chop
No Two-Day Trend -30 points Trend not established enough
Phase Mismatch -25 points Trading against market phase
No Key Level Nearby -50 points No technical confluence
Institutional Fight ×0.70 multiplier Big players fighting each other

Bonus System

Condition Bonus Rationale
Railroad Tracks +15 points Strong momentum confirmation
At Key Level +10 points Technical confluence present
Clean Entry Setup +10 points Clear technical pattern

Probability Zone Analysis

Source: trade_philosophy.pdf concepts implemented in probability_zone_analysis.py

The Halves & Thirds Rule

Price position within the recent range determines continuation probability:

Zone Position Continuation Probability Action
Top Third >66.7% of range 80% likely to continue higher Favor LONG
Top Half >50% of range 65% continuation Moderate LONG bias
Bottom Half <50% of range 35% continuation higher Moderate SHORT bias
Bottom Third <33.3% of range 15% continuation (85% reversal) Favor SHORT

Three-Finger Spread

Measures separation between Price, 21 MA, and 200 MA:

Three-Finger Spread Detection:
  - Large spread between Price/21MA/200MA
  - Indicates profit-taking pressure imminent
  - Minimum spread threshold: 2% of price

Structure Types:
  UPTREND:    Price > 21 MA > 200 MA (bullish stack)
  DOWNTREND:  Price < 21 MA < 200 MA (bearish stack)
  SIDEWAYS:   No clear MA separation

Crash Bar Detection

Identifies structural breaks via unusually large bars:

Parameter Value Meaning
crash_bar_multiplier 2.0 Bar must be 2× average size
crash_bar_lookback 10 bars Average calculated over 10 bars
crash_bar_close_threshold 30% Close within 30% of bar extreme

Trading Rule: After crash bar, short the bounce back to MA21.

Pullback Classification

Type Characteristics Action
Healthy Pullback 45° drift, holds above halfway point Good entry opportunity
Collapse Vertical drop (>60% retracement) Avoid entry, wait for structure
Bounce Recovery after crash bar Short opportunity

Signal Filtering

Probability zones filter signals:

<source lang="python">

  1. Source: signal_generation_trade_management.py
  2. Zone-based filtering (soft filter - affects score, doesn't block)

if zone_position < 33.3%: # Bottom third

   # Block LONG signals (only 15% chance of continuation)
   # Allow SHORT signals

if zone_position > 66.7%: # Top third

   # Allow LONG signals (80% continuation)
   # Block SHORT signals

</source>

Note: Color Change confirmation (color_change.pdf) is implemented but DISABLED in current backtest (enable_color_change_filter = False) as it was too restrictive.


PART 5: LAYER 3 - SETUP QUALITY GRADING

The 5-Factor Scoring System

Every potential trade is scored on 5 factors:

Factor Weight What It Measures
Timeframe Alignment 30% How well all 5 timeframes agree
Trend Strength 20% Quality of the trend (Railroad vs Creeper)
Key Level Proximity 20% Is entry near significant S/R level?
Entry Quality 15% How clean is the entry technique?
Risk:Reward 15% Is the R:R ratio favorable?

Note: Weights sum to 100%. Timeframe Alignment has highest weight (30%) because MTF is the foundation.

Grade Thresholds

Grade Score Range Action Position Size
A+ 90-100 Trade with full conviction 2 lots
A 80-89 Trade with confidence 1 lot
B 70-79 Trade normally 1 lot
C 60-69 Trade with caution 1 lot
D 50-59 NO TRADE -
F <50 NO TRADE -

Backtest Results by Grade:

  • A+ trades: 3,457 (45.9%)
  • A trades: 551 (7.3%)
  • C trades: 3,526 (46.8%)
  • No B-grade trades in this backtest period

A+ Grade Special Requirements

To achieve A+ grade, ALL conditions must be true:

  • Final score ≥ 90
  • All 5 timeframes aligned with trade direction
  • Entry within ±25 points of MA21
  • Two-day trend present on Daily
  • No institutional fight detected

Score Calculation Example

Trade Setup: LONG on 5-min chart

Factor Scores (0-100 each):
  Timeframe Alignment: 85  × 0.30 = 25.5
  Trend Strength:      90  × 0.20 = 18.0
  Key Level Proximity: 70  × 0.20 = 14.0
  Entry Quality:       80  × 0.15 = 12.0
  Risk:Reward:         75  × 0.15 = 11.25
                              ──────────
  Base Score:                    80.75

Penalties Applied:
  - No Railroad Tracks: 0
  - No Creeper: 0
  - Has Two-Day: 0
                              ──────────
  Final Score: 80.75 → Grade: A

PART 6: LAYER 4 - HARD FILTERS (The Gate)

HARD FILTERS block trades completely. If ANY hard filter fails, NO TRADE happens regardless of how good the setup looks.

The Three Hard Filters

Filter Rule Effect
1. Direction Filter MA21 slope must match trade direction Wrong direction = BLOCKED
2. Grade Filter D/F grades blocked D/F grades = BLOCKED (A+/A/B/C allowed)
3. Hour Filter Block hours 9, 22, 23 Blocked hours = BLOCKED

Filter 1: Direction (MA21 Slope)

MA21 Slope Allowed Direction Logic
Rising (↗) LONG only Trade with uptrend, never short
Declining (↘) SHORT only Trade with downtrend, never long
Flat (→) Use MTF direction Higher timeframes decide
Slope Calculation:
  Slope % = (MA21[current] - MA21[previous]) / MA21[previous] × 100

Thresholds:
  > +0.01%  → RISING (LONG only)
  < -0.01%  → DECLINING (SHORT only)
  ±0.01%   → FLAT (use MTF consensus)

Filter 2: Grade

Grade Action Position Size
A+ PASS - High conviction 2 lots
A PASS - Trade with confidence 1 lot
B PASS - Trade normally 1 lot
C Trade with reduced size 1 lot
D, F BLOCKED - No trade -

Note on Backtest: The backtest included C-grade trades (46.8% of total). The current code has a stricter filter that blocks C/D/F grades for live trading:

<source lang="python">

  1. Source: signal_generation_trade_management.py:568 (Current Code)

if setup_quality.grade in [SetupQualityGrade.C, SetupQualityGrade.D, SetupQualityGrade.F]:

   return None  # No signal generated - trade blocked

</source>

Filter 3: Hour

Hour Status Reason
9 (9:00-9:59 AM) BLOCKED Market open volatility
10-21 (10:00 AM - 9:59 PM) ALLOWED Normal trading hours
22 (10:00-10:59 PM) BLOCKED Near market close
23 (11:00-11:59 PM) BLOCKED Market close

Why 80% of Trades Were SHORT

In the backtest period, MA21 was predominantly declining:

  • Market was in a sustained downtrend
  • Rising MA periods were shorter/fewer
  • This is expected behavior - strategy adapts to market conditions

PART 7: LAYER 5 - ENTRY TECHNIQUE

The MA21 Zone Principle

"The MA is a ZONE, not a thin line"

Entry is allowed within ±25 points of MA21, not just at the exact MA value.

Why ±25 Points?

  • Price rarely touches MA exactly
  • Allows for normal market noise
  • Captures the "value zone" around the average
  • Based on typical Crude Oil volatility

Available Entry Techniques

Technique Direction Description
NEAR_MA Both Price within ±25 pts of MA21 (most common)
MA_BOUNCE_LONG Long Price touches MA21 and bounces up
MA_BOUNCE_SHORT Short Price touches MA21 and rejects down
GREEN_BAR_AFTER_PULLBACK Long Bullish candle after pullback to MA
RED_BAR_AFTER_RALLY Short Bearish candle after rally to MA
BOS_ENTRY_LONG Long Break of structure to upside
BOS_ENTRY_SHORT Short Break of structure to downside

Entry Selection Logic

<source lang="python"> def select_entry_technique(price, ma21, direction, market_state):

   """
   Select best entry technique based on conditions.
   Source: signal_generation_trade_management.py
   """
   ma_distance = abs(price - ma21)
   # Most common: price in MA zone
   if ma_distance <= 25:  # ±25 points
       return NEAR_MA
   # Break of structure detected
   if market_state.has_bos:
       return BOS_ENTRY_LONG if direction == LONG else BOS_ENTRY_SHORT
   # Pullback/Rally pattern
   if market_state.has_pullback:
       return GREEN_BAR_AFTER_PULLBACK if direction == LONG else RED_BAR_AFTER_RALLY
   return NEAR_MA  # Default

</source>


PART 8: STOP LOSS CALCULATION

Stop Loss Methods (Priority Order)

Priority Method Description
1 BOS-Based Stop Below/above break of structure level
2 Swing-Based Stop Below recent swing low (LONG) or above swing high (SHORT)
3 Default Stop Fixed 40 points from entry

Minimum Stop Distance

MINIMUM: 40 points - Stops closer than 40 points are automatically widened to 40.

This prevents:

  • Getting stopped out by normal noise
  • Excessive trading costs from tight stops
  • Whipsaws in volatile Crude Oil market

Stop Calculation Algorithm

<source lang="python"> def calculate_stop_loss(entry_price, direction, market_state):

   """
   Calculate stop loss with minimum enforcement.
   Source: signal_generation_trade_management.py
   """
   MIN_STOP_DISTANCE = 40.0  # points
   # Try BOS-based stop first
   if market_state.bos_level:
       stop = market_state.bos_level - 5  # 5pt buffer
   # Try swing-based stop
   elif market_state.swing_low and direction == LONG:
       stop = market_state.swing_low - 5
   # Default stop
   else:
       if direction == LONG:
           stop = entry_price - MIN_STOP_DISTANCE
       else:
           stop = entry_price + MIN_STOP_DISTANCE
   # ENFORCE MINIMUM
   actual_distance = abs(entry_price - stop)
   if actual_distance < MIN_STOP_DISTANCE:
       if direction == LONG:
           stop = entry_price - MIN_STOP_DISTANCE
       else:
           stop = entry_price + MIN_STOP_DISTANCE
   return stop

</source>


PART 9: TARGET CALCULATION

The 50% Rule

Target = 50% of distance to MA21

For mean reversion trades, we target halfway back to the moving average.

Why 50%?

  • Conservative target ensures higher hit rate
  • Based on "divide the move in half" principle
  • Captures partial reversion without being greedy
  • Works well with trailing stop to capture more

Minimum Target Rule

Minimum Target = Risk × 1.5

Example:
  Entry: 5700
  Stop: 5660 (40 points risk)

  50% to MA might give: 30 points
  But minimum is: 40 × 1.5 = 60 points

  Final Target: 5760 (60 points)

Target Calculation

<source lang="python"> def calculate_target(entry_price, stop_price, ma21, direction):

   """
   PDF-based target: 50% of distance to MA, with minimum.
   Source: signal_generation_trade_management.py
   """
   risk_distance = abs(entry_price - stop_price)
   min_target = risk_distance * 1.5  # Minimum 1.5:1 R:R
   # Calculate 50% move toward MA
   distance_to_ma = abs(entry_price - ma21)
   target_distance = distance_to_ma * 0.5
   # Enforce minimum
   target_distance = max(target_distance, min_target)
   if direction == LONG:
       return entry_price + target_distance
   else:
       return entry_price - target_distance

</source>


PART 10: DYNAMIC STOP MANAGEMENT

Two-Phase Protection

After entry, stops are managed dynamically in two phases:

Phase Trigger Action
Phase 1: Breakeven +25 points profit Move stop to entry + 2 points
Phase 2: Trailing +20 points profit Trail stop using ATR × 2

Phase 1: Breakeven Stop

Configuration:
  breakeven_activation = 25 points
  breakeven_buffer = 2 points

Example (LONG from 5700):
  Price reaches 5725 (+25 pts profit)
  → Stop moves from 5660 to 5702 (entry + 2)
  → Trade is now "risk-free"

Phase 2: Trailing Stop

Configuration:
  trailing_stop_activation = 20 points
  trailing_stop_method = ATR_MULTIPLE
  atr_period = 14 bars
  atr_multiplier = 2.0
  minimum_trail_distance = 15 points

Example (LONG from 5700, ATR = 12):
  Trailing Distance = 12 × 2 = 24 points

  Price at 5740:
  → Trail stop = 5740 - 24 = 5716

  Price at 5760:
  → Trail stop = 5760 - 24 = 5736 (moved UP)

  Price drops to 5736:
  → STOPPED OUT at 5736 (profit locked)

Why Both Phases?

Phase Purpose
Breakeven Eliminate risk quickly once trade moves in favor
Trailing Let winners run while protecting accumulated profit

PART 11: SLIPPAGE & COSTS

Realistic Slippage Model

Event Slippage Rationale
Entry +1.0 point Normal market fill
Stop Loss Exit +2.0 points Stops slip more in fast moves
Target Exit +0.5 points Limit orders have minimal slippage

Cost Structure

Cost Type Value
Commission Rs 20 per lot per side
STT 0.01% on sell side
Exchange Fees ~Rs 2 per lot
Stamp Duty State-dependent

Why Model Slippage?

  • Backtest results must reflect real trading
  • Prevents over-optimistic performance estimates
  • Stop loss slippage is higher because stops often trigger during fast moves
  • Total costs ~Rs 79 per round-trip lot

PART 12: EXIT RULES

Three Exit Conditions

Exit Type Condition % of Exits
Stop Loss Price hits stop (original or trailing) 72.3%
Target Price hits take profit level 22.8%
Timeout End of day (no overnight holds) 5.0%

Why 72% Stop Exits but 57% Win Rate?

This seems contradictory but makes sense:

  • Trailing stops lock in profits - many "stop exits" are actually winning trades
  • Breakeven stops trigger at +25 pts, trailing at +20 pts
  • A trade can be stopped out at +30 pts profit (counted as stop exit but is a WIN)

End-of-Day Exit

All positions closed before market close:
  - Market closes at 11:30 PM IST
  - 15-minute buffer before close
  - Prevents overnight gap risk

PART 13: PUTTING IT ALL TOGETHER

Trade Flow

┌─────────────────────────────────────────────────────────────────┐
│  STEP 1: Load data for all 5 timeframes                         │
│  Daily, 4H, 1H, 15M, 5M OHLCV data                             │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 2: LAYER 1 - MTF Analysis (Foundation)                    │
│  Calculate MA21, MA200, trend direction for each timeframe      │
│  Compute MTF alignment score                                    │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 3: LAYER 2 - Market State Analysis                        │
│  Run 7 algorithms: Railroad, Creeper, Phase, BOS, etc.          │
│  Calculate penalties and bonuses                                │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 4: LAYER 3 - Setup Quality Grading                        │
│  Score 5 factors, apply penalties/bonuses                       │
│  Assign grade: A+ / A / B / C / D / F                           │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 5: LAYER 4 - HARD FILTERS (The Gate)  ◄── PASS/FAIL      │
│  • Direction: MA21 slope matches trade direction?               │
│  • Grade: Is grade A+, A, B, or C? (D/F blocked)                │
│  • Hour: Is current hour allowed (not 9, 22, 23)?               │
│  ANY FAIL → NO TRADE                                            │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 6: LAYER 5 - Entry Technique                              │
│  Is price within ±25 points of MA21?                            │
│  Select entry technique (NEAR_MA, BOS_ENTRY, etc.)              │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 7: Calculate Stop Loss                                    │
│  BOS-based → Swing-based → Default (40 pts minimum)             │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 8: Calculate Target                                       │
│  50% of distance to MA (minimum 1.5× risk)                      │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 9: Execute Trade                                          │
│  Apply entry slippage (+1 pt), create trade record              │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  STEP 10: Manage Trade                                          │
│  Monitor: Breakeven at +25 pts → Trail at +20 pts               │
│  Exit: Stop hit | Target hit | Timeout                          │
└─────────────────────────────────────────────────────────────────┘

PART 14: HARD vs SOFT FILTERS

Understanding the Difference

Filter Type Behavior Examples
HARD Blocks trade completely Direction filter, Hour filter, Grade D/F
SOFT Affects quality score MTF alignment, Market state penalties

Complete Filter List

Filter Type Effect
MA21 Direction HARD Wrong direction = NO TRADE
Hour Filter HARD Hours 9, 22, 23 = NO TRADE
Grade D/F HARD D/F grades = NO TRADE
MTF Alignment SOFT Low alignment = reduced score (30% weight)
Creeper Move SOFT -50 points penalty
No Two-Day Trend SOFT -30 points penalty
Institutional Fight SOFT 0.7× score multiplier
Far from MA21 SOFT -40 points penalty

APPENDIX A: CONFIGURATION VALUES

MTF Configuration

Parameter Value Source File Description
context_timeframe DAILY main.py:162 Highest timeframe for overall bias
primary_timeframe 1-HOUR main.py:163 Primary trend direction
confirmation_timeframe 15-MIN main.py:164 Entry timing confirmation
entry_timeframe 5-MIN main.py:165 Execution timeframe
require_all_timeframes_aligned False main.py:166 Allow partial alignment
min_alignment_score 0.70 (70%) main.py:167 Minimum MTF alignment score
wait_for_15min_alignment True main.py:168 Wait for 15M confirmation
min_15min_confirmation_bars 2 bars main.py:169 Bars needed for 15M confirmation

Entry Configuration

Parameter Value Source File
entry_timeframe 5-Minute main.py:165
ma_buffer_points 25 points signal_generation_trade_management.py:68
blocked_hours [9, 22, 23] signal_generation_trade_management.py:137
enable_hour_filter True signal_generation_trade_management.py:89
enable_ma_direction_filter True signal_generation_trade_management.py:97

Stop/Target Configuration

Parameter Value Source File
min_stop_distance 40 points signal_generation_trade_management.py:59
default_risk_reward 1.5 signal_generation_trade_management.py:62
bos_stop_buffer_points 5 points signal_generation_trade_management.py:81

Dynamic Stop Configuration

Parameter Value Source File
enable_trailing_stop True trade_execution_engine.py:58
trailing_stop_method ATR_MULTIPLE trade_execution_engine.py:63
atr_period 14 bars trade_execution_engine.py:64
atr_multiplier 2.0 trade_execution_engine.py:65
trailing_stop_activation 20 points trade_execution_engine.py:60
enable_breakeven_stop True trade_execution_engine.py:69
breakeven_activation 25 points trade_execution_engine.py:70
breakeven_buffer 2 points trade_execution_engine.py:71
minimum_trail_distance 15 points trade_execution_engine.py:370

Slippage Configuration

Parameter Value Source File
base_slippage_points 1.0 point trade_execution_engine.py:38
volatility_slippage_factor 0.5 trade_execution_engine.py:39
market_impact_factor 0.1 trade_execution_engine.py:40
max_market_impact_slippage 2.0 points trade_execution_engine.py:43
stop_loss_slippage 2.0 points trade_execution_engine.py:50
take_profit_slippage 0.5 points trade_execution_engine.py:51

Trade Execution Limits

Parameter Value Source File Description
max_holding_period_minutes 480 (8 hours) trade_execution_engine.py:46 Maximum time a trade can stay open
min_holding_period_minutes 5 minutes trade_execution_engine.py:47 Minimum holding before exit
max_position_size 200 lots trade_execution_engine.py:54 Maximum lots per single trade
max_concurrent_trades 3 trade_execution_engine.py:55 Maximum simultaneous open trades
market_close_buffer_minutes 15 minutes trade_execution_engine.py:75 Close trades before market close
avoid_news_minutes 30 minutes trade_execution_engine.py:74 Buffer around news events

Cost Configuration

Parameter Value Source File Description
commission_per_lot Rs 20/lot/leg signal_generation_trade_management.py:49 Dhan broker commission
transaction_tax_rate 0.005% per leg signal_generation_trade_management.py:55 CTT (0.01% round-trip)
lot_size_multiplier 100 barrels signal_generation_trade_management.py:56 MCX Crude lot size
initial_capital Rs 1,00,000 main.py:1131 Starting capital for backtest

Grading Configuration

Parameter Value Source File
timeframe_alignment_weight 30% setup_quality_detection.py:44
trend_strength_weight 20% setup_quality_detection.py:45
key_level_proximity_weight 20% setup_quality_detection.py:47
entry_technique_weight 15% setup_quality_detection.py:46
risk_reward_weight 15% setup_quality_detection.py:48
a_plus_min_score 90 setup_quality_detection.py:51
a_min_score 80 setup_quality_detection.py:52
b_min_score 70 setup_quality_detection.py:53

Probability Zone Configuration

Parameter Value Source File
enable_probability_zone_filter True signal_generation_trade_management.py:104
probability_zone_swing_lookback 20 bars signal_generation_trade_management.py:105
probability_zone_min_range 20 points signal_generation_trade_management.py:106
top_third_threshold 66.7% probability_zone_analysis.py:125
top_third_probability 80% probability_zone_analysis.py:131
bottom_third_probability 15% probability_zone_analysis.py:134
crash_bar_multiplier 2.0 probability_zone_analysis.py:145
three_finger_min_spread_pct 2% probability_zone_analysis.py:141
enable_color_change_filter False (disabled) signal_generation_trade_management.py:115

APPENDIX B: SOURCE CODE REFERENCE

File Purpose
main.py Entry point, timeframe configuration
trend_analysis_core.py MA calculation, slope detection, trend direction
multi_timeframe_analysis.py MTF alignment scoring across 5 timeframes
market_state_analysis.py 7 market state detection algorithms
setup_quality_detection.py 5-factor grading system with penalties/bonuses
probability_zone_analysis.py Halves/Thirds, Three-Finger Spread, Crash Bar
signal_generation_trade_management.py Entry/Exit logic, stop/target calculation
trade_execution_engine.py Breakeven, Trailing stop, Slippage modeling
data_manager.py OHLCV data loading and management
backtesting_analytics.py Performance metrics (Sharpe, Sortino, VaR, drawdown)

Document generated from source code analysis - January 2026

Strategy: Multi-Layer Confluence (MLC) v1.0