4. Makro Matrix Risk — dynamiczna punktacja instytucjonalna
This is the most unique feature of the system. Before every order, AHS consults 19 global assets, analysing each through 5 indicators — a total of 95 indicator handles running in parallel.
Skład Makro Matrix Risk
Tech Titans (≈60% of the pool):
| Asset | Base Weight |
|---|---|
| Apple (AAPL) | 8% |
| Microsoft (MSFT) | 8% |
| Nvidia (NVDA) | 8% |
| Amazon (AMZN) | 5% |
| Meta (META) | 5% |
| Alphabet (GOOGL) | 5% |
| Tesla (TSLA) | 4% |
| Broadcom (AVGO) | 4% |
| Costco (COST) | 3% |
| Netflix (NFLX) | 2% |
| PepsiCo (PEP) | 2% |
| Cisco (CSCO) | 2% |
| T-Mobile (TMUS) | 2% |
| Adobe (ADBE) | 1% |
| AMD | 1% |
Global Macro (≈40% of the pool):
| Asset | Base Weight | Special Role |
|---|---|---|
| Bitcoin (BTC) | 10% | Risk-On barometer |
| Gold (GOLD) | 10% | Inverse correlation — Risk-Off |
| EURUSD | 10% | Dollar strength proxy (DXY) |
| AUDJPY | 10% | Carry trade / risk appetite |
Dynamic Weighting — What Sets This System Apart
Base weights are a starting point, not fixed values. For each asset, a multiplier is computed based on current indicators:
Indicators per asset (H1 timeframe):
→ MA50, MA200 (long-term trend)
→ RSI(14) (momentum / overbought-oversold)
→ CCI(14) (deviation from mean)
→ MFI(14) (money flow)
Multiplier logic for BUY scoring:
→ Bullish trend (MA50 > MA200): +0.5
→ Oversold (RSI<30 or CCI<-100): +0.5
→ Overbought (RSI>70 or CCI>100): -0.5
→ Money flowing in (MFI>50): +0.2
Multiplier logic for SELL scoring:
→ Bearish trend (MA50 < MA200): +0.5
→ Overbought (RSI>70 or CCI>100): +0.5
→ Oversold (RSI<30 or CCI<-100): -0.5
→ Money flowing out (MFI<50): +0.2
Minimum multiplier = 0.1 (prevents negative weights).
Scoring Mechanism
effective_weight = base_weight × multiplier
max_pool += effective_weight // maximum possible score
// Does this asset confirm the direction?
if BUY: price > MA50 → align_score += effective_weight
if SELL: price < MA50 → align_score += effective_weight
// GOLD is inverse (is_inverse=true):
// Bullish GOLD = Risk-Off = confirms SELL, not BUY
final_alignment = (align_score / max_pool) × 100%
Block condition: If final_alignment < Inp_Macro_Min_Alignment_Percent (default 70%) → order blocked.
Lazy Evaluation
The Macro Matrix is not computed on every tick. It is triggered exclusively when a strategy generates a signal. This dramatically reduces CPU usage. Log: "BUY Align: 82% (Pool: 145)" / "Block BUY: Macro Score".
When No Market Is Active
When all assets are inactive (no data, markets closed) → max_pool = 0 → filter bypassed, trading allowed. The system never blocks itself when global data is unavailable.
