SkdonSeriesMulti
- Experts
-
Igor Bulyshev
Умный, красивый, в меру упитанный и талантливый трейдер-программист в полном расцвете сил!!)) - Versione: 6.85
Questo Expert Advisor (EA) è progettato per il trading multimoneta a lungo termine (permanente) su 28 coppie di valute (l'elenco delle coppie è fisso nel codice) sul timeframe M30. Elenco delle coppie valutarie: EURUSD, GBPUSD, AUDUSD, USDCAD, USDJPY, USDCHF, GBPJPY, EURJPY, AUDCAD, AUDJPY, CHFJPY, EURCHF, EURGBP, NZDJPY, NZDUSD, CADJPY, AUDCHF, AUDNZD, CADCHF, EURAUD, EURCAD, EURNZD, GBPAUD, GBPCHF, CBPCAD, GBPNZD, NZDCAD, NZDCHF.
Il suo obiettivo è cogliere i movimenti di tendenza e gestire i rischi tramite meccanismi speciali di averaging, ordini di blocco (locking) e protezione di emergenza.
La strategia principale è basata sul trend, utilizzando il mio indicatore Skdon2, che ad ogni barra chiusa fornisce un segnale BUY o SELL.
Al cambio di segnale, l'EA chiude le vecchie posizioni secondo una regola specifica e piazza una serie di 4 (il numero è impostabile nelle impostazioni) ordini pendenti (BUYSTOP o SELLSTOP) nella direzione del nuovo segnale.
1. Cosa fa l'EA in generale
Analizza ogni coppia di valute sul timeframe a 30 minuti utilizzando un indicatore proprietario integrato nel codice.
Quando l'indicatore fornisce un segnale di acquisto o vendita, l'EA apre una serie di ordini: un ordine a mercato (immediatamente al prezzo corrente) e diversi ordini pendenti (sopra il mercato per gli acquisti, sotto per le vendite) con un passo impostato nelle impostazioni. Il numero di ordini pendenti è definito dal parametro InpPendingCount (valore predefinito 4, ma nel tester viene forzatamente ridotto a 2 per evitare errori di limite).
Se il segnale cambia in direzione opposta, l'EA chiude la vecchia serie (totalmente o parzialmente) e ne apre una nuova nella nuova direzione.
In questo modo, segue il trend, ribaltandosi continuamente al cambio di segnale.
2. Modalità operative
L'EA dispone di tre modalità principali:
-
Modalità 0 – Normale. L'EA opera a pieno regime: apre nuove serie, le gestisce, utilizza la compensazione e il trailing stop. Questa è la modalità principale per le operazioni quotidiane.
-
Modalità 1 – Exit market (uscita). Non vengono aperte nuove serie. Le serie esistenti continuano a essere gestite (trailing, averaging, locking), ma una volta chiuse, non ne verranno aperte di nuove. Da utilizzare quando si desidera uscire gradualmente dal mercato, senza chiudere tutto bruscamente.
-
Modalità di liquidazione (automatica). Si attiva automaticamente se, su una qualsiasi coppia, la perdita supera una determinata percentuale del capitale (default 5%). All'attivazione:
-
Viene impedita l'apertura di nuove serie.
-
Vengono chiuse solo le serie in profitto, per raccogliere guadagni e ridurre la perdita complessiva.
-
La modalità si disattiva quando la perdita complessiva scende al di sotto della percentuale impostata (default 4%) o quando non rimane alcun ordine a mercato. Dopo di che, il normale funzionamento riprende.
-
3. Come vengono aperte e chiuse le serie
Il segnale dell'indicatore Skdon2 viene calcolato su ogni nuova barra M30. Se il segnale cambia (ad esempio, da "acquistare" a "vendere"), l'EA considera che il trend si sia invertito.
Se la serie non esiste ancora, al manifestarsi del segnale viene aperto:
-
1 ordine a mercato (Buy o Sell) – immediatamente
-
Diversi ordini pendenti (Buy Stop o Sell Stop) a distanza StepDistance l'uno dall'altro. Il loro numero è definito dal parametro PendingCount .
Se la serie esiste già e il segnale cambia in direzione opposta, allora:
-
Vengono prima chiusi (cancellati) tutti gli ordini pendenti.
-
Poi vengono chiusi gli ordini a mercato secondo le seguenti regole:
-
Se il profitto totale della serie è positivo, vengono chiusi tutti gli ordini a mercato della serie.
-
Se il profitto totale è negativo, vengono chiusi solo gli ordini in profitto, mentre quelli in perdita rimangono aperti (per non realizzare la perdita).
-
-
Dopo di che, viene aperta una nuova serie nella nuova direzione.
4. Modalità di compensazione (averaging e locking)
Quando su una coppia si accumula una perdita superiore al 2,5% del capitale, l'EA attiva la modalità di compensazione per quella coppia. In questa modalità operano:
-
Averaging (mediazione). Viene individuato l'ordine più in perdita su quella coppia. Quando il prezzo si allontana dall'ultimo ordine di averaging di una distanza pari a AveragingStepPoints , viene aperto un nuovo ordine nella stessa direzione di quello in perdita. Questo consente di abbassare il prezzo medio di entrata. Il lotto di ogni successivo averaging viene aumentato di un coefficiente moltiplicatore ( AveragingMultiplier ), ma in modo frazionario (il lotto iniziale è calcolato come lotto_iniziale / FractionSize ). Ciò garantisce una crescita graduale dei lotti, non brusca. Non appena il profitto totale di questa serie di compensazione (ordine target + tutti gli averaging) raggiunge il valore obiettivo ( lotto_iniziale * 250 ), l'intera serie viene chiusa in profitto.
-
Ordini di blocco (Locking). Vengono aperti quando la perdita supera il 3% e c'è uno squilibrio tra il volume totale degli acquisti (Buy) e delle vendite (Sell) (differenza superiore a 0,01 lotti). L'ordine di blocco viene aperto contro la direzione prevalente (se ci sono più Buy, viene aperto un Sell, e viceversa). Questo copre parzialmente la posizione. Il lotto del lock = squilibrio * LockLotPercent / 100 . Dopo l'apertura del lock, lo squilibrio si riduce e il successivo lock avrà un volume minore.
-
Nuovi lock vengono aperti solo nella direzione che migliora il precedente:
-
Per i lock Sell – quando il prezzo scende (migliora la posizione Sell).
-
Per i lock Buy – quando il prezzo sale.
-
-
La distanza tra i lock è LockStepPoints . Ciò impedisce l'apertura frequente di lock allo stesso livello. I lock sono inoltre gestiti con trailing stop (il trailing stop è presente su tutti gli ordini della coppia in modalità di compensazione, eccetto gli ordini di averaging).
-
Trailing stop. Agisce solo sulle coppie in modalità di compensazione. Per ogni ordine (tranne quelli di averaging), il trailing si attiva quando il prezzo si è mosso dal prezzo di apertura di almeno TrailingActivation punti. Quindi lo stop loss viene spostato a una distanza TrailingStopDist dal prezzo corrente, ma non più spesso di quanto consentito dal passo TrailingStep . Questo permette di fissare il profitto al proseguire del movimento del prezzo.
5. Meccanismi di protezione aggiuntivi
-
Protezione dai gap. All'apertura di una nuova barra M30, viene verificata l'eventuale presenza di un gap (salto brusco del prezzo) tra la chiusura della barra precedente e l'apertura di quella corrente. Se l'ampiezza del gap supera GapThreshold , l'EA cancella tutti gli ordini pendenti su quella coppia e chiude gli ordini a mercato (se il profitto totale è positivo – tutti; se negativo – solo quelli in profitto). Dopo un "raffreddamento" di 40 secondi, il segnale viene ricalcolato e, se è cambiato, viene aperta una nuova serie.
-
Chiusura di vecchi ordini in perdita. Ogni 8 minuti vengono controllati gli ordini a mercato aperti da più di 35 ore e in perdita. Per l'ordine in perdita "peggiore", l'EA cerca serie in profitto su altre coppie e le chiude finché non accumula profitto sufficiente a coprire la perdita più un piccolo margine. Quindi chiude anche il vecchio ordine in perdita.
-
Chiusura di ordini opposti. Se sulla stessa coppia ci sono Buy in profitto e Sell in perdita (o viceversa), e il profitto di un lato copre la perdita dell'ordine più in perdita della serie con un margine, allora gli ordini in profitto vengono chiusi insieme all'ordine più in perdita, per ridurre il rischio complessivo.
6. Pannello informativo. Sul grafico viene visualizzato un pannello con due blocchi:
-
Pannello sinistro: modalità corrente, stato di liquidazione, profitto target, elenco delle coppie in modalità di compensazione.
-
Pannello destro: profitto degli ultimi giorni, numero di ordini, volumi, vecchie perdite, ultime azioni del robot di trading.
7. Descrizione di tutte le impostazioni (parametri di input)
Gruppo 1: Impostazioni principali
-
Base magic number = 100 – Identificatore di tutti gli ordini dell'EA. Se si hanno più copie su conti diversi, modificare questo numero per evitare conflitti.
-
Work mode = 0 – 0: modalità normale; 1: modalità di uscita (non vengono aperte nuove serie). Usato per il completamento manuale dell'attività.
-
Risk percent = 30 – Influenza la dimensione del lotto. Più alto è il numero, maggiore è il lotto. Ad esempio, con 30, il lotto base = capitale * 0.003 / 10000 (formula empirica). Si consiglia di adattarlo al proprio rischio.
-
Minimum gap = 35 – Dimensione minima del gap in punti standard che attiva la protezione. Per le coppie JPY, il punto = 0,01; per le altre = 0,0001.
-
Pending orders count = 4 – Numero di ordini pendenti da aggiungere a ogni ordine a mercato all'apertura della serie. Più sono, più profonda è la griglia.
-
Distance between pendings = 15 – Passo tra gli ordini pendenti in punti. Influenza la densità della griglia.
-
Show info panel = true – Mostra il pannello informativo sul grafico. Può essere disattivato per risparmiare risorse e durante i test.
Gruppo 2: Modalità di liquidazione
-
Loss % to activate = 5.0 – Se la perdita su una qualsiasi coppia supera questa percentuale del capitale, si attiva la modalità di liquidazione.
-
Loss % to exit = 4.0 – Quando la perdita complessiva su tutte le coppie scende al di sotto di questa percentuale, la modalità di liquidazione si disattiva.
Gruppo 3: Compensazione e trailing
-
Lock lot percent = 15.0 – Percentuale dello squilibrio dei volumi utilizzata per calcolare il lotto dell'ordine di blocco.
-
Lock step points = 5 – Passo tra gli ordini di blocco in punti. Un nuovo lock viene aperto solo quando il prezzo si allontana di questa distanza nella direzione di miglioramento.
-
Averaging step points = 20 – Passo tra gli ordini di averaging. Un nuovo ordine di averaging viene aperto quando il prezzo percorre questa distanza dall'ultimo ordine di averaging.
-
Averaging multiplier = 1.7 – Fattore di aumento del lotto per ogni successivo averaging. Valori >1 danno luogo a una crescita dei lotti.
-
Trailing activation = 18 – Quanti punti deve percorrere il prezzo dall'apertura per attivare il trailing stop.
-
Trailing stop distance = 15 – Distanza dal prezzo corrente alla quale impostare lo stop loss durante il trailing. Deve essere inferiore all'attivazione, in modo che lo stop sia in profitto.
-
Trailing step = 2 – Variazione minima dello stop loss durante l'aggiornamento. Protegge da modifiche frequenti.
Gruppo 4: Chiusura frazionaria
-
Profit factor = 250.0 – Utilizzato nel meccanismo ausiliario di chiusura degli ordini opposti.
-
Fraction size = 5.0 – Dimensione della parte frazionaria per gli averaging. Il primo lotto di averaging = lotto_iniziale / FractionSize . Un numero più basso significa un primo lotto di averaging più grande.
8. Consigli pratici importanti
-
Iniziare con un conto demo per comprendere il comportamento dell'EA con le proprie impostazioni.
-
Assicurarsi che TrailingStopDist sia sempre inferiore a TrailingActivation , altrimenti il trailing posizionerà lo stop loss in perdita.
-
In caso di elevata volatilità, aumentare GapThreshold e i passi ( StepDistance , LockStepPoints , AveragingStepPoints ) per evitare attivazioni frequenti.
-
Per un trading più aggressivo, aumentare LockLotPercent e AveragingMultiplier , riducendo i passi.
-
La modalità di liquidazione è una protezione estrema. Se si attiva spesso, significa che il rischio è troppo alto: ridurre RiskPercent o aumentare le soglie di attivazione.
-
L'EA è completamente automatico, ma richiede una connessione Internet stabile e la presenza di tutte le 28 coppie nell'elenco dei simboli.
Punti di forza dell'EA
-
Multivaluta – 28 coppie di valute. L'elevata diversificazione riduce la dipendenza da una singola valuta.
-
Pulizia automatica del portafoglio – il robot liquida autonomamente vecchie perdite e posizioni opposte, senza bisogno di controllo manuale.
-
Obiettivo globale di profitto – il fissaggio regolare del risultato complessivo rende la curva di crescita del capitale più regolare.
-
Elevata tolleranza ai guasti del sistema di trading – sono previsti tentativi ripetuti in caso di errori, protezione dalla mancanza di barre, verifica dei permessi di trading.
Rischi e loro mitigazione
-
Rischio di mercato (cambiamento brusco del trend, grandi perdite). Chiusura parziale delle posizioni al cambio di segnale + obiettivo globale + pulizia dai vecchi ordini in perdita. Gli ordini in perdita non vengono mantenuti per settimane o mesi.
-
Gap (weekend, notizie importanti). Algoritmo di protezione speciale: in caso di gap ≥ 35 punti (soglia impostabile), gli ordini pendenti sulla coppia vengono chiusi; dopo 40 secondi (periodo di raffreddamento), si analizza lo stato dell'indicatore e si prosegue.
-
Guasto tecnico (interruzione di corrente, riavvio). Tutti gli stati vengono ripristinati al riavvio del sistema di trading: la direzione delle serie viene letta dagli ordini esistenti; lo stato dell'indicatore per ogni coppia viene costantemente salvato e confrontato con lo stato successivo al riavvio.
-
Drawdown dopo una serie di perdite. Grazie all'algoritmo di raggiungimento dell'obiettivo globale e al meccanismo di piazzamento di ordini opposti, le perdite vengono compensate dai profitti dei lati dominanti.
-
Periodo di funzionamento del sistema di trading: 24 ore su 24, dal lunedì al venerdì.
L'EA è completamente automatico e non richiede intervento manuale.
Buona fortuna nel trading!
Negli screenshot sono forniti i report di test dell'EA su varie coppie di valute per 3 anni. Nei test sono state utilizzate le impostazioni predefinite. Si prega di notare che, trattandosi di un robot di trading multivaluta, durante i test nel tester di strategie su una singola coppia selezionata, l'algoritmo di chiusura dei vecchi ordini in perdita tramite il profitto di serie di ordini su altre coppie non funziona.
Caratteristiche di funzionamento nel tester
Per un test positivo, l'EA limita automaticamente il numero di ordini pendenti a 2 e il numero totale di ordini aperti a 30. Ciò è stato fatto per prevenire l'errore 148 (superamento del limite di ordini).
