Come ottimizzare un cBot
In cTrader è possibile creare cBot con un numero qualsiasi di parametri personalizzabili che influenzano i loro comportamenti, come i livelli di protezione degli ordini o i volumi degli ordini predefiniti. Ciò solleva la questione di come esattamente i trader possano determinare i valori ottimali di questi parametri. Fortunatamente, cTrader offre uno strumento integrato in grado di gestire l'ottimizzazione, facendo risparmiare ai trader tempo prezioso.
In questa guida per l'utente ci concentriamo su come gli utenti possono ottimizzare i propri cBot e dimostriamo perché l'ottimizzazione dei cBot è essenziale per qualsiasi sviluppatore Algo.
Come funziona l'ottimizzazione dei cBot
Pensa all'ottimizzazione come a una serie di backtest. Ogni passaggio di backtesting avviene sugli stessi dati ma utilizza valori diversi per tutti i parametri codificati in un cBot.
Considera un cBot che può reagire ai casi in cui le medie mobili a periodo veloce e lento si incrociano (la media mobile veloce incrocia la media mobile lenta). Vogliamo essere in grado di personalizzare per quanti periodi veloci e lenti il cBot riceve i dati.
Il nostro cBot, pertanto, dovrebbe avere i seguenti due parametri.
1 2 3 4 5 | |
Per definire i valori ottimali dei parametri, dovremmo testare ampiamente come funziona il cBot in varie condizioni di mercato e quando vengono forniti valori diversi per i due parametri sopra indicati. Se dovessimo eseguire questi test manualmente, richiederebbero molto tempo senza fornire un insieme di risultati di facile interpretazione.
Fortunatamente, possiamo far eseguire questi test automaticamente a cTrader e, alla loro conclusione, fornirci determinati valori di parametri che consentono al cBot di ottenere i migliori risultati possibili. Questo processo è noto come ottimizzazione dei cBot.
Accedere all'ottimizzazione dei cBot
Per accedere all'ottimizzazione dei cBot, esegui le seguenti azioni.
Innanzitutto, seleziona un'istanza del cBot che desideri ottimizzare. Se necessario, crea una nuova istanza facendo clic sull'icona più e selezionando un simbolo, oppure selezionando Aggiungi istanza nel menu contestuale che si apre facendo clic sull'icona Altro.
Successivamente, passa alla scheda Ottimizzazione situata appena a destra della scheda Backtesting. La schermata centrale in questa scheda dovrebbe apparire come segue.

Configura le impostazioni di ottimizzazione e i parametri del cBot
Poiché l'ottimizzazione è una serie di backtest, puoi configurare le stesse impostazioni che configureresti per il backtesting normale. Per farlo, fai clic sull'icona ingranaggio e modifica i valori nel menu appena aperto.

Per selezionare i parametri esatti che cTrader deve ottimizzare, fai clic sul pulsante Parametri immediatamente a destra dell'icona ingranaggio.

In questa sottosezione, abilita o disabilita i flag a sinistra di ciascun nome di parametro per includere/escludere questi parametri dal processo di ottimizzazione. Nota che il parametro Timeframe è presente per tutti i cBot indipendentemente dalla loro configurazione.
Vogliamo che l'ottimizzazione determini i valori ottimali dei periodi lenti e veloci che il nostro cBot considererà all'avvio. Tuttavia, non vogliamo ancora provare altri tipi di moving average.
Definisci i criteri e l'algoritmo di ottimizzazione
È possibile determinare quali criteri esatti cTrader utilizzerà per selezionare i valori ottimali dei parametri tra i passaggi di backtesting che condurrà.
Per farlo, fai clic sul pulsante Criteri rappresentato dall'icona della linea verso l'alto. Vedrai la seguente sezione.

Le impostazioni per ciascun criterio includono due menu. Nel menu a sinistra, seleziona se il criterio deve essere minimizzato o massimizzato. Nel menu a destra, scegli il criterio che deve essere minimizzato o massimizzato da un insieme di opzioni predefinite. È possibile aggiungere nuovi criteri facendo clic su Aggiungi criterio.
Nello screenshot sopra, vogliamo che cTrader massimizzi il nostro profitto netto e il numero di transazioni redditizie che il nostro cBot effettua. Allo stesso tempo, vogliamo minimizzare la percentuale massima di diminuzione del capitale netto.
Per motivi di brevità, questo articolo non tratta i criteri di ottimizzazione personalizzati e il metodo GetFitness(). Per saperne di più su di essi, consulta la nostra documentazione tecnica.
Per scegliere un algoritmo di ottimizzazione specifico, fai clic sul pulsante Algoritmo a destra del pulsante Criteri. Dovrebbe aprirsi la seguente sottosezione.

L'algoritmo di ricerca esaustiva è altamente accurato ma richiede molte risorse. Quando è selezionata l'opzione Griglia, cTrader crea una griglia di tutti i possibili valori dei parametri ed esegue tutti i backtest necessari per testarli. Sebbene questo processo sia approfondito, può richiedere del tempo.
Fortunatamente, cTrader include l'opzione Algoritmo genetico. Questo algoritmo emula la selezione naturale considerando ogni passaggio come un individuo, i parametri del cBot come geni e il grado di adattamento ai criteri di ottimizzazione come adattabilità. L'algoritmo genetico si ferma una volta rilevato che eventuali modifiche a determinati valori dei parametri produrrebbero rendimenti decrescenti sull'efficacia del cBot.
Poiché l'algoritmo genetico richiede meno risorse rispetto alla ricerca esaustiva pur producendo risultati accurati, consigliamo di selezionare questo metodo di ottimizzazione.
Allocare risorse ed eseguire l'ottimizzazione del cBot
Per eseguire l'ottimizzazione del cBot, seleziona l'intervallo di dati storici su cui cTrader eseguirà i passaggi di backtesting. Per farlo, utilizza il dispositivo di scorrimento del calendario nella parte superiore della scheda Ottimizzazione o i menu a sinistra e a destra di esso.
Nota che l'ottimizzazione è un processo che richiede molte risorse e potrebbe richiedere del tempo per essere completato. Poiché vogliamo ricevere i risultati relativamente rapidamente, sceglieremo un anno come periodo di ottimizzazione.

cTrader consente inoltre di determinare l'esatta percentuale delle risorse CPU allocate al processo di ottimizzazione. Per personalizzare questa impostazione, fai clic sul pulsante Risorse a sinistra del menu del calendario più a sinistra.

Nella sezione appena apparsa, trascina il dispositivo di scorrimento per aumentare o diminuire il consumo di CPU.
Dopo aver terminato l'allocazione delle risorse, dovresti essere pronto per procedere con l'ottimizzazione. Per farlo, fai clic sul pulsante Play a destra del menu del calendario più a destra. Dopo che cTrader ha caricato i dati storici, vedrai i passaggi di ottimizzazione aggiunti alla schermata centrale in tempo reale.

Nella parte superiore della griglia vedrai anche il numero attuale di passaggi, il tempo trascorso e il tempo di ottimizzazione rimanente.
Tutti i passaggi completati saranno contrassegnati con un segno di spunta verde. Tutti i passaggi durante i quali il tuo cBot ha raggiunto lo stop out saranno invece contrassegnati con un segno di spunta grigio.
Nota
Puoi salvare e caricare i risultati di ottimizzazione, il che ti consente di trasferirli su dispositivi diversi.
Interpretare e applicare i risultati dell'ottimizzazione
Nella griglia centrale, cTrader visualizzerà diverse metriche per ciascun passaggio di backtesting, incluso il numero di transazioni redditizie effettuate dal tuo cBot e la percentuale massima di diminuzione del capitale netto.
Di particolare rilievo è la colonna Fitness che visualizza un punteggio di fitness per ciascun passaggio. Considera il punteggio di fitness come una metrica che valuta il grado in cui un passaggio ha massimizzato/minimizzato i criteri di ottimizzazione da te scelti. Punteggi di fitness più elevati indicano gradi più elevati di corrispondenza con questi criteri.
Per selezionare rapidamente il passaggio con il punteggio di fitness più elevato, è sufficiente abilitare il flag Seleziona automaticamente il passaggio migliore situato appena sopra la griglia centrale. Nota che puoi abilitare il flag Seleziona automaticamente il passaggio migliore mentre l'ottimizzazione è in corso, e cTrader cercherà dinamicamente i migliori valori possibili dei parametri.

Come puoi vedere nella colonna Fitness, il passaggio numero 33 ha fornito il miglior punteggio di fitness possibile rispetto a tutti gli altri passaggi.
Possiamo tranquillamente fare clic su Applica accanto al passaggio 33, e i valori dei parametri utilizzati durante questo passaggio verranno immediatamente applicati alla nostra istanza cBot.

I valori predefiniti per i parametri Periodi lenti e Periodi veloci erano pari rispettivamente a 10 e 5.
Come nel caso del backtesting, la visualizzazione Vista trading fornirà un grafico del capitale netto e statistiche dettagliate sulle transazioni che riassumono le azioni intraprese dal nostro cBot durante un particolare passaggio. Nota che il grafico del capitale netto viene visualizzato solo per i 20 migliori passaggi della griglia centrale.

Le linee Saldo e Capitale netto in costante aumento rafforzano semplicemente il fatto che il passaggio 33 ha fornito i valori dei parametri necessari affinché il nostro cBot funzioni efficacemente.
Riepilogo
In breve, l'ottimizzazione dei cBot è uno strumento potente per garantire che i tuoi consulenti di trading automatizzati siano configurati nel modo giusto. Consigliamo vivamente di condurre più cicli di ottimizzazione con criteri diversi per avere un'idea di quali valori dei parametri sarebbero migliori per qualsiasi cBot che hai sviluppato tu stesso o acquisito da altri sviluppatori.