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: 4.0
- Aggiornato: 8 novembre 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 EA opzionale tramite MaxLots ( 0 predefinito = nessun limite EA; solo specifica broker); > 0 = massimo rigido
- MinLotPlacePercent -> salta un pending se il lotto calcolato e sotto questa percentuale del lotto minimo del broker (predefinito 30; 0 alza i lotti piccoli al minimo)
- 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 (disattivata per impostazione predefinita): il trading nel weekend resta attivo, così l'EA può continuare quando il broker tiene aperto il mercato BTC. Attiva UseTradingTimeZones per operare solo tra l'apertura del lunedì e la chiusura del venerdì. KillOpen è disattivato di default, quindi le posizioni aperte non vengono chiuse al confine del venerdì.
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.
Limiti degli ordini
Questi tetti funzionano sia con la conformita prop firm attiva sia senza. 0 spegne un tetto. Un grafico o un file set che usa ancora i vecchi nomi PF_ non riporta quei valori.
- MaxTotalPendingOrders -> tetto dei pending totali (predefinito 0; 0 = off). Se il libro e pieno, un nuovo pending parte solo se e strettamente piu vicino al mercato del piu lontano tenuto
- MaxPendingOrdersPerSide -> tetto dei pending in una direzione (buy stop e buy limit lo condividono; sell stop e sell limit lo condividono; 0 = off). Se quel lato e pieno, un nuovo pending parte solo se e strettamente piu vicino del piu lontano di quel lato
- MaxTotalOpenTrades -> quando i trade aperti raggiungono questo numero, i pending vengono cancellati e non ne vengono piazzati di nuovi finche un trade non chiude (0 = off)
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
Impostazioni del portafoglio
- StrategiesToRun -> numeri di strategia basati su 1 separati da virgole (predefinito 1–18); utile per un sottoinsieme. Corrispondono al #N in ogni commento (es. SomaBTC #8 72081237). Le strategie disabilitate smettono di piazzare e gestire; chiudere le posizioni aperte prima di modificare questo input.
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 EA opzionale; 0 = solo specifica broker
- 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
- McpRiskMultiplier -> scales risk from the margin call protection lot size (1.0 = MCP default)
- 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 -> finestra settimanale lunedì–venerdì (disattivata di default)
- KillPending -> annullare pendenti fuori finestra
- KillOpen -> chiudere posizioni fuori finestra (disattivato di default)
- 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
- DisableDashboardInLive -> hide the on-chart dashboard on live / demo charts (default off)
- DashboardUpdateSeconds -> intervallo aggiornamento dashboard (sec)
- ShowSkippedStrategiesRows -> quante righe di strategie saltate mostra l'elenco Min Lot Filter (predefinito 3; 0 nasconde l'elenco; oltre 20 vale 20)
Conformità Prop Firm
Il drawdown giornaliero, la regola no-hedge e gli interruttori collegati restano spenti.
- 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
Esecuzione
- UseInternalTrailingExitLevels -> se attivo, break-even, trailing stop e trailing take-profit restano nell'EA e chiudono a mercato. Lo stop e il take-profit fissi del broker restano. Disattivo di default
- UseEveryTickMode -> Auto segue ogni strategia; true forza ogni tick; false forza la chiusura della barra
- MinSLModifyStepPips -> movimento minimo in pips prima di modificare di nuovo un trailing stop o un trailing take-profit (predefinito 10; 0 invia ogni aggiornamento)
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)

A very strong product by Andrew! I have been using SomaBTC since day 1, so I witnessed the drawdown and the great recovery that followed. The take profit targets for some strategies are large which is perfect for capturing sudden/massive moves of Bitcoin . Highly recommend!