Dear @Xard777
First of all, thank you for the incredible work on XU EFFECT. I’ve been testing v7.97 since you have released and digging into the code to understand the Genome and Hebbian learning systems. I used an AI to help me understand the logic, and I’d like to share my observations and ask for a few clarifications.
1. Genome stuck at 0.5000
With default settings on Gold or Bitcoin, Forex pairs, the Genome remains gray at exactly 0.5000.
I added debug prints and found the reason:
The TRIT Ratio (raw) is extremely small – e.g., on XAUUSD: 0.000149
After scaling, it becomes 0.003736
The memory (5‑period EMA) is almost identical, so Surprise = 5.86e-7
The default InpTRITDeadZone = 0.0005 – surprise is far below it
→ Learning never activates → Genome stays at 0.5
Suggestion: Would it make sense to make the deadzone adaptive (e.g., based on ATR or instrument digits) or reduce the default to ~1e-7 for crypto/metals?
2. The “New Optional Randomization” flag
When I set InpUseCoilRandomization = true, the Genome starts fluctuating immediately instead of staying fixed at 0.5.
Without randomization: Genome is stuck (as above).
With randomization: the added random term pushes the surprise above the deadzone, forcing learning to activate and Genome values start to fluctuate a lot.
Question: Is this intended as a “break‑loose” mechanism for low‑volatility markets? Or should randomization be used only for testing?
3. How I understand the Genome & Hebbian (from the code)
I want to confirm my understanding. Based on the code, this is what I think happens:
Hebbian component (13‑period EMA of price):
Acts as a “memory trace” of recent price.
Genome bias = 0.5 + (price - hebbianEMA)/hebbianEMA * 0.5.
TRIT Genome (when InpUseTRITGenome = true):
Computes (Trigger - SlowEMA) / (Trigger + SlowEMA) * 2
Adaptive scaling when ratio is small (<0.05)
Maintains a 5‑period memory of the scaled ratio
Surprise = current ratio – memory
Only if |surprise| > deadzone, Genome = 0.5 + surprise * sensitivity
Coil bias (when coil_tightness > 50): amplifies the Genome by 0.62×(genomeRaw‑0.5)
Final Genome is clamped to [0,1].
Do I have that right? Is the coil bias multiplier (0.62) derived from the Feigenbaum constant as the code comments suggest?
4. Price rounding in VCD panel (forex pairs)
On 5‑digit brokers (ICMarkets), the VCD panel shows price with only 2 decimals – e.g., GBPUSD 1.34252 → 1.34.
The code uses StringFormat("%.2f", sig.price).
I changed it locally to DoubleToString(sig.price, _Digits) and now it works correctly.
Would you consider updating the indicator to respect _Digits?
Also the same rounding applies to VWAP and Trigger labels.
5. Log message “Hebbian reset due to time gap of 1970.01.06 …”
I see these in the Experts tab:
2026.04.13 10:16:00.629 XU EFFECT (XAUUSD,M5) CRITICAL FIXES: VWAP accumulation, division by zero, file I/O, Hebbian reset
2026.04.13 09:56:38.175 XU EFFECT (XAGUSD,M5) XU EFFECT: Hebbian reset due to time gap of 1970.01.06 13:00:00 seconds
No Idea about these
My environment:
MT5 build 5430
Broker: ICMarkets (5‑digit quotes)
Tested on EURUSD, XAUUSD, BTCUSD
Any clarification on the points above would be greatly appreciated.
Thank you again for this amazing tool.
XARD: Thanks for the feedback -- Try this version out...