summaryrefslogtreecommitdiff
path: root/services/strategy-engine/strategies/combined_strategy.py
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 18:44:20 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 18:44:20 +0900
commitcb55c81dbc43df83ef4d5b717fe22b4d04a93d2e (patch)
tree26ef6f6a89233fa8cf74ea6467b07f1158d75ff1 /services/strategy-engine/strategies/combined_strategy.py
parent0b0aace94fa633cd7a90c95ee89658167a8afd35 (diff)
feat(strategy): apply filters, conviction scoring, and ATR stops to all strategies
Diffstat (limited to 'services/strategy-engine/strategies/combined_strategy.py')
-rw-r--r--services/strategy-engine/strategies/combined_strategy.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/strategy-engine/strategies/combined_strategy.py b/services/strategy-engine/strategies/combined_strategy.py
index c70538d..be1cbed 100644
--- a/services/strategy-engine/strategies/combined_strategy.py
+++ b/services/strategy-engine/strategies/combined_strategy.py
@@ -60,11 +60,11 @@ class CombinedStrategy(BaseStrategy):
signal = strategy.on_candle(candle)
if signal is not None:
if signal.side == OrderSide.BUY:
- score += weight
- reasons.append(f"{strategy.name}:BUY({weight})")
+ score += weight * signal.conviction
+ reasons.append(f"{strategy.name}:BUY({weight}*{signal.conviction:.2f})")
elif signal.side == OrderSide.SELL:
- score -= weight
- reasons.append(f"{strategy.name}:SELL({weight})")
+ score -= weight * signal.conviction
+ reasons.append(f"{strategy.name}:SELL({weight}*{signal.conviction:.2f})")
normalized = score / total_weight # Range: -1.0 to 1.0