51 lines
1.1 KiB
Python
51 lines
1.1 KiB
Python
"""ICT strategy parameter presets."""
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Dict
|
|
|
|
|
|
@dataclass
|
|
class ICTStrategyParams:
|
|
"""Parameters for the ICT SMC strategy."""
|
|
|
|
# Swing detection
|
|
swing_length: int = 50
|
|
|
|
# Fair Value Gap
|
|
fvg_join_consecutive: bool = False
|
|
|
|
# Order Blocks
|
|
ob_close_mitigation: bool = False
|
|
|
|
# Liquidity
|
|
liquidity_range_percent: float = 0.01
|
|
|
|
# Confluence
|
|
min_confluence_score: int = 3
|
|
|
|
# Timeframes
|
|
htf: str = "4h"
|
|
mtf: str = "1h"
|
|
ltf: str = "15m"
|
|
|
|
# Exit
|
|
trailing_stop_activation_pct: float = 0.01 # activate after 1% profit
|
|
trailing_stop_distance_pct: float = 0.005 # trail by 0.5%
|
|
time_exit_candles: int = 48 # exit after N candles
|
|
|
|
|
|
# Pre-built presets
|
|
STRATEGY_PRESETS: Dict[str, ICTStrategyParams] = {
|
|
"default": ICTStrategyParams(),
|
|
"aggressive": ICTStrategyParams(
|
|
min_confluence_score=2,
|
|
swing_length=30,
|
|
trailing_stop_activation_pct=0.005,
|
|
),
|
|
"conservative": ICTStrategyParams(
|
|
min_confluence_score=4,
|
|
swing_length=70,
|
|
trailing_stop_activation_pct=0.02,
|
|
),
|
|
}
|