── PRICE DATA (from MT5) ──────────────────
BID = SymbolInfoDouble(sym, SYMBOL_BID)
ASK = SymbolInfoDouble(sym, SYMBOL_ASK)
SPREAD = (ASK - BID) / Point
H24 = iHigh(sym, PERIOD_D1, 0)
L24 = iLow(sym, PERIOD_D1, 0)
── RSI (Wilder's Smoothed) ────────────────
RS = AvgGain(n) / AvgLoss(n) [n=14]
RSI = 100 - (100 / (1 + RS))
→ Overbought: RSI > 70 | Oversold: RSI < 30
── MACD (12,26,9) ────────────────────────
EMA_fast = EMA(close, 12)
EMA_slow = EMA(close, 26)
MACD_line= EMA_fast - EMA_slow
Signal = EMA(MACD_line, 9)
Histogram= MACD_line - Signal
→ Bull: MACD > Signal | Bear: MACD < Signal
── STOCHASTIC (5,3,3) ────────────────────
%K = (Close-LowestLow) / (HighestHigh-LowestLow) × 100
%D = SMA(%K, 3) [signal line]
→ Overbought: %K > 80 | Oversold: %K < 20
── BOLLINGER BANDS (20,2) ────────────────
Middle = SMA(close, 20)
StdDev = sqrt(Σ(close-Middle)² / 20)
Upper = Middle + 2×StdDev
Lower = Middle - 2×StdDev
→ Above Upper: Overbought | Below Lower: Oversold
── ATR (Average True Range, 14) ──────────
TR = max(H-L, |H-prevC|, |L-prevC|)
ATR = Wilder_EMA(TR, 14)
→ Volatility filter. SL = Entry ± (1.5 × ATR)
── EMA TREND (20, 50, 200) ───────────────
EMA(n) = Close×k + EMA_prev×(1-k) [k=2/(n+1)]
→ Bull: Price > EMA20 > EMA50 > EMA200
→ Bear: Price < EMA20 < EMA50 < EMA200
── STRENGTH INDEX ────────────────────────
SI = BuyerPower / (BuyerPower + SellerPower)
→ SI > 0.65: Strong Bull | SI < 0.35: Strong Bear
── SUPPORT / RESISTANCE ──────────────────
Pivot = (H24 + L24 + Close) / 3
R1 = 2×Pivot - L24
S1 = 2×Pivot - H24
R2 = Pivot + (H24 - L24)
S2 = Pivot - (H24 - L24)
R3 = H24 + 2×(Pivot - L24)
S3 = L24 - 2×(H24 - Pivot)
── SENTIMENT SCORE ───────────────────────
BuyPct = Long_positions / Total_positions × 100
SelPct = Short_positions / Total_positions × 100
── COMPOSITE VERDICT ─────────────────────
Score = Σ(signal_weight × signal_value)
Signals: RSI, MACD, BB, Stoch, EMA, SR
→ Score > 0.6 → BUY | < -0.6 → SELL | else HOLD
Confidence = |Score| / max_score × 100%