Trading algoritmico con Python - pagina 19

 

Come utilizzare l'indicatore del volume per l'analisi della strategia di trading in Python


Come utilizzare l'indicatore del volume per l'analisi della strategia di trading in Python

Oggi stiamo intraprendendo un viaggio entusiasmante mentre testiamo una strategia di volume trading. Questa particolare strategia opera nell'arco di tempo giornaliero ed è nota per la sua sicurezza, poiché in teoria comporta un rischio minimo. L'ho giustamente chiamata "Strategia di trading sul volume" a causa della sua dipendenza dal volume e da altri indicatori tecnici.

Il nostro obiettivo è sviluppare un codice in grado di testare automaticamente questa strategia utilizzando dati storici fino a 18 anni. In questo modo, possiamo ottenere una comprensione completa della performance della strategia. Per coloro che sono interessati all'aspetto della codifica, è possibile trovare il file Python di Jupyter Notebook nella descrizione del video. È disponibile un collegamento per scaricare il file completo che utilizzeremo per questo test.

Per iniziare, utilizzeremo la media mobile esponenziale a 200 giorni (EMA) come primo indicatore. Se il prezzo viene scambiato al di sotto di questa curva, indica una tendenza al ribasso, mentre la negoziazione al di sopra dell'EMA 200 indica una tendenza al rialzo. La nostra prima regola è semplice: quando identifichiamo una tendenza al ribasso, considereremo solo le posizioni di vendita e, nel caso di una tendenza al rialzo, ci concentreremo esclusivamente sulle posizioni di acquisto.

Ora, approfondiamo le specifiche della nostra strategia. Cercheremo quattro candele consecutive che si muovano contro la tendenza prevalente, cioè ritracciando il prezzo più vicino alla media mobile. È importante notare che il numero di candele può essere regolato in base alle preferenze dell'utente. Nel nostro Jupyter Notebook, abbiamo fornito la flessibilità di modificare questo parametro in qualsiasi momento. Per ora, continueremo con un minimo di quattro candele.

Successivamente, esaminiamo la seguente candela, che dovrebbe allinearsi con la direzione del trend. Ad esempio, se siamo in una tendenza al ribasso, cerchiamo una candela ribassista. Alla fine della giornata di trading, una volta chiusa la candela, ne controlliamo il volume. Se il volume supera quello della candela precedente, funge da segnale di vendita in un trend ribassista. Al contrario, in un trend rialzista, cerchiamo almeno quattro candele ribassiste consecutive seguite da una candela rialzista con un volume maggiore rispetto alla candela precedente. Questo indica una posizione di acquisto.

Ora arriva la parte intricata: determinare i livelli di stop loss e take profit. In questo video, esploriamo due diversi approcci e ne valutiamo i risultati. Il primo metodo prevede l'utilizzo di una distanza di stop loss relativa all'Average True Range (ATR), ad esempio due o tre volte l'ATR dalle nostre posizioni di vendita o acquisto. Il secondo metodo considera il massimo più alto tra le poche candele precedenti come il nostro stop loss per una tendenza al ribasso e una posizione di vendita. Il numero di candele da considerare per impostare lo stop loss è una variabile nel nostro programma Python, che ci permette di sperimentare e testare diversi scenari. In genere, inizio con quattro candele, simili al numero utilizzato per controllare i nostri segnali di trading. Per un trend rialzista e una posizione di acquisto, cerchiamo il minimo più basso tra le poche candele precedenti.

Ora, esaminiamo il codice e vediamo come funziona tutto insieme. Nel nostro file Jupyter Notebook, iniziamo importando le librerie necessarie, inclusi i Panda, che utilizzeremo per leggere il file di dati CSV contenente i tassi di cambio giornalieri EUR/USD dal 2003 al 2022. Inoltre, carichiamo i dati per altri asset come le azioni Amazon, eBay e Volkswagen, poiché intendiamo testare questa strategia anche sul mercato azionario. Poiché stiamo lavorando con dati giornalieri, il set di dati iniziale è composto da 6.858 righe, che verranno ulteriormente ridotte durante il processo di pulizia dei dati. Garantiamo inoltre che i titoli delle colonne siano in linea con i nostri requisiti, rinominandoli in "Ora", "Aperto", "Alto", "Basso", "Chiuso" e "Volume" per coerenza tra diversi file di dati.

Dopo aver tracciato i segnali sul grafico, passiamo alla definizione dei nostri livelli di stop loss e take profit. In questo esempio, vengono testati due metodi. Il primo metodo prevede l'utilizzo dell'Average True Range (ATR) per determinare la distanza di stop loss. Lo stop loss è fissato a un certo multiplo dell'ATR dal punto di ingresso. Il secondo metodo considera il massimo più alto per le posizioni di vendita o il minimo più basso per le posizioni di acquisto tra un numero specificato di candele precedenti per determinare il livello di stop loss.

Una volta definiti i livelli di stop loss e take profit, calcoliamo il profitto e la perdita (P&L) per ogni operazione. Controlliamo se il segnale totale è un segnale di acquisto o di vendita e calcoliamo il P&L di conseguenza. Se si tratta di un segnale di acquisto, calcoliamo il P&L come la differenza tra il prezzo di chiusura della candela successiva e il prezzo di entrata. Se si tratta di un segnale di vendita, calcoliamo il P&L come la differenza tra il prezzo di entrata e il prezzo di chiusura della candela successiva.

Il P&L cumulativo viene quindi calcolato sommando i P&L delle singole operazioni. Calcoliamo anche il numero totale di operazioni e il tasso di vincita (percentuale di operazioni vincenti) in base ai P&L positivi.

Infine, stampiamo i risultati, incluso il P&L totale, il numero di operazioni e il tasso di vincita.

Il codice fornito in Jupyter Notebook consente un'ulteriore personalizzazione e test della strategia. È possibile modificare parametri come il numero di back candle da considerare per la determinazione del trend, il numero di candele precedenti per la generazione del segnale di prezzo, il multiplo di ATR per il calcolo dello stop loss e il numero di candele precedenti da considerare per la determinazione del livello di stop loss.

Il codice implementa una strategia di volume trading basata su indicatori tecnici come la media mobile esponenziale (EMA) a 200 giorni, il volume e i movimenti dei prezzi. Testa la strategia su un periodo specificato di dati storici e calcola le metriche di redditività e performance.

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
 

Strategia di scalping con backtest del modello CandleStick in Python



Strategia di scalping con backtest del modello CandleStick in Python

In questo video discuteremo e dimostreremo una semplice strategia di scultura che si basa sui concetti presentati nei due video precedenti. Se sei interessato ai dettagli specifici e al codice Python per questa strategia, puoi trovare un link nella descrizione del video.

La strategia che stiamo utilizzando ruota attorno a tre medie mobili esponenziali (EMA): veloce, media e lenta. Analizzando l'allineamento di queste EMA, possiamo stimare se l'andamento dei prezzi è al rialzo o al ribasso. In un trend rialzista, l'EMA veloce è al di sopra dell'EMA medio, che è al di sopra dell'EMA lento. Al contrario, in una tendenza al ribasso, l'ordine è invertito.

Per acquistare posizioni in un trend rialzista, cerchiamo candele che si aprono al di sotto e chiudono al di sopra della veloce EMA. D'altra parte, per vendere posizioni in una tendenza al ribasso, cerchiamo candele che si aprono sopra e chiudono sotto l'EMA veloce. Il video fornisce esempi di candele che soddisfano questi criteri per l'acquisto di posizioni in un trend rialzista.

La strategia è stata precedentemente testata e ottimizzata utilizzando un conto con leva finanziaria con un rapporto di leva di 1:100. Il test è stato condotto per un periodo di tre anni, con una percentuale di rendimento del 445% e una percentuale di vincita del 55%. Tuttavia, è importante notare che la strategia ha mostrato ampi periodi di ribasso e la curva azionaria non è stata stabile per tutto il triennio.

Per migliorare la strategia, viene introdotta una condizione aggiuntiva. Oltre alle candele che attraversano l'EMA veloce, consideriamo ora la lunghezza degli stoppini delle candele. Se si tratta di un trend rialzista, la candela dovrebbe avere una coda inferiore molto corta, indicando un forte slancio verso l'alto. Allo stesso modo, in una tendenza al ribasso, la candela non dovrebbe avere una coda alta. Questa condizione mira a filtrare i segnali con momentum debole.

Per valutare l'efficacia di questa condizione aggiuntiva, la strategia viene testata utilizzando Python. Il codice sorgente per il backtesting è fornito in un file Jupyter Notebook, che può essere scaricato dal collegamento nella descrizione del video.

Il backtesting viene eseguito utilizzando i dati del grafico Euro/USD a 15 minuti dal 2019 al 2022, coprendo tre anni di dati. I dati vengono preelaborati rimuovendo le candele con volume zero e reimpostando l'indice del frame di dati. Le tre medie mobili (50, 100 e 150) e l'average true range (ATR) vengono aggiunte al data frame.

La strategia genera segnali basati sull'allineamento delle medie mobili e il segnale totale si ottiene identificando le candele che attraversano l'EMA veloce nella stessa direzione del trend. Il video mostra come questi segnali possono essere visualizzati sui grafici.

Vengono testati diversi metodi per impostare i valori di stop loss e take profit. Questi includono la distanza fissa, le distanze relative all'ATR, il trailing stop loss e lo stop loss osservato dal prezzo. I risultati per ciascun metodo vengono confrontati prima e dopo l'aggiunta della terza condizione.

Quando viene aggiunta la terza condizione, la strategia mostra miglioramenti significativi in tutti i metodi testati. Il metodo stop loss e take profit a distanza fissa produce un rendimento del 1805% con una percentuale di vincita del 59%. Il metodo relativo ad ATR ottiene un rendimento del 249% e una percentuale di vincita del 51%. Il metodo del trailing stop loss, che in precedenza era perdente, ora produce un rendimento del 394% e una percentuale di vincita del 42,5%. Infine, lo stop loss osservato dal prezzo, anch'esso in perdita, genera ora un rendimento del 373% con un tasso di vincita del 49%.

Oltre ai rendimenti migliorati, le curve azionarie per tutti i metodi mostrano una tendenza complessiva al rialzo, indicando una performance più stabile e positiva rispetto ai risultati precedenti.

Il video sottolinea che questa strategia non è presentata come un sistema di trading completo, ma piuttosto come un'illustrazione dell'impatto dell'aggiunta della condizione di stoppino basso.

Il video si conclude evidenziando alcuni punti importanti da considerare quando si utilizza questa strategia:

  1. La strategia dimostrata nel video è un esempio semplificato e non deve essere considerata un sistema di trading completo. Serve come illustrazione di come l'aggiunta di determinate condizioni può migliorare le prestazioni di una strategia.

  2. I risultati del backtesting non sono indicativi della performance futura. Sebbene la strategia abbia mostrato rendimenti migliori durante il periodo di test, le condizioni di mercato possono cambiare e i risultati passati potrebbero non essere replicati in futuro.

  3. È essenziale eseguire test e ottimizzazioni approfonditi prima di applicare qualsiasi strategia al trading reale. Il backtesting consente di valutare le prestazioni della strategia in diverse condizioni di mercato e di affinare i suoi parametri per ottenere risultati migliori.

  4. La gestione del rischio è fondamentale. Impostare correttamente i livelli di stop loss e take profit è essenziale per proteggere il capitale e gestire il rischio. Il video ha mostrato diversi metodi per impostare questi livelli, ma è importante considerare la tolleranza al rischio e le dimensioni dell'account quando si determinano i valori appropriati.

  5. La disciplina emotiva è necessaria per il trading di successo. Attieniti alla tua strategia ed evita di prendere decisioni impulsive basate su fluttuazioni di mercato a breve termine.

  6. Prendere in considerazione altri fattori e indicatori che possono integrare questa strategia. Nessuna singola strategia funziona perfettamente in tutte le condizioni di mercato, quindi è utile combinare più indicatori e tecniche per un'analisi più completa.

  7. Monitora e valuta continuamente le prestazioni della tua strategia. Man mano che le condizioni di mercato cambiano, potrebbe essere necessario adattare e perfezionare il tuo approccio per rimanere redditizio.

Ricorda, il trading nei mercati finanziari comporta dei rischi ed è importante istruirti, cercare una consulenza professionale ed esercitarti con cautela prima di impegnare fondi reali. Il video funge da risorsa educativa e spetta a te esplorare ulteriormente e personalizzare la strategia in base al tuo stile di trading e alla tua tolleranza al rischio.

Scalping Strategy With CandleStick Pattern Backtest In Python
Scalping Strategy With CandleStick Pattern Backtest In Python
  • 2022.03.10
  • www.youtube.com
This is a scalping Trading Strategy optimization using CandleStick Wick length pattern to confirm price momentum along with 3 moving exponential averages to ...
 

Semplice backtest della strategia di trading di scalping EMA in Python (parte 1)


Semplice backtest della strategia di trading di scalping EMA in Python (parte 1)

Oggi stiamo intraprendendo un viaggio per testare le strategie di scalping. So che molti di voi lo hanno richiesto ultimamente e, devo ammettere, di solito evito tempi brevi e scalping perché trovo che sia un approccio rischioso e spesso emotivamente drenante.

Tuttavia, quando si tratta di metodi algoritmici, le cose potrebbero essere più semplici. Con gli algoritmi, possiamo testare la nostra strategia e avere una chiara comprensione dei risultati attesi. Quindi, si spera, non ci saranno spiacevoli sorprese dal momento che il nostro modello è già stato sottoposto a backtest. Come al solito, il codice Python è disponibile per il download dal link nella descrizione del video se sei interessato alla parte di codifica. In caso contrario, puoi semplicemente goderti il video e vedere che tipo di risultati potrebbe produrre la nostra strategia.

Per iniziare, ho scelto qualcosa di relativamente semplice: useremo tre medie mobili esponenziali. Uno è veloce, un altro è medio e il terzo è lento. Useremo queste medie mobili per rilevare le tendenze. Quando queste medie mobili sono allineate in un ordine specifico (veloce sopra la media sopra la media mobile lenta), abbiamo un trend rialzista. Al contrario, l'ordine opposto indica una tendenza al ribasso.

Per garantire l'accuratezza delle tendenze, ho anche aggiunto un'altra condizione. Le pendenze di queste curve dovrebbero puntare nella stessa direzione. In un trend rialzista, le tre curve dovrebbero avere pendenze positive, mentre in un trend ribassista le pendenze dovrebbero essere negative.

Una volta che avremo un chiaro segnale di tendenza, cercheremo il nostro punto di ingresso. Ad esempio, se stiamo cercando una posizione di acquisto, aspetteremo una candela che si apre al di sotto della media mobile veloce e si chiude al di sopra di essa. Questa candela indica la continuazione del trend rialzista e funge da punto di ingresso.

L'aspetto interessante qui è che possiamo codificare tutto questo in Python e testare la strategia. Inizialmente, non ci concentreremo molto sull'ottimizzazione poiché voglio mantenere questo video conciso. Tuttavia, in un video futuro, cercheremo di ottimizzare i parametri e vedere se riusciamo a ottenere una combinazione vincente nelle nostre operazioni.

Ora, tuffiamoci nel codice Python ed esaminiamo i risultati del backtesting. Utilizzeremo la coppia di valute Euro/USD con candele di 15 minuti dal 2019 al 2022. Il frame di dati è composto da 105.000 righe, con ciascuna riga che rappresenta una candela di 15 minuti. Puliamo il frame di dati rimuovendo le righe con un volume pari a zero, che corrisponde ai fine settimana e ai giorni liberi in cui non ci sono movimenti di mercato.

Successivamente, importiamo il modulo pandas_ta (Pandas Technical Analysis) e calcoliamo le tre diverse medie mobili: EMA 50, EMA 100 ed EMA 150. Calcoliamo anche le pendenze di queste medie mobili utilizzando una finestra mobile di 10 candele.

In questa fase, il nostro frame di dati include i prezzi di apertura, massimo, minimo e chiusura, il volume, tre medie mobili e le loro pendenze corrispondenti. Ora possiamo verificare le condizioni per il rilevamento della tendenza. Se la media mobile veloce è al di sotto della media mobile media e la media mobile media è al di sotto della media mobile lenta e tutte e tre le pendenze sono negative, indica una tendenza al ribasso. Al contrario, se la media mobile veloce è sopra la media mobile media, la media mobile media è sopra la media mobile lenta e tutte e tre le pendenze sono positive, segnala un trend rialzista. Queste condizioni vengono aggiunte come colonne nel nostro data frame.

Per visualizzare i segnali sui nostri grafici, definiamo una funzione che traccia i punti sopra o sotto le candele in base al segnale totale. Il segnale totale rappresenta i punti di entrata, con 1 che indica un segnale di vendita e 2 che indica un segnale di acquisto. Le posizioni dei punti vengono aggiunte come una colonna nel frame di dati.

Tracciamo i segnali e le candele per una gamma specifica di candele.

Tracciamo i segnali e le candele per una gamma specifica di candele, permettendoci di analizzare visivamente la performance della strategia. I cerchi verdi indicano segnali di acquisto, mentre i cerchi rossi indicano segnali di vendita. Questa rappresentazione visiva ci aiuta a capire come si sarebbe comportata la strategia in tempo reale.

Dopo aver visualizzato i segnali, calcoliamo la performance della strategia. Iniziamo con un capitale di $ 10.000 e iteriamo attraverso ogni candela. Se riceviamo un segnale di acquisto, entriamo in una posizione lunga con una dimensione fissa. Se riceviamo un segnale di vendita, usciamo dalla posizione lunga e calcoliamo il profitto/perdita in base alla variazione del prezzo dall'entrata. Teniamo traccia del profitto/perdita cumulativo e del numero di operazioni eseguite.

Alla fine del periodo di backtesting, calcoliamo il profitto/perdita totale, il numero di operazioni vincenti, il numero di operazioni perdenti, la percentuale di vincita e il profitto/perdita media per operazione.

Nel video, presento i risultati del backtesting per la strategia data. Tieni presente che i risultati sono specifici per l'intervallo di tempo e la coppia di valute scelti. La strategia può funzionare diversamente in altre condizioni di mercato o con parametri diversi.

Per riassumere i risultati, il backtesting mostra che la strategia ha funzionato relativamente bene, generando un rendimento positivo durante il periodo di backtesting. Tuttavia, è importante notare che le prestazioni passate non sono indicative dei risultati futuri e potrebbero essere necessari ulteriori test e ottimizzazioni.

Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
  • 2022.02.24
  • www.youtube.com
Simple scalping Trading strategy using 3 exponential moving averages backtested in python, the scalping strategy is explained and the python code also in Jup...
 

Semplice backtest della strategia di trading di scalping EMA in Python (ottimizzazione della parte 2)



Semplice backtest della strategia di trading di scalping EMA in Python (ottimizzazione della parte 2)

Ciao! Bentornati a questo video, che è una continuazione del nostro video precedente. In questo video, miriamo a ottimizzare la strategia di scultura introdotta in precedenza. Ricapitolando brevemente, ci concentreremo sull'ottimizzazione del parametro chiamato 'back rolling n', che determina il numero di candele da considerare nel calcolo delle pendenze delle medie mobili. Variando il numero di candele, ad esempio 20, 10 o 5, possiamo calcolare la pendenza media di queste medie mobili. Inoltre, esploreremo la possibilità di aggiungere condizioni sulle pendenze della media mobile, come il test per pendenze inferiori a una soglia specifica, come da -10 a -4. Sperimentando questi parametri, miriamo a creare un filtro migliore per identificare le tendenze.

Inoltre, esploreremo diversi approcci di gestione delle negoziazioni, tra cui valori di stop loss e take profit fissi, trailing stop loss e stop loss e take profit relativi all'ATR (Average True Range). Esaminando questi diversi approcci, speriamo di determinare quale strategia di gestione degli scambi produce i risultati più favorevoli.

È importante notare che questo sistema di sculpting non è progettato per stili di trading veloci, poiché stiamo lavorando con un lasso di tempo di 15 minuti. Tuttavia, lo stesso sistema può essere testato su tempi più brevi, anche se potrebbe essere più impegnativo a causa dell'aumento del rumore del mercato.

Prima di approfondire il codice, ti consigliamo di guardare il video precedente in cui abbiamo spiegato la strategia in dettaglio. Questo ti fornirà una migliore comprensione del processo di ottimizzazione che stiamo per presentare.

Passiamo ora al nostro file Jupyter Notebook. Iniziamo creando un frame di dati e pulendo i dati. Successivamente, calcoliamo tre diverse medie mobili e calcoliamo le pendenze di queste medie mobili. È qui che iniziamo a testare la nostra strategia.

Inizialmente, consideriamo una finestra mobile di 10 candele, il che significa che calcoliamo la media della pendenza per le medie mobili veloci, medie e lente utilizzando i dati di queste 10 candele. Eseguiamo questo codice per assicurarci che tutto funzioni correttamente, compresi i segnali che abbiamo introdotto nel video precedente.

Per facilitare il test, stabiliamo una scala temporale considerando che quattro candele rappresentano un'ora, dato che stiamo lavorando con candele da 15 minuti. Con questa configurazione, possiamo selezionare una porzione specifica del nostro frame di dati per testare la nostra strategia. Ad esempio, possiamo scegliere un periodo di tre mesi specificando l'indice di partenza come 37.000 e selezionando la durata corrispondente.

Dopo aver caricato i dati per il periodo selezionato, possiamo eseguire il nostro backtest. La nostra dimensione iniziale del lotto è impostata al 30% della nostra equity e consideriamo uno stop loss di 40 pip e un take profit di 45 pip. Applichiamo anche un margine di 1 su 100, che riflette un conto con leva finanziaria con un saldo di cassa di 100 come punto di partenza.

Eseguendo il backtest, osserviamo un rendimento del 107% per il trimestre. Tuttavia, per garantire la robustezza del nostro modello, è fondamentale testare la strategia su diversi intervalli di tempo. Modificando l'indice di partenza, possiamo selezionare vari periodi e valutare la performance. Ad esempio, proviamo un diverso indice iniziale di 47 ed eseguiamo il backtest, ottenendo un rendimento del 30%.

Possiamo ripetere questo processo con diversi indici di partenza per analizzare la performance della strategia su più periodi. Tuttavia, per testare per periodi più lunghi, dobbiamo selezionare una porzione più piccola del nostro frame di dati. Ad esempio, possiamo scegliere una fetta di 10 o 12 mesi per valutare la performance annuale.

Testando la strategia per un anno intero, otteniamo un rendimento del 100%, raddoppiando di fatto l'importo iniziale. Anche se questo è positivo, la frequenza degli scambi è relativamente bassa, con solo 193 scambi durante l'anno. Il tasso di vincita è di circa il 44%, il che indica margini di miglioramento.

Per migliorare la nostra strategia, esploreremo diversi valori per il parametro "back rolling n". Testando diversi numeri di candele, come 20, 10 o 5, possiamo valutare il loro impatto sulla performance della nostra strategia. Ad esempio, possiamo modificare il nostro codice per impostare il valore "backrolling n" su 20 ed eseguire nuovamente il backtest.

Dopo il test con un "backrolling n" di 20, osserviamo un rendimento del 90% per il periodo di tre mesi, leggermente inferiore alla nostra impostazione iniziale di 10. Ciò suggerisce che un "backrolling n" più piccolo potrebbe essere più efficace in catturare le tendenze a breve termine.

Successivamente, introduciamo condizioni aggiuntive basate sulle pendenze delle medie mobili. Ad esempio, possiamo implementare un requisito secondo cui le pendenze di tutte e tre le medie mobili devono essere inferiori a -4. Ciò significa che entriamo in uno scambio solo se tutte e tre le pendenze sono negative e inferiori a -4. Modifichiamo il nostro codice di conseguenza ed eseguiamo il backtest.

Implementando le condizioni aggiuntive, possiamo perfezionare ulteriormente la nostra strategia. Al momento del test, osserviamo un rendimento del 127% per il trimestre, indicando un miglioramento rispetto ai nostri risultati iniziali. Tuttavia, è importante notare che queste condizioni possono anche ridurre la frequenza delle negoziazioni, in quanto forniscono un filtro più rigoroso.

Ora esploriamo diversi approcci di gestione commerciale. Iniziamo implementando una strategia fissa di stop loss e take profit, in cui impostiamo valori predeterminati per entrambi i parametri. Ad esempio, possiamo impostare uno stop loss fisso di 40 pip e un take profit di 45 pip. Dopo aver modificato il codice ed eseguito il backtest, analizziamo i risultati.

Con l'approccio fisso stop loss e take profit, osserviamo un rendimento del 95% per il periodo di tre mesi. Sebbene questo sia leggermente inferiore ai nostri risultati iniziali, fornisce un sistema di gestione del rischio controllato. Tuttavia, è importante valutare la performance su periodi più lunghi e diverse condizioni di mercato per valutarne l'efficacia.

Successivamente, esploriamo una strategia di trailing stop loss. Invece di utilizzare valori fissi, lo stop loss si regola dinamicamente man mano che il commercio avanza a nostro favore. Ad esempio, possiamo impostare un trailing stop loss di 30 pip, il che significa che se il prezzo si sposta a nostro favore di 30 pip, lo stop loss viene spostato in pareggio. Modifichiamo il nostro codice di conseguenza ed eseguiamo nuovamente il backtest.

Con l'approccio trailing stop loss, otteniamo un rendimento del 120% per il periodo di tre mesi. Ciò dimostra il potenziale della regolazione dinamica dello stop loss per proteggere i profitti e massimizzare i guadagni. Tuttavia, è essenziale valutarne le prestazioni su diversi tempi e condizioni di mercato per garantirne la solidità.

Infine, esploriamo una strategia di gestione degli scambi basata sull'Average True Range (ATR). L'ATR fornisce una misura della volatilità del mercato, che può essere utilizzata per impostare i livelli di stop loss e take profit. Incorporando l'ATR nella nostra strategia, possiamo adattare la nostra gestione del rischio alle condizioni di mercato prevalenti. Modifichiamo il nostro codice per implementare i livelli di stop loss e take profit basati su ATR ed eseguire il backtest.

Incorporando i livelli di stop loss e take profit basati su ATR, otteniamo un rendimento del 110% per il periodo di tre mesi. Ciò indica la potenziale efficacia dell'adattamento della nostra gestione del rischio alla volatilità del mercato.

In conclusione, attraverso il processo di ottimizzazione, abbiamo esplorato diversi parametri e approcci di gestione commerciale per migliorare la nostra strategia di scultura. Variando il parametro "backrolling n", implementando condizioni aggiuntive basate sulle pendenze della media mobile ed esplorando diverse tecniche di gestione degli scambi, siamo stati in grado di migliorare le prestazioni della strategia. Tuttavia, è importante condurre ulteriori test su diversi tempi, condizioni di mercato e valutare la robustezza della strategia prima di applicarla nel trading dal vivo.

Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
  • 2022.03.03
  • www.youtube.com
This is a continuation of the previous video, here we optimize our simple EMA Scalping trading strategy and we try to backtest the different parameters sets ...
 

Strategia di trading ad alto rendimento utilizzando l'effetto leva



Strategia di trading ad alto rendimento utilizzando l'effetto leva

Ciao a tutti e bentornati sul mio canale. Oggi approfondiremo un argomento che non abbiamo trattato prima: la leva finanziaria. Devo ammettere che sono stato piuttosto scettico al riguardo a causa dei rischi intrinseci coinvolti. Tuttavia, voglio sottolineare che questi video sono principalmente a scopo educativo. Non sto raccomandando di adottare ciecamente un sistema di trading con leva finanziaria senza comprenderne appieno le implicazioni. Quindi, in questo video, prenderemo una strategia di trading utilizzata in precedenza che abbiamo già discusso in video precedenti ed esploreremo gli effetti dell'incorporazione della leva finanziaria nel nostro sistema di trading.

Iniziamo con una breve introduzione su come funziona la leva finanziaria. Tipicamente, la leva finanziaria è rappresentata da un rapporto, come 1:10 fino a 1:1000, anche se è più comune trovare rapporti tra 1:10 e 1:50. Ciò significa che se hai un account con $ 1.000, ti sarà consentito acquistare o vendere posizioni con un valore fino a $ 10.000 se scegli un rapporto di leva di 1:10. Aumentando il rapporto di leva finanziaria, diciamo a 1:50, gli stessi $ 1.000 nel tuo account ti permetterebbero di effettuare acquisti con un valore fino a $ 50.000. Le specifiche opzioni di leva a tua disposizione dipendono dal tuo broker, dal paese in cui opera, dalle normative e da altri fattori relativi al tipo di conto.

Tuttavia, è importante notare che la leva finanziaria non è priva di costi. Sebbene possa amplificare i tuoi potenziali profitti, amplifica anche i rischi e può esaurire rapidamente il saldo del tuo conto. I principianti sono spesso presi di mira da trader o broker più grandi che approfittano della loro mancanza di esperienza. È fondamentale tenerlo presente.

Ci sono due regole chiave da tenere a mente quando si utilizza la leva finanziaria. In primo luogo, la leva finanziaria può aiutare a ingrandire i profitti se la tua strategia ha un alto tasso di vincita. Al contrario, amplificherà anche le tue perdite se la tua strategia ha un basso tasso di vincita. La definizione di un tasso di vincita alto o basso dipende da vari fattori come il tipo di strategia, i valori di stop loss e take profit e il tuo approccio alla gestione del denaro. Ricorda sempre che la leva ha un prezzo. Se puoi acquistare o vendere posizioni con una quantità di denaro 100 volte superiore a quella che possiedi, significa che i tuoi fondi sono principalmente lì per coprire potenziali perdite, che possono verificarsi rapidamente quando si fa trading con importi significativamente maggiori.

In questo video, utilizzeremo Python per eseguire il backtest della strategia discussa in precedenza. Inizieremo controllando i rendimenti utilizzando un normale conto di trading e quindi introdurremo un conto con leva nella nostra strategia di trading algoritmico. Eseguiremo il backtest di queste variazioni, esamineremo i risultati e valuteremo i vantaggi e i rischi associati all'utilizzo di un conto con leva finanziaria. Il vantaggio di utilizzare Python è che possiamo modificare qualsiasi parametro come desiderato e osservare gli effetti sulla nostra percentuale di rendimento. Questa potenza di calcolo ci consente di testare e ottenere informazioni sui vantaggi e gli svantaggi dell'utilizzo di un conto con leva finanziaria.

Il codice Python che useremo è simile al codice utilizzato nel video precedente sull'approccio martingala nel trading. La cella iniziale prevede il caricamento e la pulizia dei dati, il ripristino dell'indice e l'esecuzione di altri passaggi necessari. Oggi non dedicherò molto tempo al codice, poiché ne abbiamo parlato nei video precedenti. Utilizzeremo le funzioni di supporto e resistenza, insieme al riconoscimento del pattern candlestick, per rilevare inversioni di tendenza e generare segnali di trading. Per questa strategia, ci concentreremo sui modelli di candele di rifiuto che si verificano vicino a livelli di supporto o resistenza come potenziali segnali di inversione di tendenza.

High Return Trading Strategy Using Leverage Effect
High Return Trading Strategy Using Leverage Effect
  • 2022.02.17
  • www.youtube.com
Here we Backtest an Algorithmic Trading Strategy using Python on a Leverage Account. The leverage can be a variable depending on the strategy you are intend...
 

Martingale Swing Trading Strategia Backtest algoritmico in Python



Martingale Swing Trading Strategia Backtest algoritmico in Python

Oggi approfondiremo l'affascinante argomento dell'approccio martingala quando combinato con una strategia di trading vincente. Se non hai già guardato il nostro video precedente sul metodo della martingala o altri video su questo canale che descrivono la strategia che useremo, ti consiglio vivamente di provarli prima. Questi video coprono i livelli di supporto e resistenza, i modelli di candele e forniscono una solida base per comprendere il nostro approccio in questo video. Includerò alcuni link nella descrizione del video per tua comodità.

Inoltre, per coloro che sono interessati, è possibile scaricare il codice Python che sto utilizzando per eseguire il backtest di questa strategia dal collegamento fornito nella descrizione. Questo codice ti consentirà di seguire ed esplorare i risultati per te stesso.

Ora, facciamo un breve riepilogo per coloro che sono nuovi sul nostro canale o che si uniscono a noi. Il metodo martingala prevede di raddoppiare la dimensione della nostra posizione ogni volta che chiudiamo un'operazione in perdita. L'idea alla base di questo approccio è recuperare le perdite precedenti con una grande vittoria. In un video precedente, abbiamo spiegato e applicato il metodo della martingala a una strategia di trading completamente casuale che sceglie casualmente tra posizioni di acquisto e vendita.

In questo video, stiamo adottando un approccio diverso. Applicheremo il metodo della martingala a una strategia di trading vincente. La nostra strategia prevede l'identificazione di livelli di supporto e resistenza, nonché specifici modelli di candele che indicano potenziali inversioni di tendenza. Quando rileviamo un modello di candela vicino a un livello di supporto o resistenza, eseguiamo la nostra operazione di conseguenza. I valori di stop-loss e take-profit sono determinati sulla base di un rapporto chiamato rapporto take-profit/stop-loss.

Ora, è importante notare che i risultati di questa strategia sono già stati testati nei video precedenti e hanno mostrato ritorni positivi. L'obiettivo qui è vedere se possiamo aumentare ulteriormente i profitti aggiungendo l'approccio martingala a questa strategia.

Ok, tuffiamoci nel codice Python. Innanzitutto, per questo video carichiamo e puliamo i dati giornalieri EUR/USD dal 2003 al 2021. Verifichiamo quindi se il frame di dati è caricato correttamente stampando la coda del frame di dati.

Successivamente, abbiamo le funzioni per rilevare i livelli di supporto e resistenza, che useremo nel nostro programma. Se hai bisogno di una spiegazione dettagliata di queste funzioni, fai riferimento ai nostri video precedenti.

Abbiamo anche altre funzioni chiamate livelli "is_engulfing", "is_star" e "close_to_resistance" o "close_to_support". Queste funzioni ci aiutano a identificare specifici modelli di candele e determinare se sono vicini ai livelli di supporto o resistenza. Questi modelli verranno utilizzati per generare i nostri segnali di trading.

Nella cella di generazione del segnale, generiamo i nostri segnali in base ai modelli di candela che rileviamo. Se troviamo un modello engulfing ribassista o qualsiasi altro segnale di vendita vicino a un livello di resistenza, lo consideriamo un segnale di vendita e assegniamo un valore pari a 1 alla colonna del segnale nel nostro frame di dati. Allo stesso modo, se troviamo un pattern engulfing rialzista o qualsiasi altro segnale di acquisto vicino a un livello di supporto, lo consideriamo un segnale di acquisto e assegniamo un valore di 2 alla colonna del segnale. In tutti gli altri casi, il valore del segnale è 0, a indicare l'assenza di segnale.

Ora possiamo includere il pacchetto backtesting.py per eseguire il backtest della nostra strategia. Definiamo una funzione chiamata "segnale" che restituisce i valori del segnale per ogni riga nel nostro frame di dati. Questa funzione viene utilizzata all'interno della nostra classe personalizzata chiamata "CandleStrategy", che eredita dalla classe strategica del modulo backtesting.py.

Nella nostra classe CandleStrategy, inizializziamo la dimensione della nostra posizione di trading a 0,05, che rappresenta il 5% del capitale che deteniamo. Facciamo trading con questa dimensione di posizione ogni volta che riceviamo un segnale.

Se il valore del segnale è 1 (segnale di vendita), controlliamo se abbiamo posizioni aperte. Se lo facciamo, chiudiamo la posizione esistente e impostiamo la dimensione della posizione su zero. Quindi, inseriamo una nuova posizione corta con la dimensione della posizione definita in precedenza.

Se invece il valore del segnale è 2 (segnale di acquisto), seguiamo un processo simile. Controlliamo se abbiamo posizioni aperte, le chiudiamo se necessario e inseriamo una nuova posizione lunga con la dimensione della posizione predefinita.

Ora definiamo i nostri livelli di take-profit e stop-loss. Il livello di take-profit viene calcolato moltiplicando il prezzo di entrata per il rapporto take-profit/stop-loss. Il livello di stop-loss viene calcolato moltiplicando il prezzo di entrata per il valore negativo del rapporto take-profit/stop-loss. Questi valori assicurano che il nostro livello di take-profit sia più lontano dal prezzo di entrata rispetto al livello di stop-loss.

Infine, eseguiamo il nostro backtest utilizzando la classe CandleStrategy e stampiamo i risultati. Calcoliamo varie metriche di performance come il rendimento totale, il rendimento medio giornaliero, il prelievo massimo e il numero di operazioni eseguite.

Ora eseguiamo il backtest e analizziamo i risultati.

Dopo aver eseguito il backtest, possiamo osservare i risultati. Il rendimento totale, il rendimento giornaliero medio e il drawdown massimo sono metriche importanti per valutare la performance della nostra strategia.

Nel nostro caso, il rendimento totale è del 256,17%, il che significa che il nostro investimento iniziale è più che raddoppiato. Il rendimento giornaliero medio è dello 0,04%, indicando un rendimento costantemente positivo nel periodo di backtesting. Il drawdown massimo è del 10,98%, che rappresenta il più grande calo della curva azionaria da un picco a un successivo minimo.

Questi risultati indicano che la nostra strategia di trading vincente, combinata con l'approccio martingala, è stata redditizia nel periodo testato. Tuttavia, è importante notare che le performance passate non sono indicative dei risultati futuri e questa strategia dovrebbe essere attentamente valutata e convalidata prima di utilizzarla nel trading dal vivo.

In conclusione, l'approccio martingala, se combinato con una strategia di trading vincente, può potenzialmente migliorare la redditività complessiva della strategia. Tuttavia, è essenziale considerare attentamente i rischi coinvolti, come il potenziale di grandi prelievi e la necessità di capitale sufficiente per sostenere il raddoppio multiplo delle dimensioni delle posizioni.

Grazie per esserti unito a me in questo video e spero che tu l'abbia trovato informativo e utile. Se hai domande o suggerimenti, lasciali nei commenti qui sotto. Non dimenticare di mettere mi piace e iscriverti al nostro canale per ulteriori strategie di trading e tutorial. Buon commercio!

Martingale Swing Trading Strategy Algorithmic Backtest In Python
Martingale Swing Trading Strategy Algorithmic Backtest In Python
  • 2022.02.10
  • www.youtube.com
Python algorithmic strategy used for backtesting the Martingale Swing Trading Strategy, a winning indicator that was presented in previous videos. Martingale...
 

Backtesting della strategia di trading Martingale per il trading algoritmico



Backtesting della strategia di trading Martingale per il trading algoritmico

Oggi parleremo dell'approccio Martingale, che può essere incorporato in qualsiasi strategia di trading per compensare le operazioni in perdita. Eseguiremo il backtest di questo metodo utilizzando Python e approfondiremo i vantaggi e i rischi connessi all'implementazione di Martingale.

Immaginiamo di entrare in un casinò con venti dollari in tasca e di decidere di giocare alla roulette, scommettendo solo sui colori. Scommetteremo un dollaro sul rosso o sul nero. Se la nostra prima scommessa sul rosso perde, rimarremo con 19 dollari. Nel round successivo, raddoppieremo la nostra scommessa a due dollari poiché in precedenza avevamo una scommessa perdente. Se anche questa scommessa perde, rimarremo con 17 dollari. Continuiamo a raddoppiare la nostra scommessa ogni volta che perdiamo, con l'obiettivo di compensare le perdite precedenti. Alla fine, avremo una scommessa vincente che copre le perdite precedenti e aggiunge un piccolo profitto. In questo esempio, finiamo con un totale di 21 dollari, poco più del nostro importo iniziale. Questo approccio, raddoppiando la scommessa dopo una perdita, è noto come approccio Martingale.

Inizialmente, il metodo Martingale sembra promettente e può dare l'impressione di guadagni rapidi e consistenti. Tuttavia, è essenziale comprendere i rischi associati a questo approccio. Per comprendere meglio questo metodo e i suoi rischi, testeremo la strategia utilizzando un approccio Monte Carlo. Questo approccio utilizza numeri casuali per generare segnali per l'acquisto o la vendita di posizioni, ignorando completamente gli indicatori tecnici o le previsioni personalizzate. I segnali si basano esclusivamente su una distribuzione casuale uniforme.

Per implementare il backtest, scriveremo codice Python. Iniziamo importando le librerie necessarie, come i panda per la manipolazione dei dati. Carichiamo e puliamo i dati, rimuovendo le righe con volumi di scambio pari a zero. Dopo aver preparato i dati, generiamo i segnali casuali utilizzando la funzione casuale del modulo numpy. Per ogni candela, generiamo un numero casuale compreso tra 0 e 1. Se il numero è inferiore a 0,5, assegniamo un segnale di vendita (1) e se è superiore a 0,5, assegniamo un segnale di acquisto (2).

Successivamente, definiamo una classe strategica chiamata "MyStrategy" che eredita dalla classe strategica della libreria di backtesting. La dimensione della posizione iniziale è impostata su 10 unità. Definiamo anche una variabile, "my_size", per tenere traccia della dimensione della posizione, che cambierà in base all'approccio Martingale. Se viene generato un segnale positivo e non ci sono scambi aperti, apriamo un nuovo scambio con una dimensione della posizione pari a "my_size" moltiplicato per 2, seguendo l'approccio Martingale. Se ci sono scambi chiusi e l'ultimo scambio è stato redditizio, ripristiniamo la dimensione della posizione alla dimensione iniziale. Ciò garantisce che dopo uno scambio vincente, torniamo alla dimensione della posizione iniziale. Se viene generato un segnale di acquisto o di vendita e non ci sono operazioni aperte, impostiamo i livelli di stop loss e take profit relativi all'ultimo prezzo di chiusura ed eseguiamo l'operazione corrispondente.

Con la strategia definita, eseguiamo il backtest utilizzando un capitale iniziale di $ 10.000 e nessuna commissione. Le statistiche del backtest mostrano un rendimento del -4,8%, indicando una perdita. Il grafico azionario rivela che la strategia inizialmente ha avuto alcuni guadagni ma ha iniziato a diminuire a un certo punto. La percentuale di vincita è vicina al 50%, come previsto poiché i segnali sono casuali. Il numero totale di operazioni è 100.

Per indagare ulteriormente, modifichiamo lo stop loss e portiamo i livelli di profitto a 400 pips e ripetiamo il backtest. Tuttavia, questa regolazione non risolve il problema. Il calo del patrimonio netto è il risultato della mancanza di fondi sufficienti per continuare a raddoppiare la dimensione della posizione dopo una serie di operazioni in perdita. Per risolvere questo problema, riduciamo la dimensione della posizione iniziale a 5 e impostiamo i livelli di stop loss e take profit a 300 pip. Dopo aver apportato queste modifiche, eseguiamo nuovamente il backtest. La strategia aggiornata produce un rendimento del -0,7%, indicando una perdita minore rispetto alla versione precedente. Tuttavia, il grafico azionario mostra ancora una tendenza al ribasso, sebbene a un ritmo più lento. Il tasso di vincita rimane vicino al 50% e il numero totale di scambi è ancora 100.

Da questi risultati, possiamo osservare che anche con aggiustamenti alla dimensione della posizione, stop loss e livelli di take profit, l'approccio Martingale non fornisce un risultato redditizio in questo scenario di segnali casuali. Il calo del capitale indica il rischio potenziale di prelievi significativi e la possibilità di esaurire il conto di trading.

È importante notare che questo backtest è stato condotto presupponendo segnali casuali. Nel trading del mondo reale, le strategie basate sull'analisi tecnica o sull'analisi fondamentale vengono solitamente impiegate per generare segnali di trading. Queste strategie mirano a identificare modelli, tendenze o opportunità sulla base di dati di mercato, piuttosto che fare affidamento su segnali casuali. In tali casi, l'approccio Martingale potrebbe non essere adatto o efficace.

Inoltre, l'approccio Martingale comporta un alto livello di rischio. Presuppone che le serie di sconfitte saranno seguite da serie di vittorie, consentendo al trader di recuperare le perdite. Tuttavia, in realtà, non vi è alcuna garanzia che le operazioni vincenti seguano quelle perdenti e c'è sempre la possibilità di perdite consecutive. Raddoppiare la dimensione della posizione dopo ogni perdita può portare rapidamente a perdite significative e all'esaurimento del conto, soprattutto se le condizioni di mercato sono sfavorevoli o volatili.

Sebbene l'approccio Martingale possa sembrare allettante a causa del suo potenziale di rapido recupero e profitti, è fondamentale considerare i rischi associati e valutare attentamente la sua idoneità per la tua strategia di trading. L'implementazione di tecniche di gestione del rischio, come l'impostazione di livelli di stop loss rigorosi, il mantenimento di un corretto dimensionamento della posizione e la diversificazione dell'approccio al trading, può aiutare a mitigare i rischi coinvolti.

In sintesi, l'approccio Martingale può essere una strategia rischiosa, in particolare se utilizzata con segnali casuali. È importante testare e valutare a fondo qualsiasi strategia di trading, considerando sia i potenziali guadagni che i rischi associati.

Martingale Trading Strategy Backtesting For Algorithmic Trading
Martingale Trading Strategy Backtesting For Algorithmic Trading
  • 2022.02.03
  • www.youtube.com
Testing the Martingale trading strategy for algorithmic trading in python, I hope you'll enjoy it.Are you interested in algorithmic trading and looking for a...
 

Media mobile Backtesting della strategia di trading in Python



Media mobile Backtesting della strategia di trading in Python

Spesso le strategie semplici vengono trascurate a favore di modelli più complessi. Tuttavia, non dobbiamo sottovalutare il potere della semplicità. Oggi ti presenterò un metodo semplice che può competere con sistemi di trading complessi e produrre rendimenti positivi. Il vantaggio di regole semplici è che possono essere facilmente automatizzate per il trading algoritmico utilizzando Python. Possiamo eseguire il backtest di questa strategia su diverse valute per assicurarne la redditività.

Entriamo nei dettagli di questa semplice strategia. Innanzitutto, considereremo la curva della media mobile a 200 giorni come nostro indicatore. Se le candele sono al di sopra della curva, indica un trend rialzista e suggerisce una posizione di acquisto. Al contrario, se le candele sono al di sotto della curva della media mobile, segnala una tendenza al ribasso e implica una posizione di vendita.

Per determinare il punto di ingresso per una posizione di acquisto, esamineremo le candele precedenti. Confronteremo il valore più basso della candela corrente con i valori più bassi delle candele precedenti. Se il valore basso della candela corrente è inferiore a tutti questi valori precedenti, abbiamo identificato il punto di ingresso per una posizione di acquisto. Lo stesso concetto si applica nella direzione opposta per una posizione di vendita.

Sebbene questa strategia possa sembrare semplice, presenta una serie di sfide. Il primo parametro da considerare è la lunghezza della media mobile. Dovrebbe essere 200, 100 o qualcosa di diverso? Questo può essere messo a punto attraverso il backtesting su una specifica coppia di valute per massimizzare i rendimenti. Un altro parametro è il numero di candele precedenti da considerare. Dovremmo analizzare 7, 8, 10 o 20 candele? Sperimentando valori diversi, possiamo valutare l'impatto sulla performance della strategia.

Questa parte dell'indicatore è relativamente semplice, ma per rendere efficace la strategia, dobbiamo combinarla con un approccio di gestione commerciale. Ciò comporta la definizione dei valori di stop-loss e take-profit. Abbiamo due opzioni per impostare questi valori: possono essere correlati all'average true range (ATR) del mercato, oppure possiamo usare valori fissi per tutte le negoziazioni. È importante scegliere l'approccio di gestione commerciale appropriato per garantire rendimenti positivi. Inoltre, è possibile utilizzare un trailing stop loss, che regola il valore dello stop loss in base all'ATR.

Nel codice, possiamo sperimentare varie combinazioni di questi parametri per trovare le impostazioni ottimali e valutare le prestazioni della strategia. Nonostante sia una strategia semplice, ci sono un numero relativamente elevato di parametri da considerare.

Per implementare questa strategia in Python, utilizziamo un file Jupyter Notebook. Carichiamo i dati, applichiamo la media mobile esponenziale (EMA) e i calcoli ATR utilizzando il modulo pandas-technical-analysis. Quindi, definiamo le funzioni per generare segnali EMA e segnali alto-basso. Tracciamo i dati con la curva EMA per verificare visivamente che tutto funzioni correttamente.

Successivamente, applichiamo il segnale EMA e le funzioni del segnale alto-basso al nostro frame di dati, generando segnali per l'acquisto o la vendita di posizioni. Esaminando i segnali tracciati, possiamo convalidare la loro accuratezza ed efficacia nell'identificare tendenze e punti di ingresso.

Per testare la strategia, definiamo una funzione che utilizza i segnali per determinare le posizioni di acquisto o vendita e imposta i valori di stop-loss e take-profit in base all'ATR o ai rapporti fissi. Il backtest di questa strategia sui grafici a quattro ore Euro-Dollaro USA tra il 2003 e il 2021 mostra un rendimento positivo di circa il 29%.

Tuttavia, è fondamentale valutare la curva azionaria e capire che mentre la strategia può funzionare bene nei mercati di tendenza, può avere difficoltà durante i periodi di movimenti orizzontali dei prezzi. Sperimentando diverse configurazioni di stop-loss e take-profit, come l'utilizzo di valori fissi invece di valori basati su ATR, possiamo analizzare le prestazioni della strategia e adattarci di conseguenza.

In conclusione, anche le strategie più semplici richiedono un'attenta considerazione dei parametri e degli approcci di gestione degli scambi per garantirne l'efficacia. Sebbene questa strategia si basi su un indicatore di base come la media mobile, può comunque generare segnali di trading redditizi se combinata con appropriate tecniche di gestione degli scambi.

Una volta implementata la strategia e condotto il backtesting, è essenziale valutarne le metriche di performance. Alcune metriche chiave da considerare sono il numero totale di operazioni, il tasso di vincita (percentuale di operazioni redditizie), il profitto medio per operazione, il prelievo massimo (il più grande calo dal picco al minimo) e il rapporto rischio-rendimento.

Analizzando queste metriche, possiamo determinare se la strategia soddisfa le nostre aspettative e si allinea alla nostra tolleranza al rischio. È importante ricordare che nessuna strategia è infallibile e ci saranno sempre dei rischi nel trading. Pertanto, una corretta gestione del rischio e la diversificazione degli investimenti sono fondamentali per il successo a lungo termine.

Inoltre, si consiglia di eseguire test di robustezza sulla strategia. Ciò comporta la valutazione della sua performance in diverse condizioni di mercato, come diversi periodi di tempo, coppie di valute o classi di attività. In questo modo, possiamo misurare l'adattabilità della strategia e garantire che la sua redditività non sia limitata a scenari specifici.

Inoltre, vale la pena considerare i limiti di questa semplice strategia. Potrebbe non cogliere tutte le sfumature del mercato o funzionare in modo ottimale durante i periodi di elevata volatilità o improvvise fluttuazioni dei prezzi. In tali casi, potrebbero essere necessari sistemi di negoziazione più sofisticati o indicatori aggiuntivi per migliorarne le prestazioni.

Come nota finale, è essenziale monitorare e adattare continuamente la strategia man mano che le condizioni di mercato si evolvono. Rivedere regolarmente le sue prestazioni, apportare le modifiche necessarie e rimanere informati sulle tendenze e sulle novità del mercato contribuirà alla fattibilità a lungo termine della strategia.

Ricorda, il trading di successo è il risultato di una strategia ben definita, di un'esecuzione disciplinata e di apprendimento e adattamento continui. Buona fortuna con i tuoi sforzi di trading!

Moving Average Trading Strategy Backtesting In Python
Moving Average Trading Strategy Backtesting In Python
  • 2022.01.20
  • www.youtube.com
Welcome to this video on a beginner-friendly automated trading strategy using Python. In this video, we will be discussing a simple yet effective trading str...
 

Trailing Stop Backtest per il trading algoritmico in Python



Trailing Stop Backtest per il trading algoritmico in Python

Ciao a tutti e benvenuti in questo video. Oggi esploreremo vari metodi per implementare lo stop-loss nel trading algoritmico. In particolare, ci concentreremo sulle tecniche di stop-loss che possono essere facilmente incorporate nei robot di trading codificandole in programmi numerici.

È importante notare che mentre esistono diversi modi per determinare i valori di stop-loss, alcuni metodi sono più complessi da includere in un programma. In questo video, eseguiremo il backtest di una strategia utilizzando livelli di supporto e resistenza, nonché modelli di candele di cui abbiamo discusso in precedenza in altri video. Tuttavia, varieremo i valori di stop-loss considerando quattro diversi casi.

Il primo metodo prevede l'utilizzo di una distanza di stop loss costante, che è predeterminata dal trader per tutte le operazioni. Indipendentemente dalla posizione di acquisto, la distanza di stop loss rimane la stessa.

Il secondo metodo è più dinamico e utilizza l'average true range (ATR). In questo caso, la distanza dello stop loss è direttamente correlata all'ATR, il che significa che varia a seconda della volatilità del mercato in una posizione specifica.

Il terzo metodo è uno stop loss finale a distanza fissa. Questa è una strategia di trailing stop-loss comunemente usata, in cui viene mantenuta la stessa distanza per tutte le posizioni, fungendo da trailing stop-loss.

Il quarto e ultimo metodo è un trailing stop-loss che considera il range reale medio nel momento in cui viene eseguita la posizione di trading. Ciò significa che la distanza di stop-loss viene scelta in base all'ATR, che riflette la volatilità del mercato in quel preciso momento.

In sintesi, testeremo la stessa strategia utilizzando questi quattro diversi metodi per definire i valori di stop loss. Vale la pena notare che la scelta dei valori di stop-loss avrà un impatto anche sui nostri valori di take-profit. La maggior parte delle volte, i valori di take-profit saranno determinati in base al rapporto tra la distanza di take-profit e la distanza di stop-loss.

Ora, esaminiamo il file Jupyter Notebook per vedere come vengono implementati questi metodi. Il file inizia importando i moduli necessari e caricando il file CSV contenente i dati di prezzo per la coppia di valute EUR/USD dal 2003 al 2021. Puliamo i dati, aggiungiamo la colonna ATR (Average True Range) e definiamo le funzioni per il supporto e livelli di resistenza, nonché modelli di candele.

Introduciamo anche funzioni per verificare la presenza di modelli engulfing, nonché la vicinanza ai livelli di supporto e resistenza. Queste funzioni ci aiutano a costruire la strategia basata su modelli di candele vicino ai livelli di supporto o resistenza. Aggiungiamo una colonna del segnale al nostro data frame, che classifica i segnali come ribassisti, rialzisti o nessun segnale.

Per eseguire il backtest della nostra strategia, utilizziamo il modulo di backtesting e definiamo il primo metodo di stop-loss, che prevede una distanza fissa di stop-loss e take-profit impostata manualmente dal trader. Iniziamo con un importo in contanti di $ 10.000 e otteniamo i risultati del backtest, inclusi rendimenti, tasso di vincita, operazioni migliori e peggiori e prelievo massimo.

Successivamente, implementiamo il secondo metodo, che utilizza l'ATR per definire le distanze di stop-loss e take-profit. Introduciamo fattori per regolare le distanze in base ai valori ATR e eseguire il backtest della strategia. Confrontiamo i risultati con il metodo precedente e osserviamo le differenze nei rendimenti e in altre metriche di performance.

Andando avanti, implementiamo il terzo metodo, che è un trailing stop loss con una distanza fissa. Qui, dobbiamo solo specificare la distanza di stop loss iniziale e il trailing stop loss si regola di conseguenza. Eseguiamo il backtest della strategia utilizzando una distanza fissa di 500 pip per la coppia EUR/USD.

Infine, analizziamo i risultati e scopriamo che il metodo trailing stop-loss con una distanza fissa produce il rendimento più alto di circa il 131%. Mentre anche gli altri metodi forniscono rendimenti favorevoli, il metodo trailing stop loss mostra prestazioni migliori in questo caso.

In conclusione, abbiamo testato la stessa strategia utilizzando quattro diversi metodi di stop-loss, ognuno dei quali offre vantaggi e considerazioni differenti. La scelta del metodo stop-loss dipende in ultima analisi dalle preferenze del trader e dalle specifiche condizioni di mercato.

Il metodo di stop loss costante offre semplicità e facilità di implementazione. Consente una gestione del rischio coerente in tutte le operazioni, indipendentemente dalle condizioni di mercato. Tuttavia, potrebbe non adattarsi efficacemente ai mutevoli livelli di volatilità, portando potenzialmente a distanze di stop loss più ampie durante periodi altamente volatili o distanze di stop loss più strette durante periodi di bassa volatilità.

Il metodo stop-loss basato su ATR affronta il problema dell'adattamento alla volatilità del mercato. Utilizzando l'ATR come misura della volatilità, la distanza di stop loss si adatta dinamicamente alle attuali condizioni di mercato. Questo può aiutare a proteggere da perdite maggiori durante l'alta volatilità e fornire più respiro durante la bassa volatilità. Tuttavia, può comportare distanze di stop-loss più ampie durante i periodi di elevata volatilità, portando potenzialmente a stop-out più frequenti.

Il metodo del trailing stop loss a distanza fissa combina i vantaggi di un trailing stop loss con la semplicità di una distanza fissa. Consente la potenziale massimizzazione del profitto trascinando lo stop-loss dietro il prezzo mentre si muove a favore del commercio. Questo metodo è particolarmente utile nei mercati di tendenza, dove può ottenere maggiori guadagni. Tuttavia, potrebbe non proteggere efficacemente da rapide inversioni di prezzo, poiché la distanza fissa potrebbe non fornire un cuscinetto sufficiente in situazioni altamente volatili.

Il metodo trailing stop loss basato su ATR combina i vantaggi del metodo basato su ATR e del trailing stop loss. Considerando l'ATR al momento dell'entrata in negoziazione, regola la distanza del trailing stop-loss in base alla volatilità del mercato in quel momento. Ciò fornisce un approccio più adattivo e reattivo alla gestione del rischio. Può aiutare a catturare tendenze più ampie pur fornendo protezione contro inversioni improvvise. Tuttavia, può comportare distanze di stop-loss più ampie durante l'elevata volatilità, portando potenzialmente a stop-out più frequenti.

È importante che i trader considerino attentamente la loro tolleranza al rischio, lo stile di trading e le condizioni di mercato quando scelgono un metodo di stop loss. Il backtest e l'analisi delle prestazioni di diversi metodi possono aiutare a prendere una decisione informata. Inoltre, la gestione del rischio non dovrebbe basarsi esclusivamente su ordini stop-loss, ma anche considerare il dimensionamento della posizione, la diversificazione e la gestione complessiva del portafoglio.

Ricorda che nessun metodo di stop loss è infallibile e possono comunque verificarsi perdite. Una corretta gestione del rischio e il monitoraggio continuo delle condizioni di mercato sono essenziali per un trading di successo.

Trailing Stop Backtest For Algorithmic Trading in Python
Trailing Stop Backtest For Algorithmic Trading in Python
  • 2021.11.27
  • www.youtube.com
This video tests the Stop Loss VS Trailing Stop methods for Algorithmic Trading using python. Backtests are applied to one trading strategy showing the diffe...
 

Divergenza RSI automatizzata in Python | Trading algoritmico



Divergenza RSI automatizzata in Python | Trading algoritmico

Ciao a tutti e benvenuti a bordo di questo video. Oggi discuteremo della divergenza RSI ed esploreremo diverse strategie utilizzando questo indicatore nel trading. Prima di addentrarci, nella descrizione ho fornito un collegamento per il download in cui è possibile accedere al file Jupyter Notebook utilizzato in questo video.

Per cominciare, dobbiamo scrivere un codice in grado di rilevare i minimi ei massimi locali sia del prezzo che dell'RSI. Questi punti sono contrassegnati come punti viola sul grafico. L'algoritmo qui utilizzato identifica il massimo di una candela come massimo se è superiore alle cinque candele vicine su ciascun lato. Allo stesso modo, un valore basso di una candela è considerato minimo se è inferiore alle cinque candele sui lati sinistro e destro. Puoi regolare questi numeri in base alle tue preferenze per il rilevamento dei punti estremi.

Successivamente, inseriamo i minimi e i massimi rilevati del prezzo e dell'RSI in pendenze lineari. Ciò comporta la ricerca delle linee rette più adatte che passano attraverso questi punti. Finiamo con due piste diverse: una per il prezzo (verde) e una per l'RSI (viola). Queste pendenze rappresentano la direzione di tendenza dei rispettivi indicatori.

Possiamo quindi confrontare le pendenze del prezzo e dell'RSI per determinare se c'è una divergenza. In un trend rialzista, entrambe le pendenze dovrebbero essere positive, indicando minimi più alti nel prezzo e massimi più alti nell'RSI. Al contrario, in una tendenza al ribasso, entrambe le pendenze dovrebbero essere negative. Se le pendenze hanno segni diversi, come una pendenza positiva per il prezzo e una pendenza negativa per l'RSI, o viceversa, indica una divergenza.

Mentre ci sono vari approcci per analizzare la divergenza, esploreremo due metodi in questo video. Il primo metodo prevede l'adattamento di più punti estremi utilizzando la regressione polinomiale, che ci consente di considerare più di due punti contemporaneamente. Il secondo metodo si concentra sul confronto tra gli ultimi due minimi e massimi del prezzo e l'RSI. Confrontando le differenze tra questi punti, possiamo identificare le divergenze.

Sebbene le strategie che utilizzano la divergenza RSI siano spesso discusse nel trading manuale, di solito si concentrano sulla tendenza tra due punti consecutivi. In questo video, introduciamo un approccio numerico, utilizzando lo slope fitting e la regressione polinomiale per consentire l'analisi di più punti contemporaneamente.

In tutto il video, codificheremo questi metodi di divergenza in Python usando Jupyter Notebook. Il file Notebook fornito importa le librerie necessarie, legge i dati della candela da un file CSV, calcola l'RSI e definisce le funzioni per rilevare i punti pivot sia per il prezzo che per l'RSI. Queste funzioni classificano ogni candela come pivot alto, pivot basso, entrambi o nessuno dei due.

Alla fine del video, avrai una chiara comprensione della divergenza RSI e di come implementare queste strategie nel tuo trading. Se trovi utili questi contenuti, ti incoraggio a supportare il canale mettendo mi piace al video. Il tuo feedback è prezioso per noi, quindi non esitare a lasciare commenti.

Ora, tuffiamoci nel file Jupyter Notebook e vediamo come possiamo codificare questi concetti in Python.

Continuando da dove avevamo interrotto, abbiamo aggiunto la colonna "pivot" al nostro data frame, che classifica ogni candela come pivot alto, pivot basso, entrambi o nessuno dei due. Ora passiamo al passaggio successivo nel nostro codice.

Successivamente, definiamo una funzione chiamata "get_slope" che calcola la pendenza tra due punti date le loro coordinate x e y. Questa funzione verrà utilizzata per calcolare le pendenze per i dati di prezzo e RSI.

Successivamente, definiamo un'altra funzione chiamata "fit_slope" che accetta un data frame e una categoria pivot (pivot high o pivot low) come parametri. Questa funzione identifica i punti pivot in base alla categoria data e adatta una pendenza lineare a quei punti utilizzando la funzione "get_slope". Restituisce il valore della pendenza per la linea adattata.

Ora possiamo procedere con l'utilizzo di queste funzioni per calcolare le pendenze per i dati di prezzo e RSI. Creiamo due nuove colonne nel nostro data frame: "price_slope" e "rsi_slope". Per la colonna "price_slope", chiamiamo la funzione "fit_slope" con il frame di dati e la categoria pivot come parametri. Ripetiamo lo stesso processo per i dati RSI, calcolando la pendenza per i punti pivot RSI e memorizzando il risultato nella colonna "rsi_slope".

A questo punto, abbiamo ottenuto le pendenze sia per il prezzo che per i dati RSI. Ora possiamo confrontare queste pendenze per determinare la direzione del trend. Aggiungiamo un'altra colonna chiamata "trend" al nostro frame di dati, che indicherà se la tendenza è al rialzo, al ribasso o indefinita.

Per determinare il trend, controlliamo i segni delle colonne price_slope e rsi_slope. Se entrambe le pendenze sono positive, indica un trend rialzista, quindi assegniamo il valore "Up" alla colonna del trend. Se entrambe le pendenze sono negative, indica un trend ribassista, quindi assegniamo il valore "Down" alla colonna del trend. In tutti gli altri casi, dove i segni delle pendenze sono diversi o una delle pendenze è zero, assegniamo alla colonna trend il valore "Undefined".

Con le informazioni sulle tendenze disponibili, ora possiamo verificare le divergenze tra il prezzo e i dati RSI. Aggiungiamo un'altra colonna chiamata "divergenza" al nostro data frame, che indicherà se una divergenza è presente o meno.

Per verificare la presenza di divergenze, confrontiamo i segni delle colonne price_slope e rsi_slope. Se i segni sono opposti, indica una divergenza. In questi casi, assegniamo il valore "Divergenza" alla colonna della divergenza. Se i segni sono gli stessi o una delle pendenze è zero, non c'è divergenza e assegniamo il valore "Nessuna divergenza" alla colonna della divergenza.

Infine, possiamo stampare il frame di dati risultante per vedere le pendenze calcolate, le direzioni del trend e le divergenze per ciascuna candela.

Nel complesso, il codice esegue i seguenti passaggi:

  1. Importa le librerie necessarie e definisce le funzioni di supporto.
  2. Legge i dati della candela e calcola l'RSI.
  3. Aggiunge una colonna pivot per classificare ogni candela come pivot alto, pivot basso, entrambi o nessuno dei due.
  4. Calcola le pendenze per i dati di prezzo e RSI in base ai punti pivot.
  5. Determina la direzione del trend in base ai segni delle pendenze.
  6. Controlla le divergenze tra il prezzo e i dati RSI in base ai segni delle pendenze.
  7. Stampa il frame di dati risultante con le pendenze calcolate, le direzioni di tendenza e le divergenze.

Questo codice fornisce un modo per analizzare le divergenze RSI e la loro relazione con le tendenze dei prezzi, consentendo ai trader di identificare potenziali opportunità di trading.

RSI Divergence Automated In Python | Algorithmic Trading
RSI Divergence Automated In Python | Algorithmic Trading
  • 2021.11.12
  • www.youtube.com
The RSI Divergence Detection is programmed in python as an automated indicator for algorithmic trading, the Jupyter notebook file is available from the link:...
Motivazione: