SomaBTC
- Experts
-
Andrii Soma
If you bought my EA, contact me to join the Telegram group.
Also, there is a group on this website if you don't have Telegram: - Versione: 2.10
- Aggiornato: 25 giugno 2026
- Attivazioni: 10
SomaBTC è un Expert Advisor multi-strategia di breakout per MetaTrader 5, realizzato esclusivamente per Bitcoin (BTCUSD). Un grafico, un EA, 18 strategie indipendenti che operano insieme come un unico portafoglio diversificato.
È il mio secondo EA pubblicato su MQL5. Per renderlo accessibile al lancio uso un modello di prezzo a scalini trasparente:
- Prezzo di lancio: 100 USD
- Il prezzo aumenta di 100 USD ogni 10 copie vendute, al massimo una volta al giorno
Chi acquista per primo blocca il prezzo più basso per tutta la vita del prodotto.
Concetto
Invece di eseguire una singola configurazione che tende al sovraadattamento a un regime di mercato stretto, SomaBTC include un set curato di 18 strategie pre-ottimizzate che girano in parallelo sotto un solo EA su un solo grafico Bitcoin.
Ogni strategia ha il proprio magic number, commento, timeframe, parametri di rilevamento swing, uscite, distanze news e passo lotto. Condividono lo stesso motore di esecuzione ma operano in modo indipendente, così si ottiene una diversificazione reale su timeframe e ampiezza di breakout senza gestire decine di grafici.
Creazione del portafoglio
Ho eseguito 120 ottimizzazioni completamente diverse su 4 intervalli in-sample, ciascuna producendo 30 file set:
- 5 gruppi di timeframe: D1, H12, H8, H4, H1
- Tre varianti di ampiezza breakout:
- V1 Broad: swing più larghi, meno setup ma più forti;
- V2 Medium: frequenza di setup bilanciata;
- V3 Narrow: swing più stretti, setup più frequenti.
- Tutte ottimizzate per return / drawdown:
- Prima per Return / Balance DD
- Poi per Return / Equity DD
Di conseguenza ho ottenuto 4 x 5 x 3 x 2 = 120 strategie.
Le quattro intervalli di ottimizzazione e le rispettive finestre out-of-sample erano:
- Res1 — In Sample: 2017.08.14–2022.01.01 | OOS: 2022.01.01–2026.05.30
- Res2 — In Sample: 2022.01.01–2026.05.17 | OOS: 2017.08.14–2022.01.01
- Res3 — In Sample: 2017.08.14–2026.05.17 | nessun OOS (training su intervallo completo)
- Res4 — In Sample: 2023.07.03–2026.05.30 | validato tramite controllo qualità 1M OHLC vs Real Ticks
Res1 e Res2 sono metà complementari della stessa storia, quindi ogni intervallo valida l'altro out-of-sample. Res3 aggiunge robustezza con la finestra di training più ampia. Res4 copre il ciclo crypto più recente.
Questa combinazione timeframe × ampiezza × intervallo di ottimizzazione produce la diversificazione. Strategie diverse si attivano in regimi di volatilità diversi, quindi la curva equity non dipende da un solo comportamento di mercato.
Ogni strategia candidata è stata poi filtrata:
- Ogni file set è stato backtestato su 1M OHLC e Real Ticks (2023.07.03–2026.05.30). Se la correlazione tra i due era bassa, o il risultato Real Ticks era peggiore, la strategia è stata rimossa.
- Se il risultato out-of-sample non era buono, la strategia è stata rimossa.
- Le strategie con correlazione della curva equity giornaliera superiore a 0,7 con qualsiasi altra strategia rimanente sono state rimosse.
Così, solo 18 strategie sono sopravvissute — 5 da Res1, 5 da Res2, 4 da Res3 e 4 da Res4.
Come ultimo passo, la dimensione lotto di ogni strategia è stata impostata da uno script Python dedicato che ha trovato dimensioni lotto che producono profitto massimo mantenendo il drawdown storico entro limiti rigorosi: 15% balance DD su 1M OHLC (2017–2026) e 10% balance DD su Real Ticks (2023–2026).
Il portafoglio mostra buoni risultati su tutti i broker testati — circa 10 in totale.
Rischio e dimensionamento lotti
Sono disponibili due modalità di sizing:
- Lotto manuale — lotti fissi per trade
- Lot per balance step — sizing automatico in base al capitale del conto, scalato per strategia
Controlli aggiuntivi consentono di rifinire il profilo di rischio:
- Moltiplicatore di rischio globale sul lotto calcolato
- Tetto massimo rigido di lotto indipendentemente dal saldo
- Scelta tra saldo o equity come base di sizing
- Modalità OnlyUp — i lotti salgono con il picco di capitale ma non scendono mai. All'avvio l'EA imposta il picco storico dalla cronologia recente di trade chiusi (lookback configurabile), così la baseline OnlyUp è significativa dal primo tick invece di resettarsi a ogni riavvio
- Selettore valuta di base (USD, EUR, GBP, HKD, SGD o una coppia personalizzata) per un sizing corretto su conti non in USD
- Protezione margin call (predefinita attiva): prima di piazzare ordini l'EA tratta gli stop/limit pendenti sullo stesso lato come se richiedessero già il margine dell'ordine a mercato, così il margine libero non viene sovra-impegnato quando il broker riserva poco sui pendenti; può anche ridurre il lotto calcolato affinché, nel caso peggiore, gli ordini simultanei sullo stesso lato restino entro un budget di margine legato alla base di sizing. Disattivare solo se controllate completamente leva e margine disponibile.
Filtro news
SomaBTC include un calendario news USA integrato che copre tre tipi di eventi ad alto impatto:
- NFP — Non-Farm Payrolls
- CPI — Consumer Price Index
- IR / FOMC — decisioni sui tassi delle banche centrali
Intorno a ogni evento l'EA può in modo indipendente bloccare nuovi ingressi, annullare ordini pendenti esistenti e chiudere posizioni aperte. Ogni strategia ha le proprie finestre minuti prima e dopo, quindi la protezione news è tarata per strategia e non applicata globalmente.
Il GMT del broker può essere impostato manualmente o rilevato automaticamente, così le finestre news si allineano sempre all'ora del broker, inclusi i cambi ora legale. Il classificatore è stato ristretto per escludere falsi positivi comuni come ADP Nonfarm Employment e discorsi/verbali FOMC.
Finestra di trading
Bitcoin ha bassa liquidità al di fuori delle principali sessioni di mercato. Per proteggersi, SomaBTC usa due controlli temporali sovrapposti.
Filtro sessione giornaliera (attivo per impostazione predefinita): tutte le posizioni vengono chiuse alla fine della sessione USA ogni giorno, e le nuove posizioni si aprono solo dopo l'inizio della sessione asiatica. Evita l'esposizione durante il gap notturno illiquido. Puoi disattivarlo per mantenere le posizioni aperte tra le sessioni.
Finestra settimanale (attiva per impostazione predefinita): nessun trading nel weekend per impostazione predefinita (chiusura venerdì / apertura lunedì). Puoi disattivarla per consentire il trading nel weekend su broker che mantengono aperti i mercati BTC.
Entrambe le impostazioni possono essere regolate indipendentemente. I valori predefiniti seguono il modo in cui le strategie sono state ottimizzate.
Conformità Prop Firm
È possibile applicare un offset pip casuale opzionale per trade a entry ed exit tramite MaxRandomizationPips. Zero per disabilitare. SomaBTC include anche un livello di conformità opzionale (off di default): lockout DD giornaliero max., regola no-hedge e cap ordini pending. Vedi EnablePropFirmCompliance e input correlati sotto.
Dashboard sul grafico
SomaBTC disegna una dashboard live sul grafico che mostra:
- Base sizing lotti e capitale effettivo
- Ordini pendenti e posizioni aperte divisi per Buy/Sell
- P/L a floating e P/L chiuso odierno
- Drawdown di saldo ed equity, assoluto e percentuale
- Statistiche slippage: tutto il periodo, 7 giorni, 24 ore
- Spread corrente e numero strategie attive
- Prossimi e ultimi eventi NFP, CPI e IR/FOMC
La dashboard può essere disabilitata nello Strategy Tester per backtest più veloci.
Parametri
Override
- EnableMagicOverride -> magic = OverrideMagicBase + indice strategia
- OverrideMagicBase -> trade ID base con override attivo
- EnableCommentOverride -> un commento per tutte le strategie
- OverrideComment -> commento ordine/posizione con override
Direzione
- AllowBuyTrades -> consentire buy / long e pendenti buy
- AllowSellTrades -> consentire sell / short e pendenti sell
Dimensionamento lotti
- LotsAdjustMinChangePercent -> variazione min. % prima di aggiornare il lotto attivo
- Risk -> ManualLotSize (StartLots fisso) o LotSizeStep (auto da capitale)
- AdjustLotsizeToVariableValues -> ricalcolare i lotti al cambio di saldo o equity
- StartLots -> lotto fisso in manuale o riferimento minimo in step
- MaxLots -> tetto massimo di lotto
- UseEquity -> dimensionare da equity invece che saldo
- OnlyUp -> i lotti salgono solo con il picco di capitale
- RestorePeakFromHistory -> impostare il picco OnlyUp dalla cronologia recente all'avvio
- RestorePeakLookbackDays -> giorni di lookback per il picco (0 = tutto)
- ManualBalanceForLotSizing -> capitale fisso per sizing se > 0
- RiskMultiplier -> moltiplicatore globale sul lotto calcolato
- MarginCallProtection -> riservare margine su pendenti stesso lato e limitare il lotto
- BaseCurrency -> USD, EUR, GBP, HKD, SGD o custom su conti non USD
- CustomBaseCurrencyPair -> simbolo broker se BaseCurrency custom
GMT
- Broker_GMT_OFFSET_Summer -> offset GMT manuale broker estate (ore)
- Broker_GMT_OFFSET_Winter -> offset GMT manuale broker inverno (ore)
- AutoGMT -> rilevare GMT broker automaticamente
Filtri news
- EnableNFP_Filter -> attivare finestra protezione NFP
- NFP_CloseOpenTrades -> chiudere posizioni prima del NFP
- NFP_ClosePendingOrders -> annullare pendenti prima del NFP
- EnableIR_Filter -> attivare finestra IR / FOMC
- IR_CloseOpenTrades -> chiudere posizioni prima dell'IR
- IR_ClosePendingOrders -> annullare pendenti prima dell'IR
- EnableCPI_Filter -> attivare finestra CPI
- CPI_CloseOpenTrades -> chiudere posizioni prima del CPI
- CPI_ClosePendingOrders -> annullare pendenti prima del CPI
I minuti prima/dopo per strategia sono nel portafoglio, non parametri separati.
Orario di trading
- UseTradingTimeZones -> applicare finestra settimanale lunedì–venerdì
- KillPending -> annullare pendenti fuori finestra
- KillOpen -> chiudere posizioni fuori finestra
- MondayOpenHour -> ora apertura lunedì (ora broker)
- MondayOpenMinute -> minuto apertura lunedì
- FridayCloseHour -> ora chiusura venerdì
- FridayCloseMinute -> minuto chiusura venerdì
Orario di trading giornaliero
- UseDailyTradingHours -> chiudere i trade a fine sessione USA e riaprire all'apertura sessione asiatica ogni giorno
- DailyStartHour -> ora apertura giornaliera (ora broker, inizio sessione asiatica)
- DailyStartMinute -> minuto apertura giornaliera
- DailyEndHour -> ora chiusura giornaliera (ora broker, fine sessione USA)
- DailyEndMinute -> minuto chiusura giornaliera
Dashboard
- DisableDashboardInTesting -> nascondere dashboard nello Strategy Tester
- DashboardUpdateSeconds -> intervallo aggiornamento dashboard (sec)
Conformità Prop Firm
Tutti gli input predefiniti off / zero — impatto zero sulle prestazioni se disabilitati.
- MaxRandomizationPips -> offset prop firm entry/exit; unico vs altri utenti EA (0 = off)
- EnablePropFirmCompliance -> interruttore master; deve essere true affinché le regole sotto abbiano effetto
- PF_MaxDailyDrawdownPercent -> perdita equity giornaliera max. come % della base giornaliera (0 = off)
- PF_MaxDailyDrawdownMoney -> perdita equity giornaliera max. in valuta conto (0 = off)
- PF_DailyResetHour -> ora broker/server (0–23) reset finestra giornaliera
- PF_DailyLossBufferPercent -> cuscinetto di sicurezza prima del limite rigido (default 10%)
- PF_DisallowHedging -> blocca entrate in direzione opposta; rimuove pending opposti
- PF_MaxTotalPendingOrders -> limite ordini pending EA totali (0 = off)
Setup consigliato
- Simbolo: BTCUSD
- Timeframe: qualsiasi (l'EA legge internamente i propri timeframe)
- Tipo conto: consigliato ECN / RAW-spread per spread stretti
- Saldo minimo consigliato: 2000 USD per il rischio predefinito
- VPS: consigliato per esecuzione 24/5 stabile
- Per far funzionare AutoGMT, aggiungete l'URL "https : // www . worldtimeserver.com/" agli URL consentiti nel terminale MT5 (Strumenti → Opzioni → Expert Advisors)
