Trading algoritmico con Python - pagina 18

 

Ottimizzazione della strategia delle bande di Bollinger di Rayner Teo per risultati migliori



Ottimizzazione della strategia delle bande di Bollinger di Rayner Teo per risultati migliori

Oggi ci immergiamo nell'ottimizzazione della strategia Reiner Theo Bollinger Band che è stata precedentemente testata in un video. Se non hai guardato il video precedente, ti consigliamo di farlo prima di procedere con questa parte di ottimizzazione. Il video fornisce un collegamento nella descrizione per un facile accesso. Inoltre, per coloro che sono interessati all'aspetto della codifica, il codice Python è disponibile per il download anche tramite un collegamento nella descrizione.

La strategia ottimizzata ha mostrato un potenziale promettente con un tasso di vincita del 91% e una curva azionaria in costante aumento su un backtest di 10 anni. Tuttavia, una delle motivazioni alla base di questa ottimizzazione è il basso numero di operazioni osservate durante il backtest. Nel corso di 10 anni, sono state eseguite solo 23 operazioni, con una media di circa due operazioni all'anno. Per risolvere questo problema, vengono presentate due possibili soluzioni. Il primo prevede l'esecuzione simultanea del programma su più azioni, puntando a circa 20 operazioni all'anno. Tuttavia, questo approccio solleva preoccupazioni sui mercati correlati e su altre questioni correlate. La seconda soluzione prevede l'abbassamento del lasso di tempo per aumentare il numero di scambi.

La strategia incorpora diversi indicatori tecnici per generare segnali di entrata e uscita. Utilizza un indicatore di media mobile (indicato come EMA, Exponential Moving Average, nel codice) e le bande di Bollinger per i segnali di ingresso, mentre il Relative Strength Index (RSI) viene utilizzato per i segnali di uscita. Il video fornisce ulteriori dettagli sul processo di esecuzione, che qui non vengono ribaditi.

Passando al programma stesso, i dati vengono caricati nella prima cella, concentrandosi sull'intervallo di tempo di quattro ore per l'analisi. Per l'ottimizzazione vengono utilizzati due diversi stock. I dati vengono ripuliti rimuovendo le candele senza movimento, dove i prezzi alti e bassi sono uguali. Vengono aggiunti indicatori tecnici come la media mobile (esponenziale o semplice) e l'RSI e le loro lunghezze possono essere modificate. In questo caso particolare, la lunghezza della media mobile è impostata su 900 candele e la lunghezza dell'RSI è impostata su 12. Per i grafici giornalieri, vengono utilizzati un EMA a 200 giorni e un RSI a 2 giorni per i segnali di uscita. I parametri delle bande di Bollinger rimangono gli stessi dei grafici giornalieri, con una lunghezza di 20 e una deviazione standard di 2,5.

Il programma include anche un controllo per verificare se le candele vengono scambiate al di sopra o al di sotto della media mobile. In questo caso, il numero è impostato su sei, che rappresenta sei candele consecutive sopra o sotto la curva della media mobile. Dal momento che stiamo lavorando con un lasso di tempo di quattro ore, sei volte quattro è uguale a 24 ore. Quindi, se il prezzo è stato scambiato al di sopra o al di sotto della media mobile per 24 ore consecutive, si può concludere un trend rialzista o ribassista. Il parametro per la posizione percentuale dell'ordine sul mercato è impostato su zero percento per aumentare il numero di operazioni eseguite.

La parte di visualizzazione del programma mostra le bande di Bollinger, la curva della media mobile e la direzione del trend, che è determinata come trend rialzista. I segnali di ingresso sono rappresentati da punti viola sul grafico, che indicano i segnali di acquisto. Il video mostra alcuni di questi punti di ingresso, sottolineando la loro efficacia nei mercati di tendenza. Selezionando diverse posizioni casuali all'interno del grafico, è possibile esaminare vari punti di ingresso, consentendo l'analisi della loro fattibilità.

Il presentatore sottolinea che i parametri della banda di Bollinger relativi ai segnali di ingresso funzionano bene, quindi non è necessario apportare modifiche a questo punto. L'obiettivo dell'ottimizzazione risiede in altre parti dell'algoritmo. Sebbene il video non approfondisca tutti i dettagli del processo di backtesting, vale la pena notare alcuni parametri.

In questo processo di ottimizzazione, la soglia RSI per l'uscita è impostata su 45. Questo valore di soglia inferiore mira a catturare scambi più brevi e più frequenti consentendo uscite più rapide. Il relatore afferma che la scelta della soglia RSI è soggettiva e può essere regolata in base alle preferenze individuali e alla tolleranza al rischio.

Per valutare le prestazioni della strategia, il programma calcola varie metriche, tra cui il numero totale di operazioni, il tasso di vincita, la durata media delle negoziazioni e la curva azionaria. Queste metriche forniscono informazioni sull'efficacia e la redditività della strategia.

Il processo di ottimizzazione prevede la regolazione dei parametri della strategia per trovare la combinazione ottimale che massimizza il numero di operazioni mantenendo un'elevata percentuale di vincita. I parametri che vengono ottimizzati includono la lunghezza media mobile, la lunghezza RSI e la soglia di uscita RSI.

Il video mostra come utilizzare un ciclo nidificato per scorrere diverse combinazioni di parametri e valutare le prestazioni della strategia per ogni combinazione. Il programma tiene traccia della combinazione di parametri con le migliori prestazioni e visualizza le metriche e la curva di equity corrispondenti.

Eseguendo il processo di ottimizzazione, il relatore scopre che l'utilizzo di una lunghezza media mobile di 700, una lunghezza RSI di 4 e una soglia di uscita RSI di 45 produce i migliori risultati. Questi valori dei parametri aumentano il numero di scambi pur mantenendo un alto tasso di vincita. Il video mostra la curva azionaria generata dalla strategia ottimizzata, che mostra una traiettoria al rialzo più fluida con scambi più frequenti rispetto alla versione originale.

Il relatore conclude sottolineando l'importanza dell'ottimizzazione nel migliorare le prestazioni delle strategie di trading. Attraverso il test sistematico e l'adeguamento dei parametri, è possibile migliorare la redditività e l'efficienza di una strategia. Tuttavia, è fondamentale prestare attenzione e considerare i limiti ei rischi associati all'ottimizzazione, come l'overfitting dei dati storici.

È importante notare che i dettagli forniti qui sono un riepilogo del video e, per una comprensione più completa, si consiglia di guardare il video originale, che include dimostrazioni visive e ulteriori spiegazioni del processo di ottimizzazione.

Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
  • 2022.07.08
  • www.youtube.com
This is a continuation of the previous video on the Bollinger Bands Winning Trading Strategy published by Rayner Teo. The backtest optimization is done in Py...
 

Questo indicatore di Crypto Scalping funziona davvero!



Questo indicatore di Crypto Scalping funziona davvero!

Oggi esploreremo una strategia di scultura utilizzando il prezzo medio ponderato per il volume (VWAP) nel backtesting sul mercato Bitcoin. Scriveremo un algoritmo Python per implementare questa strategia e analizzare i risultati.

Per prima cosa, impostiamo il contesto. Il VWAP è un potente strumento per il trading algoritmico in quanto fornisce valori dinamici di supporto e resistenza. Rimane indipendente dall'intervallo di tempo utilizzato, rendendolo vantaggioso per il trading algoritmico poiché riduce il numero di parametri da ottimizzare.

In questa strategia, utilizzeremo un intervallo di tempo di 15 minuti per i prezzi di trading Bitcoin-Dollaro USA. Prenderemo in considerazione due indicatori: la media mobile a 100 giorni (DMA) e il VWAP. Analizzando i movimenti dei prezzi relativi a questi indicatori, possiamo determinare l'andamento del mercato. Quando un certo numero di candele viene scambiato al di sotto o al di sopra del 100 DMA, indica rispettivamente una tendenza al ribasso o al rialzo. Allo stesso modo, se le candele vengono scambiate al di sotto o al di sopra della curva VWAP, conferma la direzione del trend.

In un trend rialzista cercheremo solo posizioni di acquisto, mentre in un trend ribassista ci concentreremo sulle posizioni di vendita. Il punto di ingresso per le nostre posizioni verrà attivato quando il prezzo si trova entro una certa distanza fissa dalla curva VWAP.

Per implementare questa strategia in Python, useremo il pacchetto pandas_ta per calcolare il VWAP e il 100 DMA. Creeremo quindi due nuove colonne nel nostro data frame: il segnale EMA e il segnale VWAP. Il segnale EMA conterà il numero di candele posteriori che scendono al di sotto o al di sopra della curva EMA per confermare una tendenza al ribasso o al rialzo. Allo stesso modo, il segnale VWAP conterà il numero di back candle che si trovano al di sotto o al di sopra della curva VWAP.

Uniremo questi segnali in una colonna di segnale totale nel nostro frame di dati, che fungerà da trigger per le nostre posizioni di acquisto e vendita. Per le posizioni di acquisto, verificheremo se il segnale totale è uguale a 2 e non ci sono scambi aperti. Verificheremo anche se il prezzo è abbastanza vicino alla curva VWAP. Analogamente, per le posizioni di vendita, considereremo un segnale totale pari a 1 e verificheremo la distanza del prezzo dalla curva VWAP.

Possiamo visualizzare i segnali su un grafico, tracciando le candele insieme ai segnali di acquisto (viola) e di vendita (verde).

Per eseguire il backtest della strategia, calcoleremo l'Average True Range (ATR) come misura della volatilità. La distanza di stop loss sarà impostata a 0,8 volte l'attuale ATR e la distanza di take profit sarà il doppio della distanza di stop loss. Con questi parametri possiamo attivare posizioni di acquisto e vendita, tenendo conto dei valori di stop loss e take profit. Inizieremo con un importo in contanti di $ 100.000 e una leva di 5.

Eseguendo il backtest, possiamo osservare i risultati del nostro sistema di trading. L'algoritmo mostra un'alta percentuale di rendimento, con un patrimonio netto finale di circa $ 10 milioni dopo tre anni. In confronto, la strategia buy and hold ha ottenuto solo un rendimento del 248%. Tuttavia, è importante notare che le prestazioni dell'algoritmo fluttuano e potrebbero avere difficoltà durante determinati periodi. Ciò evidenzia la necessità di un adattamento dinamico alle mutevoli condizioni di mercato.

Per valutare la stabilità del patrimonio netto, possiamo tracciare la curva del patrimonio netto nel corso degli anni. L'algoritmo ha funzionato eccezionalmente bene per due anni, ma ha dovuto affrontare delle sfide nell'ultimo anno. Ciò sottolinea la natura passiva dell'algoritmo, che si basa su parametri fissi e può richiedere aggiustamenti per adattarsi ai cambiamenti del mercato.

La strategia basata su VWAP presentata qui è un buon investimento di attenzione e tempo. Ha dimostrato rendimenti significativi per un lungo periodo, anche se con alcune limitazioni. Ulteriori ottimizzazioni e l'inclusione di ulteriori filtri e indicatori possono essere esplorate per migliorare.

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

Come eseguire il backtest di una strategia di mercato azionario utilizzando Python sull'S&P 500


Come eseguire il backtest di una strategia di mercato azionario utilizzando Python sull'S&P 500

Ciao a tutti, oggi condurremo un test dettagliato di una semplice strategia di scultura utilizzando i dati storici dell'S&P 500. Spiegheremo le basi della strategia e scriveremo il codice in Python per scopi di backtesting. Abbiamo tre anni di dati, che dovrebbero fornirci informazioni sufficienti per valutare le prestazioni ei risultati della strategia.

Come di consueto, il codice per questa strategia è disponibile per il download tramite il link nella descrizione sottostante. Per questo test utilizzeremo un intervallo di tempo di 15 minuti, anche se è possibile sperimentare intervalli di tempo diversi se lo si desidera. Tempi inferiori possono essere più difficili da controllare a causa dell'aumento del rumore e delle fluttuazioni.

La strategia ruota attorno all'identificazione di modelli engulfing, che possono essere segnali ribassisti o rialzisti. Aggiungeremo due condizioni per perfezionare i segnali. La prima condizione è l'altezza minima di engulfing, che è la differenza tra il prezzo di chiusura della candela precedente e il prezzo di apertura della candela engulfing. Stabiliremo un requisito di distanza minima per il prezzo di apertura della candela engulfing per convalidare il segnale. In altre parole, il prezzo di apertura dovrebbe essere superiore all'altezza minima di engulfing.

La seconda condizione è la lunghezza massima della coda della candela, che si riferisce alla lunghezza della coda o dello stoppino della candela. Imposteremo un limite per la lunghezza massima della coda e ci assicureremo che sia inferiore al parametro specificato. Questa condizione aiuta a filtrare alcuni modelli.

Per aumentare il numero di segnali durante il nostro tempo di trading, introdurremo una variazione al normale schema di engulfing. Invece di richiedere rigorosamente a una candela di inglobare la precedente, consentiremo a due o più candele consecutive di raggiungere l'ingorgo purché siano nella direzione opposta e soddisfino le condizioni di inghiottimento. Il numero di candele consentite per raggiungere l'engulfment sarà una variabile nel codice, consentendo flessibilità e sperimentazione.

A questo punto possiamo iniziare a scrivere il programma e testare i risultati attraverso il backtesting. Useremo un file Jupyter Notebook per questa dimostrazione. Innanzitutto, carichiamo i dati storici in un DataFrame chiamato df_spy utilizzando la funzione read_csv. Specifichiamo l'intervallo di tempo di 15 minuti e l'intervallo di date dal 2019 al 2022. L'indice del DataFrame è impostato sulla colonna dell'ora GMT.

Successivamente, definiamo una funzione chiamata is_engulfing che prende due parametri: il DataFrame e l'indice della candela corrente. Questa funzione verifica se la candela raggiunge uno schema avvolgente. Impostiamo i parametri per il numero massimo di candele consentite per ottenere il modello di engulfing, la differenza di engulfing e la lunghezza massima della coda di candela. La funzione controlla varie condizioni sia per i modelli engulfing ribassisti che rialzisti e restituisce un segnale di 1 per i segnali ribassisti e 2 per i segnali rialzisti.

Creiamo una copia del DataFrame, filtrando le candele senza movimento (dove il massimo è uguale al minimo). Questo passaggio rimuove i fine settimana e i giorni festivi. Archiviamo i dati filtrati in un DataFrame chiamato df. Definiamo anche un nuovo elenco chiamato segnale per memorizzare i segnali per ogni riga/candela.

Per ogni riga nel DataFrame df, calcoliamo il segnale utilizzando la funzione is_engulfing con l'indice corrispondente e DataFrame come parametri. Memorizziamo i segnali nell'elenco dei segnali. Infine, aggiungiamo l'elenco dei segnali come nuova colonna nel DataFrame.

Per visualizzare i segnali, utilizziamo una funzione di tracciamento che traccia il grafico a candele con punti sotto o sopra le candele per rappresentare segnali rialzisti o ribassisti. Possiamo selezionare un intervallo specifico di candele per tracciare e osservare i segnali.

Per facilitare la visualizzazione, resettiamo l'indice del DataFrame a un indice intero e rimuoviamo l'indice di data/ora GMT. Quindi selezioniamo una gamma di candele per tracciare e osservare i segnali.

Ecco un riepilogo dei passaggi coinvolti nel backtesting di una strategia di trading utilizzando i grafici a candele:

  1. Preparazione dei dati : ottieni dati storici sui prezzi per lo strumento finanziario desiderato (ad es. azioni, criptovalute) che includono i prezzi di apertura, massimo, minimo e chiusura per ogni periodo di tempo (ad es. minuto, ora, giorno). Assicurati che i dati siano in un formato facilmente analizzabile.

  2. Definizione della strategia : definire la strategia di trading basata sui modelli di candele. Ad esempio, potresti cercare modelli rialzisti come un modello engulfing rialzista o modelli ribassisti come una stella cadente. Determina le regole per entrare e uscire dalle negoziazioni in base a questi modelli.

  3. Signal Generation : analizza i dati storici sui prezzi e genera segnali basati sulla strategia definita. Identifica l'occorrenza di specifici modelli di candele che soddisfano i criteri di ingresso o di uscita.

  4. Simulazione del portafoglio : simula la strategia di trading tracciando un portafoglio ipotetico. Inizia con un importo fisso di capitale e simula le negoziazioni in base ai segnali generati. Tieni traccia del valore e della performance del portafoglio per tutto il periodo di backtesting.

  5. Valutazione delle prestazioni : valuta le prestazioni della strategia di trading utilizzando varie metriche come redditività, rendimenti corretti per il rischio, prelievi e altre misure pertinenti. Confronta le prestazioni della strategia con un benchmark o strategie alternative per valutarne l'efficacia.

  6. Visualizzazione : visualizza i risultati del backtesting utilizzando i grafici a candele. Traccia i dati storici sui prezzi e indica i segnali generati (punti di ingresso e di uscita) sul grafico. Questa visualizzazione può aiutare a comprendere le prestazioni della strategia e identificare le aree di miglioramento.

Seguendo questi passaggi, puoi eseguire il backtest di una strategia di trading utilizzando i grafici a candele. È importante notare che il backtesting fornisce prestazioni storiche e non garantisce risultati futuri. Inoltre, è fondamentale considerare altri fattori come i costi di transazione, lo slippage e le condizioni di mercato quando si sviluppa e si implementa una strategia di trading.

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

Strategia di azione dei prezzi per il trading algoritmico in Python



Strategia di azione dei prezzi per il trading algoritmico in Python

Ciao a tutti! Benvenuti al terzo video sulla barra di ritracciamento dell'inventario di Huffman. Questa strategia ha vinto diverse competizioni di trading, quindi ho pensato di provare a creare una versione automatizzata in grado di fornire rendimenti positivi nell'arco di pochi mesi o anche di un periodo più lungo. Per mantenere questo video conciso, consiglio di guardare i due video precedenti in cui spieghiamo la strategia in dettaglio. Puoi trovare il link a quei video nella descrizione.

In breve, la strategia prevede l'identificazione delle barre di ritracciamento e il mantenimento di una pendenza specifica per la definizione del trend. In un trend rialzista cerchiamo una forma particolare per le barre, mentre in un trend ribassista cerchiamo la forma invertita della barra di ritracciamento. Tuttavia, in questo video, aggiungeremo un'altra condizione. Richiediamo che la barra di ritracciamento sia superiore (in un trend rialzista) o inferiore (in un trend ribassista) rispetto alle barre precedenti e future. In sostanza, stiamo cercando una barra di ritracciamento che funga da punto di rotazione, indicando una forte reazione da parte di venditori o acquirenti che cercano di invertire la tendenza.

Implementare questa condizione aggiuntiva in una strategia di trading algoritmico è più impegnativo che spiegare il concetto. Nell'esempio mostrato, abbiamo un trend rialzista e identifichiamo una barra di ritracciamento di Huffman che funge da punto di rotazione alto. Inoltre, osserviamo una rottura al di sopra del massimo di questa barra di Huffman, che indica una probabile continuazione della tendenza al rialzo. Incorporeremo tutte queste condizioni nel nostro algoritmo Python e valuteremo se migliorano i risultati ottenuti nei video precedenti.

Per fornire una breve panoramica, carichiamo i dati storici per la coppia di valute EUR/USD in un periodo di un'ora dal 2003 al 2022. Calcoliamo la media mobile esponenziale (EMA) e l'Average True Range (ATR), che potrebbe essere utile per impostare i valori di stop-loss e take-profit. Calcoliamo la pendenza dell'EMA in quanto è una delle condizioni per la strategia di Huffman. Inoltre, introduciamo due nuovi parametri: il segnale totale delle candele di ritorno (sinistra e destra), che determinano il numero di candele da confrontare con il massimo o il minimo della candela di Huffman.

L'algoritmo definisce le condizioni per identificare una barra di Huffman in un trend rialzista o ribassista. In questo video, aggiungiamo una condizione extra per verificare se la barra di Huffman funge anche da punto di rotazione. Confrontiamo il minimo (in un trend ribassista) o il massimo (in un trend rialzista) della barra di Huffman con le candele precedenti e future all'interno dell'intervallo specificato. Se la condizione è soddisfatta, assegniamo un valore di 1 per un trend ribassista o 2 per un trend rialzista e memorizziamo i segnali in una nuova colonna chiamata "tot signal" nel data frame.

Per garantire che l'algoritmo funzioni correttamente, tracciamo i segnali su un grafico, visualizzando i punti viola che rappresentano le barre di Huffman. Possiamo confermare che l'algoritmo sta identificando correttamente le barre in base alle loro caratteristiche.

Successivamente, incorporiamo il segnale EMA come segnale di conferma per la direzione del trend. Implementiamo anche la funzione del segnale di interruzione di Huffman, che rileva le interruzioni al di sopra o al di sotto delle barre di Huffman e assegna i segnali di conseguenza.

Per eseguire il backtest della strategia, impostiamo i valori di stop-loss e take-profit, che possono variare a seconda delle condizioni specifiche e degli indicatori utilizzati. In questo caso, utilizziamo l'ATR per definire lo stop-loss e un rapporto take-profit/stop-loss di 1,5. Conduciamo il backtest con un deposito iniziale di $ 10.000, un margine di 1:50 e un'operazione alla volta.

Inizialmente i risultati non sono soddisfacenti, con un rendimento del -70% e un ampio drawdown. Tuttavia, ciò non implica necessariamente che la strategia o l'indicatore sia intrinsecamente negativo. Sottolinea l'importanza di considerare altri fattori, come la gestione del denaro e la selezione dei valori di stop-loss e take-profit, che possono influenzare in modo significativo le prestazioni della strategia.

Per migliorare le prestazioni della strategia, possiamo ottimizzare i parametri e regolare le regole di gestione del denaro. In questo esempio, ottimizzeremo il parametro Total Signal Back Candles, che determina il numero di candele da confrontare con il massimo o minimo della barra di Huffman. Testeremo diversi valori che vanno da 2 a 10 e valuteremo i risultati.

Dopo aver ottimizzato il parametro, otteniamo prestazioni migliori con un rendimento del 187% e un drawdown ridotto. Ciò dimostra l'importanza dell'ottimizzazione dei parametri nelle strategie di trading algoritmico.

Per migliorare ulteriormente la strategia, possiamo prendere in considerazione l'incorporazione di ulteriori filtri o condizioni. Ad esempio, possiamo implementare un filtro di tendenza utilizzando un intervallo di tempo più elevato, come il grafico giornaliero o settimanale. Questo può aiutare a garantire che le negoziazioni vengano prese solo nella direzione della tendenza generale.

Possiamo anche esplorare diverse strategie di uscita, come trailing stop o livelli dinamici di take-profit basati sull'azione dei prezzi o sulla volatilità. Questi componenti aggiuntivi possono essere testati e integrati nell'algoritmo per migliorarne potenzialmente le prestazioni.

È importante notare che le performance passate non garantiscono risultati futuri. La strategia dovrebbe essere accuratamente testata e convalidata utilizzando dati storici e solidi metodi di backtesting. È anche fondamentale considerare i costi di transazione, lo slippage e altri aspetti pratici del trading quando si implementa la strategia in un ambiente di trading in tempo reale.

In conclusione, la strategia della barra di ritracciamento dell'inventario di Huffman può essere uno strumento utile per identificare potenziali punti pivot e inversioni di tendenza nel mercato. Incorporando condizioni aggiuntive e parametri di ottimizzazione, possiamo migliorare le prestazioni della strategia. Tuttavia, è essenziale condurre test approfonditi e considerare altri fattori come la gestione del denaro e le strategie di uscita per sviluppare un sistema di trading completo ed efficace.

Questo conclude il nostro video sull'implementazione della strategia della barra di ritracciamento dell'inventario di Huffman in Python. Spero che tu abbia trovato questa serie istruttiva e utile nei tuoi sforzi di trading. Se hai domande o commenti, non esitare a lasciarli qui sotto. Grazie per la visione e buon trading!

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

Come codificare la strategia di trading della barra di ritracciamento in Python



Come codificare la strategia di trading della barra di ritracciamento in Python

Ciao a tutti e benvenuti a questa continuazione del metodo Hoffman's Inventory Bar Retracement. Nel video precedente, abbiamo introdotto questo metodo e spiegato il codice per rilevare specifiche forme di candela e trend di prezzo. Se sei interessato al codice, puoi scaricare il file Jupyter Notebook dal link fornito nella descrizione sottostante.

In questo video, utilizzeremo le barre di Hoffman che abbiamo identificato in precedenza in una strategia di trading, eseguiremo il backtest del sistema e valuteremo i risultati. La strategia si concentra sull'identificazione di specifiche forme di candele in un trend rialzista o ribassista e sul controllo di breakout al di sopra del massimo o al di sotto del minimo di queste candele.

Consideriamo un esempio in cui abbiamo un trend rialzista. Rileviamo una barra di ritracciamento di Hoffman in cui la coda superiore è almeno il 45% del volume dell'intera candela. Ciò indica che i venditori stanno cercando di contrastare il movimento rialzista. Tuttavia, nella candela successiva, osserviamo che il prezzo di chiusura è superiore al massimo della precedente candela di Hoffman. Ciò suggerisce che gli acquirenti sono ancora più forti sul mercato e probabilmente continueranno a far salire il prezzo.

Per implementare questa strategia in Python, ripeteremo il prezzo di chiusura di ogni candela e controlleremo tra le sue precedenti candele vicine se qualcuna di esse forma una barra di ritracciamento di Hoffman. Definiremo un parametro chiamato "back_candles", che determina il numero di candele da considerare durante la ricerca della barra di Hoffman. Questo parametro può essere regolato per sperimentare valori diversi.

Se si verifica un breakout al di sopra del massimo o al di sotto del minimo della candela di Hoffman, collocheremo rispettivamente una posizione di acquisto o di vendita, a seconda dell'attuale andamento dei prezzi. Possiamo anche impostare valori di stop-loss e take-profit, che possono essere basati sull'average true range (ATR) o sui valori massimo/minimo delle candele precedenti, a seconda dell'andamento del prezzo.

Ora scriviamo la strategia in Python e eseguiamo il backtest utilizzando alcuni mesi di dati storici per valutare i risultati. Il file Jupyter Notebook contiene il codice, che inizia caricando 59 giorni di dati utilizzando il modulo yfinance in un lasso di tempo di 15 minuti. Calcoliamo la media mobile esponenziale (EMA), l'ATR e la pendenza della media mobile.

Successivamente, identifichiamo le barre di Hoffman in base alla pendenza della media mobile e alla forma delle candele. Visualizziamo i segnali su un grafico e quindi definiamo una nuova funzione chiamata "hofmann_break_signal" che accetta due parametri: l'indice della candela corrente e il numero di candele posteriori da considerare durante la ricerca del modello di candela di Hoffman.

All'interno della funzione, iteriamo attraverso ogni candela e controlliamo se le condizioni per una barra di Hoffman e un breakout sono soddisfatte. In tal caso, restituiamo un segnale di acquisto per un trend rialzista o un segnale di vendita per un trend ribassista.

Applichiamo questa funzione a ciascuna riga del frame di dati e memorizziamo i risultati in una serie. Infine, visualizziamo i segnali e controlliamo se le candele di Hoffman vengono rilevate correttamente.

Dopo aver verificato il rilevamento della candela, procediamo al backtest della strategia. Impostiamo lo stop-loss in base al prezzo minimo tra le candele precedenti e prendiamo profitto utilizzando un rapporto relativo allo stop-loss. In questo esempio, utilizziamo un approccio basato su ATR con un rapporto stop-loss di 1,5.

Testiamo la strategia nei tre mesi di dati e calcoliamo il rendimento, la percentuale di operazioni vincenti e la curva azionaria. In questo primo test il rendimento è positivo al 51%, ma la curva azionaria non mostra un rialzo stabile.

Esploriamo anche un metodo diverso per impostare i livelli di stop-loss e take-profit, considerando il massimo più alto o il minimo più basso delle candele precedenti. Tuttavia, in questo caso, il rendimento è negativo al -4,8%, indicando che questa strategia di gestione del denaro non ha funzionato bene.

Tieni presente che questa strategia non è stata ottimizzata in questo video. È stato sviluppato rapidamente per dimostrare l'implementazione di Python. Se trovi interessante questa strategia, sentiti libero di copiare il codice e personalizzarlo ulteriormente aggiungendo ulteriori indicatori tecnici.

Grazie per aver guardato questo video. Resta sintonizzato per il prossimo, fai trading in sicurezza e ci vediamo la prossima volta!

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

Ritracciamento con codice a barre in Python per il trading algoritmico


Ritracciamento con codice a barre in Python per il trading algoritmico

Salve, in questo video presenteremo la barra di ritracciamento dell'inventario di Huffman e dimostreremo come automatizzarne il rilevamento in Python. Se sei interessato al codice, puoi scaricare il file Jupyter Notebook dal link fornito nella descrizione.

La prima regola di questa strategia è rilevare l'andamento del prezzo controllando se la pendenza della media mobile (MA) a 20 giorni forma un angolo di 45 gradi con la linea orizzontale. Tieni presente che la media mobile a 20 giorni viene utilizzata come esempio e puoi sperimentare periodi diversi per la media mobile. Se stai seguendo una tendenza al ribasso, anche la pendenza negativa dovrebbe formare un angolo di almeno 45 gradi con la linea orizzontale. Tuttavia, è importante ricordare che fare affidamento esclusivamente su questo angolo di 45 gradi come segnale è matematicamente privo di significato, poiché è impossibile definire con precisione questo angolo su un grafico di trading. Il trading algoritmico fornisce una soluzione a questo problema, che esploreremo più avanti nel video.

La seconda regola di questa strategia consiste nell'identificare le candele in cui la coda è almeno il 45% della lunghezza dell'intera candela. Ad esempio, in un trend rialzista, cerchiamo candele con una coda superiore superiore al 45% del movimento totale della candela. Allo stesso modo, in una tendenza al ribasso, cerchiamo candele con una coda inferiore superiore al 45% del volume della candela. Questo modello di candela indica i momenti in cui i venditori o gli acquirenti cercano di resistere o invertire la tendenza. Comprendendo le dinamiche di mercato attraverso i modelli di candele, possiamo definire la nostra strategia personalizzata.

Nell'esempio, identifichiamo queste candele specifiche e aspettiamo che il mercato superi i valori alti. Quando una candela chiude al di sopra del massimo di una candela di Huffman, indica che i venditori non hanno potuto resistere alla tendenza all'acquisto e gli acquirenti hanno ancora il sopravvento. Ciò suggerisce che è probabile che la tendenza al rialzo continui e possiamo aprire una posizione lunga con gli acquirenti. Analizzando i risultati di queste ipotesi, osserviamo che nella maggior parte dei casi il prezzo segue le nostre aspettative.

Tuttavia, per determinare il risultato a lungo termine di questo indicatore, dobbiamo eseguire un backtest utilizzando il nostro codice Python. In questo video, ci concentriamo sulla spiegazione di come rilevare le candele di Huffman e generare un segnale quando si verificano. In un video separato, utilizzeremo questo indicatore in una strategia di trading completa ed eseguiremo un backtest adeguato.

Per iniziare, scarichiamo i dati utilizzando il modulo yfinance. L'esempio scarica i dati Euro/USD per un periodo di 59 giorni con un intervallo di tempo di 15 minuti. Se hai bisogno di più dati, puoi scaricarli in batch e concatenare i frame di dati. Dopo aver scaricato i dati, calcoliamo la media mobile esponenziale (EMA) con una lunghezza di 20 e calcoliamo la pendenza della media mobile. I valori della pendenza vengono memorizzati in una nuova colonna denominata slope_ema nel data frame.

Successivamente, calcoliamo il segnale iterando su ogni riga. Se la pendenza della candela corrente è negativa e supera il limite della pendenza, indicando una tendenza al ribasso, controlliamo se la coda inferiore della candela divisa per l'intervallo massimo-minimo è maggiore del limite percentuale. Ciò indica una candela di Huffman in una tendenza al ribasso e il segnale totale è impostato su 1. Allo stesso modo, se la pendenza è positiva e supera il limite della pendenza, indicando una tendenza al rialzo, e la coda superiore della candela divisa per l'intervallo massimo-minimo è maggiore del limite percentuale, abbiamo una candela di Huffman in un trend rialzista e il segnale totale è impostato su 2.

Una volta calcolato il segnale e archiviato i risultati in un elenco chiamato signal, lo aggiungiamo come una nuova colonna chiamata tot_signal al frame di dati. Possiamo quindi visualizzare i segnali su un grafico usando Plotly.

Ecco una spiegazione dettagliata della strategia della barra di ritracciamento dell'inventario di Huffman senza il codice:

  1. Scarica i dati sui prezzi: ottieni i dati storici sui prezzi per lo strumento finanziario desiderato, come un'azione o una coppia di valute. Puoi usare librerie come yfinance in Python per recuperare i dati.

  2. Calcola la media mobile esponenziale (EMA): calcola l'EMA dei prezzi di chiusura utilizzando un periodo di tempo specifico. L'EMA è un indicatore comunemente usato che aiuta a identificare tendenze e potenziali inversioni nei dati sui prezzi.

  3. Calcola la pendenza: Calcola la pendenza della linea EMA in ogni punto dati. La pendenza indica la direzione e la forza del trend. Puoi usare tecniche matematiche come il gradiente o la regressione per calcolare la pendenza.

  4. Imposta parametri: definire i parametri per il rilevamento del segnale. Nella strategia della barra di ritracciamento dell'inventario di Huffman, in genere si imposta un limite di pendenza e un limite percentuale di coda. Il limite della pendenza determina il valore minimo della pendenza per un segnale potenziale, mentre il limite percentuale della coda imposta la percentuale minima dell'intervallo della candela che dovrebbe essere la coda superiore o inferiore.

  5. Identificare i segnali: scorrere i dati e confrontare le pendenze attuali e precedenti. Se entrambe le pendenze sono al di sotto del limite della pendenza negativa, controlla se la coda inferiore della candela corrente è maggiore del limite percentuale della coda. Se lo è, contrassegnalo come un segnale rialzista. Allo stesso modo, se entrambe le pendenze sono al di sopra del limite della pendenza positiva, controlla se la coda superiore della candela corrente è maggiore del limite percentuale della coda. Se lo è, contrassegnalo come un segnale ribassista.

  6. Visualizza i segnali: crea un grafico o un grafico dei dati sui prezzi. Traccia i segnali sul grafico per visualizzare le candele di Huffman. Puoi utilizzare librerie di plottaggio come Plotly o Matplotlib per creare il grafico e contrassegnare i punti di segnale.

Ricorda che la strategia non si limita a questi passaggi e puoi personalizzarla e perfezionarla in base alle tue esigenze e preferenze di trading. Inoltre, l'implementazione di tecniche di gestione del rischio, come l'impostazione di ordini stop-loss o il dimensionamento della posizione, è essenziale per un trading di successo.

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

Come automatizzare i modelli di trading in Python | Modello testa e spalle



Come automatizzare i modelli di trading in Python | Modello testa e spalle

Per automatizzare il rilevamento dei modelli di testa e spalle in Python, possiamo seguire i passaggi dell'algoritmo delineati nel testo. Ecco una spiegazione dettagliata di ogni passaggio:

  1. Rileva punti pivot:

    • Questo passaggio comporta l'identificazione di valori alti e bassi nei dati di prezzo che sono superiori o inferiori rispetto alle candele vicine.
    • Vengono rilevati due tipi di punti pivot: punti pivot forti e punti pivot deboli.
    • I punti pivot forti vengono confrontati con un'ampia gamma di candele vicine, mentre i punti pivot deboli vengono confrontati con un numero inferiore di candele vicine.
  2. Visualizza i punti pivot:

    • I punti pivot forti e i punti pivot deboli rilevati vengono tracciati su un grafico a candele.
    • I punti pivot forti sono rappresentati da punti viola sopra le candele, mentre i punti pivot deboli sono rappresentati da punti rossi sotto le candele.
  3. Rileva il modello di testa e spalle:

    • Per rilevare il modello testa e spalle, iteriamo attraverso gli ID candela nell'intervallo specificato.
    • Per ogni ID candela, controlliamo se si tratta di un punto pivot (né un pivot forte né un pivot debole) e procediamo oltre.
    • Se viene trovato un forte punto pivot, registriamo le coordinate dei massimi e dei minimi all'interno di una finestra di candele su entrambi i lati del pivot.
    • Teniamo traccia dei conteggi dei minimi e dei massimi prima e dopo la candela pivot centrale.
    • Se i conteggi dei minimi e dei massimi sono inferiori a uno su entrambi i lati, la formazione del pattern non è possibile e passiamo alla candela successiva.
    • Se i conteggi dei minimi e dei massimi soddisfano la condizione, adattiamo una retta di regressione lineare ai minimi e ne calcoliamo la pendenza e l'intercetta.
    • Troviamo l'indice della testa all'interno dei massimi usando la funzione argmax.
    • Infine, controlliamo se le condizioni per il pattern testa e spalle sono soddisfatte:
      • La differenza tra il massimo dell'indice della testa e il massimo prima della testa dovrebbe essere maggiore di una soglia.
      • Anche la differenza tra il massimo dell'indice della testa e il massimo dopo la testa dovrebbe essere maggiore della soglia.
      • La pendenza assoluta dei minimi dovrebbe essere minore o uguale a una soglia.
    • Se tutte le condizioni sono soddisfatte, abbiamo rilevato uno schema testa e spalle.
La conoscenza delle tecniche di gestione del rischio, come l'impostazione di ordini stop-loss o il dimensionamento delle posizioni, è essenziale per un trading di successo.
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Rilevamento del modello di prezzo del triangolo in Python | Indicatore di trading algoritmico



Rilevamento del modello di prezzo del triangolo in Python | Indicatore di trading algoritmico

In questo video, esploreremo il rilevamento automatico dei modelli triangolari utilizzando algoritmi specifici. Presenteremo un metodo semplice per rilevare diverse forme di triangoli di movimento dei prezzi e scriveremo un codice Python per testarlo sui dati forex. Alla fine, tracceremo i modelli scoperti per visualizzare i risultati. Se sei interessato alla parte di codifica, puoi scaricare il file Jupyter Notebook contenente il codice Python dal link fornito nella descrizione del video.

I pattern triangolari sono di particolare interesse per i trader quando vengono utilizzati nelle strategie di trading. Ad esempio, alcuni trader scambiano il breakout dei triangoli. Negli esempi mostrati, il prezzo segue un trend futuro nella direzione del breakout. In un esempio, il prezzo è uscito dai bordi del triangolo, seguendo una tendenza al ribasso. In un altro esempio, il prezzo è uscito dal bordo del triangolo, seguendo un trend rialzista. In entrambi i casi, c'è stata una continuazione del trend di breakout.

Le fasi del metodo sono le seguenti:

  1. Calcola i punti pivot: i punti pivot sono valori di prezzo maggiori dei loro vicini. Per i minimi pivot, il minimo di una candela dovrebbe essere inferiore ai minimi di un numero specificato di candele prima e dopo di esso. Per i massimi pivot, il massimo di una candela dovrebbe essere superiore ai massimi del numero specificato di candele prima e dopo di esso.

  2. Adatta massimi e minimi in pendenze lineari: per i massimi, confronta i valori alti e cerca una candela centrale con un massimo superiore al numero specificato di candele prima e dopo di essa. Per i minimi, confronta i valori bassi e cerca una candela centrale con un minimo inferiore al numero specificato di candele prima e dopo di essa.

  3. Rileva forme triangolari: a seconda della forma triangolare desiderata, identifica i modelli in base alle pendenze di massimi e minimi. Ad esempio, un triangolo convergente può essere rilevato quando la pendenza massima è negativa e la pendenza minima è positiva. Un triangolo discendente può essere rilevato quando la pendenza massima è negativa e la pendenza minima è vicina a zero o una linea orizzontale.

Ora scriviamo il codice in Python per implementare questo metodo e vediamo come funziona. Il file Jupyter Notebook contiene il codice per importare i dati, pulirli, calcolare i punti pivot, visualizzare le candele pivot e rilevare i modelli triangolari. Utilizziamo librerie come Pandas, NumPy e Plotly per gestire le attività di manipolazione e visualizzazione dei dati.

Dopo aver importato le librerie ei dati necessari, definiamo una funzione chiamata "pivot_id" per identificare i punti pivot in base al numero specificato di vicini. Questa funzione aggiunge una nuova colonna chiamata "pivot" al frame di dati, indicando se una candela è un pivot basso (1) o un pivot alto (2).

Definiamo quindi una funzione chiamata "points_position" per tracciare le candele e aggiungere punti sopra e sotto di esse in base al loro stato pivot. Questa funzione utilizza la colonna "point_position" per determinare le coordinate y dei punti.

Utilizzando la libreria Plotly, tracciamo le candele e i punti pivot per visualizzare i risultati. Questo ci permette di verificare che i punti pivot siano correttamente identificati.

Successivamente, implementiamo il codice per rilevare i modelli triangolari. Selezioniamo una candela specifica ed eseguiamo la scansione di un numero specificato di candele prima di essa per verificare se in quell'area è presente un motivo a triangolo. Iteriamo sulle candele e memorizziamo le coordinate dei massimi e dei minimi in array NumPy separati. Quindi inseriamo questi punti in pendenze lineari utilizzando la regressione lineare e calcoliamo le pendenze per massimi e minimi.

Tracciamo le candele, i punti pivot e le pendenze dei massimi e dei minimi per visualizzare il modello triangolare. Controllando le condizioni definite per la forma del triangolo, come i fattori di correlazione (r_min e r_max), possiamo determinare se è presente un pattern triangolare. Se le condizioni sono soddisfatte, contrassegniamo il motivo a triangolo sulla trama.

Infine, iteriamo attraverso tutte le candele nel set di dati e ripetiamo il processo di rilevamento dei modelli triangolari. Ogni volta che viene trovato uno schema, memorizziamo le coordinate del triangolo in elenchi separati per una successiva visualizzazione.

Alla fine del codice, usiamo Plotly per tracciare le candele, i punti pivot e i pattern triangolari rilevati. Ciò fornisce una rappresentazione visiva dei triangoli identificati nei dati sui prezzi.

Eseguendo il codice ed esaminando il grafico, possiamo vedere i modelli triangolari rilevati e analizzarne le forme. Queste informazioni possono essere utili per i trader che desiderano incorporare modelli triangolari nelle loro strategie di trading.

Tenere presente che il codice fornito nel file Jupyter Notebook è solo una possibile implementazione del rilevamento dei pattern triangolari. Esistono vari modi per affrontare questo problema ed è possibile esplorare diversi algoritmi o modificare il codice esistente per soddisfare le proprie esigenze specifiche.

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

Python AlgoTrading Backtest: utilizzo di RSI e ADX con media mobile per segnali di acquisto/vendita



Python AlgoTrading Backtest: utilizzo di RSI e ADX con media mobile per segnali di acquisto/vendita

Ciao a tutti! In questo video, condurremo un test dettagliato di una strategia di scultura basata sull'indice direzionale medio (ADX) e sull'indicatore di forza relativa (RSI), insieme ad altri indicatori di conferma. Questa strategia è pubblicizzata come un approccio redditizio per lo scalping. Ci concentreremo sui punti viola situati appena sotto le frecce rosse sul grafico dei prezzi, che vengono generati automaticamente dall'algoritmo che descriveremo.

In questo esempio specifico, i punti viola rappresentano i segnali di vendita e vale la pena notare che questi segnali sono seguiti da un calo del prezzo. Ciò suggerisce che questa strategia è promettente, poiché questi segnali hanno portato a operazioni vincenti. Per approfondire l'aspetto della codifica, puoi scaricare il codice Python, un file Jupyter Notebook, dal link fornito nella descrizione.

Il nostro obiettivo è sviluppare una strategia di scultura automatizzata in Python che ci consenta di impostare operazioni, lasciare il codice in esecuzione e potenzialmente trarre profitto mentre dormiamo. Tuttavia, è importante riconoscere che raggiungere il successo potrebbe non essere così semplice come sembra inizialmente.

Inizieremo i test sul periodo di cinque minuti, come raccomandato per questa particolare strategia. Per determinare l'andamento dei prezzi, utilizzeremo la 50 media mobile esponenziale (EMA). Se il prezzo viene scambiato al di sopra di questa curva, indica una tendenza al rialzo e ci concentreremo esclusivamente sull'acquisto di posizioni. Al contrario, se il prezzo viene scambiato al di sotto dell'EMA 50, indica una tendenza al ribasso e prenderemo in considerazione esclusivamente posizioni di vendita.

Inoltre, incorporeremo l'RSI con un periodo di 3 e livelli di trigger fissati a 20 e 80. Quando l'RSI scende al di sotto di 20, suggerisce che il mercato è ipervenduto, innescando un segnale di acquisto. Al contrario, quando l'RSI supera 80, indica che il mercato è ipercomprato, dando luogo a un segnale di vendita.

La nostra strategia incorpora anche l'Average Directional Index (ADX) con un periodo di cinque. Se l'ADX supera 30, indica una forte tendenza, fungendo da indice di conferma sia per i trend rialzisti che per quelli ribassisti. In entrambi i casi, cerchiamo livelli superiori a 30.

Quando tutte queste condizioni sono soddisfatte, viene generata la prima parte del nostro segnale. Per convalidare ulteriormente questo segnale, utilizzeremo un approccio a modello di candela, cercando in particolare una candela engulfing allineata con la tendenza. Se la tendenza è al rialzo, cercheremo una candela engulfing rialzista; se la tendenza è al ribasso, cercheremo una candela engulfing ribassista.

Fortunatamente, tutti questi indicatori possono essere automatizzati in Python e testati su dati storici. L'esempio che useremo è stato selezionato casualmente dal set di dati. Le osservazioni iniziali indicano segnali positivi, in quanto i segnali di vendita tendono ad essere seguiti da un calo del prezzo, mentre i segnali di acquisto sono spesso seguiti da un aumento del prezzo.

Per mettere questa strategia alla prova finale, impiegheremo Python per condurre test retrospettivi e consentire ai risultati di determinarne la fattibilità. Importeremo i dati storici per la coppia di valute EUR/USD dal 2019 al 2022, in particolare utilizzando candele di cinque minuti. Puliremo inoltre i dati rimuovendo i periodi di inattività di negoziazione, come i fine settimana e i giorni festivi.

Utilizzando il pacchetto Pandas TA (Technical Analysis), aggiungeremo quattro colonne aggiuntive al nostro frame di dati: 50 EMA, RSI con un periodo di 3, ADX con un periodo di 5 e Average True Range (ATR). Quest'ultimo sarà utilizzato per il calcolo della distanza di stop loss. Il segnale di tendenza EMA indicherà se le candele vengono scambiate al di sotto o al di sopra della curva 50 EMA, determinando rispettivamente se siamo in una tendenza al ribasso o in una tendenza al rialzo.

Se siamo in un trend ribassista, verificheremo se l'RSI è inferiore a 20, indicando una condizione di ipervenduto. Se entrambe le condizioni di tendenza al ribasso e di ipervenduto sono soddisfatte, genereremo un segnale di vendita.

Allo stesso modo, se siamo in un trend rialzista, verificheremo se l'RSI è superiore a 80, indicando una condizione di ipercomprato. Se entrambe le condizioni di tendenza al rialzo e di ipercomprato sono soddisfatte, genereremo un segnale di acquisto.

Per convalidare ulteriormente questi segnali, cercheremo modelli di candele avvolgenti allineati con la tendenza. Per un segnale di vendita, cercheremo una candela engulfing ribassista, dove il corpo della candela attuale avvolge completamente il corpo della candela precedente in una direzione verso il basso. Per un segnale di acquisto, cercheremo una candela engulfing rialzista, dove il corpo della candela attuale avvolge completamente il corpo della candela precedente in una direzione verso l'alto.

Una volta generati i segnali, calcoleremo la distanza dello stop loss utilizzando l'Average True Range (ATR). L'ATR fornisce una stima dell'intervallo di prezzo medio in un determinato periodo, che può aiutarci a determinare un ragionevole livello di stop loss.

Nella fase di backtesting, ripeteremo i dati storici e applicheremo queste regole per generare e valutare i segnali di trading. Per ogni segnale, simuleremo uno scambio, supponendo di entrare nella posizione al prezzo di apertura della candela successiva dopo che il segnale è stato generato. Definiremo anche un livello di take-profit fisso basato su un certo rapporto rendimento/rischio.

Durante la simulazione, monitoreremo il profitto o la perdita per ogni operazione e calcoleremo le metriche chiave delle prestazioni come il profitto totale, la perdita totale, il tasso di vincita e il rendimento medio per operazione. Questo ci aiuterà a valutare l'efficacia della strategia e a determinarne la redditività.

È importante notare che i risultati dei test retrospettivi sui dati storici non garantiscono prestazioni future. Le condizioni di mercato possono cambiare e le strategie che hanno funzionato bene in passato potrebbero non funzionare altrettanto efficacemente in futuro. Pertanto, è fondamentale valutare e adattare continuamente le strategie di trading in base alle condizioni di mercato in tempo reale.

In conclusione, abbiamo delineato una strategia di scultura basata sull'indice direzionale medio (ADX), sull'indicatore di forza relativa (RSI) e sui modelli di candele avvolgenti. Abbiamo discusso il processo di automatizzazione di questa strategia utilizzando Python e conducendo backtesting su dati storici. I risultati del backtesting forniranno approfondimenti sulle prestazioni della strategia e aiuteranno a valutare la sua fattibilità come approccio redditizio per lo scalping.

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

Strategia di scalping RSI automatizzata testata in Python



Strategia di scalping RSI automatizzata testata in Python

Oggi testeremo una strategia di scalping basata sull'RSI (Relative Strength Index). La strategia incorpora due indicatori: la media mobile esponenziale (EMA) e l'RSI. Condurremo il backtesting utilizzando il codice Python, che puoi scaricare dal link fornito nella descrizione del video.

Per il backtest, utilizzeremo tre diverse versioni della strategia basate su diversi intervalli di tempo: una per candele da un minuto, un'altra per candele da 15 minuti e una terza per candele da un'ora. Il focus di questo video sarà sul periodo di 15 minuti, ma copriremo tutte e tre le versioni.

La strategia segue regole specifiche. Innanzitutto, analizziamo il prezzo attuale in relazione alla 200 EMA. Se il prezzo viene scambiato al di sopra dell'EMA 200, lo consideriamo un trend rialzista. Al contrario, se il prezzo viene scambiato al di sotto dell'EMA 200, lo consideriamo un trend al ribasso. In un trend rialzista cerchiamo solo posizioni di acquisto, mentre in un trend ribassista cerchiamo solo posizioni di vendita.

Successivamente, esaminiamo i valori RSI di due candele consecutive. Inizialmente, utilizziamo un RSI a due candele per l'intervallo di tempo di un minuto. Tuttavia, poiché il backtesting per diversi anni con candele di un minuto genererebbe un'enorme quantità di dati, inizieremo con il periodo di 15 minuti. In questo caso, potremmo regolare la lunghezza dell'RSI a tre o quattro candele, a seconda del periodo di tempo. Per l'intervallo di tempo di un minuto, utilizzeremo un RSI a due candele e livelli di test inferiori a 10 e superiori a 90.

In un trend rialzista, aspettiamo che l'RSI scenda sotto 10 prima di eseguire una posizione di acquisto. Per le posizioni di vendita, aspettiamo che l'RSI superi 90. Questi livelli di RSI fungono da punti di ingresso per le nostre negoziazioni. Il video fornisce esempi visivi di come la strategia identifica le posizioni di entrata in base al prezzo e ai criteri RSI.

Il passaggio successivo consiste nel determinare i valori di stop-loss e take-profit per le negoziazioni. È possibile utilizzare vari metodi, come lo stop loss a distanza fissa, la distanza di stop relativa all'ATR o i valori di trailing stop. Allo stesso modo, il take-profit può essere impostato a una distanza fissa o correlato alla distanza di stop-loss con un certo rapporto take-profit/stop-loss.

Per valutare l'efficacia della strategia, scriviamo codice Python per condurre test retrospettivi su dati da uno a tre anni. Inoltre, introduciamo un passaggio per verificare la robustezza della strategia testandola su nuovi dati che sono stati tenuti separati per evitare bias.

Il video procede con l'analisi del codice in un Jupyter Notebook. Inizia caricando i dati, ripulendoli rimuovendo le voci di volume zero (che indicano fine settimana o giorni festivi) e calcolando i valori 200 EMA e RSI. Anche l'Average True Range (ATR) viene calcolato per la potenziale determinazione della distanza di stop loss.

Una volta calcolati i segnali necessari, il video mostra la visualizzazione di questi segnali su un grafico. Le candele di prezzo, la curva 200 EMA e le posizioni di ingresso (acquisto e vendita) vengono tracciate per analizzare visivamente il comportamento degli indicatori.

Dopo aver analizzato i segnali, il video spiega l'importanza del backtesting della strategia per un periodo prolungato per valutarne la redditività. Inizialmente, la strategia è stata testata per periodi più brevi, ma il risultato è stato diverso. Pertanto, il backtesting su un periodo più lungo è fondamentale per valutare l'efficacia complessiva della strategia.

Il video sottolinea la necessità di eseguire test retrospettivi e verificare le prestazioni della strategia per un periodo significativo. Esaminando i risultati finali del backtest, possiamo determinare se la strategia è redditizia e solida.

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...
Motivazione: