Semplice codice per confrontare visivamente le Equity dei Trading System

di Andrea Unger

Vuoi più aiuto? Prenota oggi la tua consulenza GRATUITA con il nostro team!

Definiremo una strategia che ti permetterà di avere tutto quello che ti serve per guadagnare costruendo e operando il tuo portafoglio di strategie automatizzate... Rispondi a qualche domanda nel nostro questionario e poi scegli giorno e ora più adatti a te.

PRENOTA ORA LA TUA CONSULENZA STRATEGICA >>

Sarebbe bello poter sovrapporre due equity line durante lo sviluppo e l'ottimizzazione di una strategia per confrontarne l'andamento… 

Peccato che le piattaforme di trading, come MultiCharts o TradeStation, non contengano strumenti per farlo.

Eppure confrontare due equity line ottenute variando ad esempio un parametro potrebbe essere molto utile in fase di sviluppo, soprattutto potendo sovrapporle per confrontarne le performance a colpo d'occhio.

In questo video, il nostro coach Davide ti mostrerà alcune righe di codice che, aggiunte a qualsiasi trading system, consentono di esportare i dati dei trade ottenuti durante il backtest e utilizzarli per creare e confrontare visivamente più equity curve con Excel (o ovviamente anche tenere traccia di tutti i tuoi backtest).

Guarda il video per scoprire come funziona il codice, come inserirlo nelle tue strategie e come utilizzarlo per semplificare le valutazioni durante il backtest!

P.S. Ecco il codice dello script in PowerLanguage di MultiCharts, pronto da utilizzare!

 

//Return Type: Numeric
//Function Storage: Series
var: Name(""),MarkP(0);
Name = text ("C:\Users\Utente\OneDrive\Documents\ExportTrades\",symbol,"-",getstrategyname,".txt");
MarkP = marketposition;
if MarkP<>MarkP[1] and MarkP[1]<>0 then print(file(Name),FormatDate("yyyy/MM/dd",DateTime)," at ",FormatTime("HH:mm",DateTime)," : ",positionprofit(1));
if barinterval = 1440 then begin
if TradesToday(d) > 0 then print(file(Name),FormatDate("yyyy/MM/dd",DateTime)," at ",FormatTime("HH:mm",DateTime)," : ",positionprofit(1));
end;
Z_Export_Trades=0;

Trascrizione

Ciao a tutti ragazzi e benvenuti in questo nuovo video.

Spesso sulle piattaforme di trading, quelle dedicate al backtest delle strategie, è possibile andare a valutare un'equity line alla volta, ma esiste un modo semplice e pratico per poter gestire più equity line sullo stesso grafico per poterle andare a confrontare meglio?

Durante lo sviluppo e la fase di ottimizzazione di una strategia capita molto spesso di dover guardare ripetutamente al performance report per dare un'occhiata ai parametri numerici della nostra strategia, oltre ad andare a visualizzare graficamente un'equity line che non fa altro che mostrare la cumulata dei trade che sono avvenuti durante il backtest.

Purtroppo però non c'è un tool presente sulle piattaforme che utilizziamo più spesso, come MultiCharts o TradeStation, per andare ad analizzare un confronto diretto tra due strategie magari identiche o che cambiano semplicemente di uno o due parametri, per avere un confronto visivo dell'andamento delle equity line una sovrapposta all'altra per capire meglio come si comporterebbe la strategia nei casi che sto andando ad analizzare.

Volevo quindi proporvi oggi uno script molto semplice da aggiungere alla fine delle vostre strategie per automatizzare quanto più possibile questo confronto.

Per vedere di che si tratta, possiamo prendere come analisi una delle strategie che abbiamo già costruito insieme in un video precedente. Vi lascio in alto a destra il link.

La strategia l'avevamo chiamata RSI Filter. Era una strategia piuttosto buona sul Mini S&P 500 e aveva un'equity molto simile a questa.

Proviamo a ritornare alla fase di sviluppo, nella quale siamo andati a cercare l'ottimo tra i parametri, e possiamo farlo adesso come esempio per andare a confrontare come cambierebbero i parametri, e quindi l'equity line, se cambiasse lo stop loss, portandolo da 1.000 a 1.500 dollari per esempio.

Il codice

Vi mostro il codice della strategia come l'avevamo costruita. Eccola qui. Quello che ho fatto è stato semplicemente aggiungere questa parola, che in realtà richiama una funzione, per andare ad esportare tutti i trade della strategia. Quindi questa funzione la potrò utilizzare per questa strategia ma anche per tutte le altre strategie che andrò a creare.

Ma cosa c'è dentro questa funzione? Andiamo a scoprirlo. Semplicemente, questa funzione va a creare un file di testo all'interno del nostro PC, nella cartella che desideriamo. Ad esempio, io l'ho pubblicato su Documenti in una cartella dedicata chiamata 'Export Trades'. Andrà a generare un file che si chiama esattamente come il simbolo sul quale stiamo applicando la strategia, e andrà a richiamare il nome della strategia stessa.

Dopodiché andrò a fare una verifica di questo tipo molto importante. Andrò a fare una verifica sulla market position nel corso del backtest. Per ogni barra, quindi ad ogni ricalcolo della strategia, io andrò a verificare la market position, andrò ad inserirla in una variabile che abbiamo chiamato 'MarkP' e poi farò questo confronto.

Andrò a verificare il valore attuale della market position confrontato rispetto al valore della market position di una barra fa. Andrò poi ad aggiungere un'altra condizione tramite la scrittura 'and', quindi dovranno verificarsi entrambe le condizioni, sulla market position della barra precedente che deve essere diversa da zero.

Questo cosa sta ad indicare nell'insieme? Sta ad indicare che una barra fa eravamo a mercato, perché la nostra posizione era diversa da zero, e la nostra market position è stata cambiata. Quindi o siamo usciti da una posizione long per entrare in un'altra posizione short, oppure siamo usciti da una posizione, long o short che sia, per ritornare flat.

Quindi se ci ritroviamo in queste condizioni, quindi effettivamente se si è appena concluso un trade, andrò a stampare nel file, quindi con il comando 'Print' aperta parentesi 'file' e andrò a richiamare il nome del file sul quale vorrò andare a scrivere, quindi il nome contenuto in questa riga. E andrò poi ad inserire, tramite 'FormatDate' la data nel quale si è concluso il trade, il tempo (quindi 'FormatTime').

Dopodiché andrò ad inserire 'positionprofit(1)'. Questa keyword sta ad indicare semplicemente qual è stato il profitto o la perdita della posizione appena chiusa.

Andando avanti io poi ho aggiunto queste tre righe nel caso ci fossero barre daily. In questo caso risulta un po' più difficile usare questo tipo di condizioni e ho utilizzato per semplicità un'altra funzione che è chiamata 'TradesToday'. In ogni caso vi consiglio di utilizzare questa funzione solo per timeframe intraday, in quanto potrebbe essere che, nell'eventualità in cui si usino barre daily, avvengano ingressi e uscite nella stessa barra. E questa cosa, lo sapete benissimo, non è assolutamente conveniente. E quindi lascerei l'utilizzo di questa funzione solo per i timeframe intraday.

Utilizzo e conclusioni

Andiamo adesso a vedere qual è il risultato di quanto abbiamo appena fatto. Quindi compilata la strategia con alla fine la parola che richiama la funzione, andiamo su Esplora Risorse a vedere che effettivamente nella cartella Documenti>Export Trades viene generato un file .txt.

Andiamo ad aprirlo e qui scopriamo che abbiamo una lista di tutti i nostri trade, alla quale abbiamo associato poi un time e una data che corrispondono all'orario e alla data di chiusura di tale posizione. Possiamo poi quindi andare ad importare ad esempio questa tabella, già così preparata, in Excel per andare a conservare tutti i nostri backtest che abbiamo effettuato.

In questo modo noi potremmo semplicemente andare a riprodurre l'equity line con diversi input e diversi parametri, per andare a capire non solo guardando ai numeri sulle tabelle di ottimizzazione, ma anche a vedere che cosa cambia proprio a livello di equity line.

Questo riporta l'esempio che vi ho citato poco fa. Possiamo vedere l'equity in rosso con la strategia avente uno stop loss di 1.000$, mentre in blu la stessa strategia con uno stop loss di 1500$.

Spero che questo video vi sia stato utile!

Se volete approfondire il nostro metodo per lo sviluppo di strategie sistematiche basato sul lavoro del 4 volte campione del mondo di trading Andrea Unger, qui sotto in descrizione vi lascio un link ad un webinar totalmente gratuito nel quale potrete approfondire il mondo del trading sistematico.

Vi lascio anche lo script della funzione da utilizzare con PowerLanguage, quindi in MultiCharts.

Vi ringrazio per avermi seguito fino a questo punto e vi do appuntamento ad un prossimo video. Ciao!

 

Vuoi più aiuto? Prenota oggi la tua consulenza GRATUITA con il nostro team!

Definiremo una strategia che ti permetterà di avere tutto quello che ti serve per guadagnare costruendo e operando il tuo portafoglio di strategie automatizzate... Rispondi a qualche domanda nel nostro questionario e poi scegli giorno e ora più adatti a te.

PRENOTA ORA LA TUA CONSULENZA STRATEGICA >>

Andrea Unger

Ciao, sono Andrea Unger, Trader professionista dal 2001 e unico a vincere per ben 4 volte il Campionato del Mondo di Trading con denaro reale.

Grazie a questi risultati sono spesso invitato come relatore in convegni in Europa, Stati Uniti e Asia. 

Sono inoltre autore di diversi libri, tra cui il primo in Italiano sulla Gestione del Rischio nel Trading, tradotto anche in Cinese e Inglese.

Metto a disposizione decenni di esperienza, di prove, di vittorie e sconfitte con le quali ho ideato un metodo scientifico, sistematico, replicabile e universale con cui, in soli 4 anni, più di 1.000 trader sono riusciti a rendersi autonomi.

Devi sapere infatti che gli studi dimostrano che solo il 25% dei trader guadagna, ma di questi ben il 90% lo fa con il trading sistematico...

Come mai allora i formatori insegnano quasi sempre solo il trading discrezionale? 

Non ti insegno a diventare ricco in poco tempo, ti insegno una professione che, con il duro lavoro, la passione, e sufficienti capitali potrebbe diventare la tua principale fonte di reddito.