Descrizione
Angora Trading System — BB + RSI Range Grid cBot
--------------------------------------------------
PANORAMICA
Angora Trading System è un cBot di mean-reversion. Cerca il prezzo spinto ai limiti delle Bande di Bollinger mentre l'RSI conferma una condizione di ipercomprato o ipervenduto, e opera il movimento di ritorno verso la banda centrale. L'indicatore ADX decide se il mercato è in fase di range o di trend, quindi il bot opera solo quando le condizioni sono adatte a questo approccio. Una griglia opzionale basata sull'ATR può aggiungere posizioni al basket quando il prezzo si muove contro la prima entrata. Ogni gamba condivide uno stop loss del basket, che viene inviato al broker con ogni ordine.
Il bot è stato progettato e testato su BTCUSD, US30, XAUUSD, EURUSD, GBPUSD e USDJPY M15. Funziona su qualsiasi simbolo e timeframe, ma si consiglia di effettuare backtest e regolare i parametri per ogni strumento.
INDICATORI UTILIZZATI
- Bande di Bollinger: zone di entrata (banda superiore e inferiore) e obiettivo di uscita (banda centrale o banda opposta).
- RSI (Indice di Forza Relativa): conferma condizioni di ipercomprato e ipervenduto per entrate e aggiunte alla griglia.
- ADX con +DI / -DI (Sistema di Movimento Direzionale): identifica il regime di mercato (range o trend) e la direzione del trend, e attiva l'uscita per rottura del trend.
- ATR (Average True Range): scala tutto alla volatilità corrente, inclusi spaziatura della griglia, distanza dello stop del basket, filtro della larghezza della banda, filtro della distanza dell'obiettivo e filtro dello spread.
Tutti i segnali utilizzano solo barre chiuse, quindi non si ridipingono.
COME OPERA
1) Regime di mercato (ADX)
- ADX sotto "ADX Max Entry" (default 25) = RANGE. Il bot opera inversioni sulle bande in entrambe le direzioni.
- ADX tra "ADX Max Entry" e "Trend ADX Max" (default 25-45) = TREND, se la Modalità Allineata al Trend è attiva. Il bot opera ritracciamenti solo nella direzione del trend: compra la banda inferiore in un trend rialzista (+DI > -DI) e vende la banda superiore in un trend ribassista (-DI > +DI).
- ADX sopra "Trend ADX Max" = nessuna nuova entrata (movimento estremo o parabolico).
- In modalità RANGE, le entrate sono saltate mentre l'ADX sale rapidamente, perché potrebbe iniziare un nuovo trend.
2) Segnale di entrata
- Modalità ReEntry (default): la barra precedente ha toccato o chiuso fuori da una banda, e l'ultima barra ha chiuso di nuovo all'interno. L'RSI deve essere ipervenduto (acquisto) o ipercomprato (vendita) in una delle ultime due barre.
- Modalità Touch: una barra che tocca la banda più la condizione RSI è sufficiente.
- Filtri: larghezza minima della Banda di Bollinger (evita squeeze e condizioni pre-breakout), distanza minima dall'obiettivo (il movimento deve essere abbastanza ampio da coprire i costi), spread, sessione e protezioni dell'account.
3) Griglia (opzionale)
- Quando il prezzo si muove contro il basket di "Grid Step" x ATR, il bot aggiunge una nuova gamba nella stessa direzione, fino a un massimo di "Max Grid Levels" gambe in totale. Anche le gambe chiuse contano per questo limite.
- Un'aggiunta alla griglia richiede che l'RSI sia ancora vicino alla zona estrema e che l'ADX rimanga sotto il limite della griglia. In modalità trend, il DI deve ancora puntare nella direzione del basket.
- Tutte le gambe condividono uno stop loss del basket posizionato oltre l'ultimo possibile livello della griglia. Viene inviato con ogni ordine, quindi nessuna posizione è mai aperta senza uno stop loss.
- Non vengono effettuate aggiunte alla griglia una volta attiva la protezione del profitto.
4) Uscite
- Obiettivo: il prezzo raggiunge la banda centrale (o la banda opposta) e il profitto del basket è almeno "Min Basket Profit at Target".
- Protezione del profitto: blocco al pareggio e un trailing profit floor (vedi sotto).
- Perdita massima del basket (in R), più lo stop loss del basket lato broker.
- Uscita soft time (chiusura al pareggio o meglio dopo N barre) e uscita hard time (chiusura dopo N barre).
- Uscita per rottura del trend: chiude un basket in perdita quando l'ADX supera la soglia e il DI si gira contro il basket.
COS'È "R"?
Il bot misura rischio e profitto in R:
- 1R (basket) = l'importo totale perso se tutti i livelli della griglia vengono riempiti e lo stop loss del basket viene colpito.
- Rp (protezione) = il rischio della prima gamba fino allo stop loss del basket. Le soglie di protezione del profitto usano Rp di default, così rimangono sensate quando la griglia è attiva. Con la griglia disattivata, R e Rp sono uguali.
PARAMETRI
[Trading]
- Usa Volume Fisso: ON = ogni gamba usa "Volume Fisso per Gamba". OFF = la dimensione della posizione è calcolata da "Rischio Basket %".
- Volume Fisso per Gamba (lotti): dimensione del lotto di ogni gamba quando il volume fisso è attivo. Default 0.01.
- Rischio Basket %: percentuale di equity persa se tutti i livelli della griglia si riempiono e lo stop del basket viene colpito (1R). Usato quando il volume fisso è disattivato. Default 2.
- Volume Max per Gamba (lotti): limite massimo sulla dimensione di una singola gamba. Default 1.0.
- Cooldown per Perdita (barre): numero di barre da attendere dopo un basket in perdita. Default 4.
- Slippage Max (pips): sopra 0, gli ordini sono inviati come ordini di mercato con range con questo limite di slippage. 0 = ordine di mercato normale.
- Etichetta / Suffisso Etichetta Automatica: etichetta della posizione. Con il suffisso attivo, l'etichetta diventa Label_Symbol_Timeframe, così più istanze possono funzionare senza interferenze.
[Bollinger & RSI]
- Periodo BB / Dev Std BB / Tipo MA BB: impostazioni delle Bande di Bollinger. Default 20 / 2.0 / Semplice.
- Periodo RSI: default 14.
- RSI Ipervenduto (ACQUISTO) / RSI Ipercomprato (VENDITA): soglie RSI in modalità RANGE. Default 30 / 70.
[Entrata]
- Modalità Entrata: ReEntry (default) o Touch.
- Larghezza Minima Banda (xATR): le bande devono essere almeno a questa distanza in ATR. Default 2.0.
- Distanza Minima Obiettivo (xATR): la distanza dall'entrata all'obiettivo deve essere almeno questa in ATR. Default 0.8.
- Permetti Acquisto / Permetti Vendita: abilita o disabilita ogni direzione.
[Modalità Trend]
- Usa Modalità Allineata al Trend: permette entrate di ritracciamento nella direzione del trend quando l'ADX è sopra la soglia di range. Default ON.
- Trend ADX Max: nessuna nuova entrata sopra questo valore ADX. Default 45.
- Spread Minimo DI Trend: differenza minima tra +DI e -DI necessaria per confermare la direzione del trend. Default 5.
- RSI Ipervenduto / Ipercomprato Trend: soglie RSI più morbide per i ritracciamenti. Default 40 / 60.
- Moltiplicatore Passo Griglia Trend: moltiplica il passo della griglia per i basket di trend. Default 1.5.
- Livelli Max Griglia Trend: massimo numero di gambe per un basket di trend. Default 3.
[ADX & ATR]
- Periodo ADX: default 14.
- ADX Max Entry: soglia RANGE / TREND. Default 25.
- Lookback Pendenza ADX / Pendenza Max ADX in Crescita: salta le entrate in RANGE se l'ADX è salito più di questa quantità nel lookback. Default 3 barre / 3.0 (0 = disattivato).
- Periodo ATR: default 14.
[Griglia]
- Usa Griglia: abilita o disabilita aggiunte alla griglia. Default ON.
- Passo Griglia (xATR): distanza avversa tra le gambe della griglia. Default 1.0.
- Livelli Max Griglia: massimo numero di gambe per basket, inclusa la prima entrata. Default 4.
- Moltiplicatore Volume Griglia: moltiplicatore del lotto per livello. 1.0 = lotti uguali (consigliato). Valori sopra 1.3 attivano un avviso martingala.
- Buffer Stop (xATR): distanza dello stop del basket oltre l'ultimo livello della griglia. Default 1.5.
- Aggiunta Griglia Richiede RSI / Buffer RSI Aggiunta Griglia: una gamba della griglia viene aggiunta solo mentre l'RSI è entro la soglia più questo buffer. Default ON / 10.
- ADX Max Griglia: nessuna aggiunta alla griglia sopra questo valore ADX (basket in range). Default 30.
- Intervallo Minimo Aggiunta Griglia (sec): tempo minimo tra tentativi di griglia. Default 60.
[Uscita]
- Obiettivo Uscita: MiddleBand (default) o OppositeBand.
- Profitto Minimo Basket all'Obiettivo (R): l'uscita obiettivo scatta solo se il profitto del basket è almeno questo. Default 0.05.
- Perdita Massima Basket (R): chiude il basket a questa perdita. Default 1.0 (0 = disattivato).
- Uscita Soft Time (barre): dopo questo numero di barre, chiude appena il basket è al pareggio o meglio. Default 32.
- Uscita Hard Time (barre): chiude sempre dopo questo numero di barre. Default 96.
- Usa Uscita per Rottura Trend / ADX Rottura Trend: chiude un basket in perdita quando l'ADX raggiunge questo livello e il DI è contro la posizione. Default ON / 35.
[Protezione del Profitto]
- Usa Protezione del Profitto: default ON.
- Base R Protezione: FirstLeg (default, consigliato con la griglia) o FullBasket.
- Trigger BE / Blocco BE (R): una volta che il profitto massimo raggiunge il trigger, viene garantito un profitto minimo pari al blocco. Default 0.75 / 0.1.
- Inizio Trail / Frazione Trail Keep: una volta che il profitto massimo raggiunge l'inizio del trail, il bot mantiene questa frazione del massimo. Il floor si muove solo verso l'alto. Default 2.0 / 0.5.
- Sposta SL Broker al Floor: converte il profitto protetto in un prezzo e sposta lo stop loss di ogni gamba lì, così il profitto è protetto anche lato broker. Default ON.
- Usa TP Parziale / TP Parziale (R) / Frazione Chiusura Parziale: chiude parte del basket a un profitto dato. Default OFF.
- TP Fisso (R): chiude tutto il basket a un profitto fisso, indipendentemente dalle bande. 0 = disattivato.
[Filtri di Mercato]
- Spread Max (pips) / Spread Max (xATR): salta entrate e aggiunte alla griglia quando lo spread è troppo ampio. Default disattivato / 0.2 x ATR.
- Usa Filtro Sessione / Ora Inizio / Fine Sessione (UTC): opera solo nelle ore indicate. Default OFF.
- Blocca Entrate Weekend / Ora Taglio Venerdì: protezione opzionale per il weekend.
[Protezione Account]
- Perdita Massima Giornaliera (% equity) / Chiudi Posizioni al Limite Giornaliero: blocca nuove entrate per il resto della giornata e può chiudere posizioni aperte. Default 5% / ON.
- Drawdown Massimo (% picco equity) / Ferma Bot al Drawdown Massimo: chiude tutto e può fermare il bot. Default 20% / ON.
- Massimo Numero di Operazioni al Giorno: 0 = illimitato.
- Rischio Totale Massimo (% equity): limite sul rischio totale aperto fino allo stop loss. Default 3%. Sempre applicato quando si dimensiona per percentuale di rischio.
- Applica Limite Rischio in Modalità Fissa: applica anche il limite sopra quando il volume fisso è attivo. Default OFF.
[Log]
- Livello Log: Silenzioso, Normale o Verboso.
- Stampa Linee CSV Trade: stampa una linea CSV per ogni basket completato, per un'analisi facile.
SICUREZZA AL RIAVVIO E REPORTISTICA
- Dopo un riavvio o una riconnessione, il bot ricostruisce il basket aperto (direzione, gambe, stop, profitto realizzato) dai commenti di posizione e dalla cronologia delle operazioni.
- Quando il bot si ferma, stampa un riepilogo statistico: operazioni, tasso di vincita, fattore di profitto, vincita e perdita media, drawdown massimo e serie di perdite, più risultati raggruppati per motivo di uscita (ad esempio RANGE/obiettivo, TREND/blocco profitto).
COME INIZIARE
1. Inizia con un backtest sul tuo simbolo e timeframe con i parametri di default, usando dati tick e un periodo di almeno 3-6 mesi.
2. Controlla le linee "STATS BY REASON" nel log per vedere quali uscite fanno o perdono denaro.
3. Mantieni la griglia conservativa: lotti uguali (Moltiplicatore Volume Griglia = 1.0) e 3-4 livelli.
4. Mantieni il rischio per basket (o lotto fisso) a un livello dove la protezione per perdita giornaliera non viene raggiunta da operazioni normali.
5. Effettua un test in forward su un conto demo prima di operare live.
AVVISO DI RISCHIO
Operare prodotti con leva come CFD e criptovalute comporta un alto livello di rischio e potrebbe non essere adatto a tutti gli investitori. Strategie di griglia e mediazione possono aumentare le perdite durante trend forti. Le performance passate, inclusi i risultati dei backtest, non garantiscono risultati futuri. Usa questo cBot a tuo rischio e solo con capitale che puoi permetterti di perdere.
Riepilogo
The system supports an optional ATR-based grid that adds positions when the price moves against the initial entry, with all legs sharing a single basket stop loss sent to the broker. Exits include reaching target bands, profit protection via break-even locks and trailing stops, basket max loss limits, time-based exits, and trend-break exits triggered by ADX signals.
Designed and tested on multiple instruments including BTCUSD, US30, XAUUSD, EURUSD, GBPUSD, and USDJPY on the M15 timeframe, it is adaptable to other symbols and timeframes with parameter adjustments. Risk and profit are measured in "R" units, representing the basket risk. The bot includes configurable parameters for trading volume, grid settings, market filters, and risk management tools such as stop loss, take profit, trailing stop, break-even management, and daily loss guards. It supports market orders and reconstructs open positions after restarts for continuity.
