Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Canali di tendenza dei prezzi automatizzati in Python
Canali di tendenza dei prezzi automatizzati in Python
Ciao a tutti, grazie per esservi uniti a noi oggi per questo video. Siamo entusiasti di presentare un algoritmo in Python che rileva i canali di movimento dei prezzi. È possibile scaricare il codice come file Jupyter Notebook dal collegamento nella descrizione seguente.
Prima di tutto, il merito va al signor o alla signora M della sezione commenti per aver proposto questa idea. Apprezziamo la vostra pazienza poiché è passato più di un mese di attesa. Speriamo che questo video non vi deluda.
Prima di iniziare, chiariamo lo scopo di questo canale. Il nostro obiettivo è fornire contenuti educativi, quindi non ti forniremo semplicemente programmi da scaricare e utilizzare come una scatola nera. Invece, miriamo a spiegare il processo di pensiero e come è stato costruito il programma. Alla fine di questo video, dovresti essere in grado di creare il tuo algoritmo, ispirato a quello presentato qui, e persino aggiungere le tue estensioni.
Tuttavia, è importante riconoscere i limiti dei modelli numerici quando vengono applicati ad ambienti dinamici e non lineari come il mercato. Le tendenze e le previsioni dei prezzi sono ancora un campo di studio aperto, con ricerche in corso che cercano di trovare gli approcci migliori. Il mercato è molto dinamico e le tendenze e la loro velocità di cambiamento possono variare nel tempo. Quindi, ti preghiamo di accettare i limiti e le complessità inerenti alla previsione dei movimenti dei prezzi.
Ora, tuffiamoci nell'algoritmo. L'algoritmo che presentiamo si basa su semplici informazioni raccolte attraverso questo canale e la nostra immaginazione. L'approccio prevede di posizionarci a una candela o data specifica e guardare indietro nel tempo per un certo numero di candele.
Dividiamo questo tempo in parti uguali o finestre temporali. In ogni finestra, identifichiamo i punti di prezzo più alto e più basso, noti come massimi e minimi. Ripetiamo questo processo per tutte le finestre temporali e adattiamo i punti di minimo e massimo in adattamenti polinomiali di primo grado separati, che sono linee rette.
Tuttavia, queste pendenze non avvolgono necessariamente il prezzo perché attraversano i punti. Per risolvere questo problema, dobbiamo migliorare i valori di intercettazione di queste pendenze. Ci sono diversi modi per farlo. Un approccio consiste nell'aggiustare le intercettazioni in modo che le curve passino attraverso punti specifici, come il punto minimo più vicino al centro della finestra temporale oi punti più alti e più bassi trovati all'interno della finestra.
Un altro aspetto da considerare è la durata della finestra temporale. A seconda delle tue preferenze, puoi scegliere diversi valori per il numero di back candle. Ad esempio, puoi prendere 30 barre dietro la candela attuale più o meno 20 barre, consentendo al programma di muoversi all'interno di tale intervallo. Il programma valuterà quindi diverse pendenze e restituirà il numero di candele che forniscono la situazione più parallela tra le due pendenze, indicando il rilevamento di un canale.
Abbiamo fornito un file Jupyter Notebook che puoi scaricare dal link nella descrizione del video. Il file include il codice Python per l'implementazione dell'algoritmo. Per iniziare, importiamo la libreria dei panda e carichiamo i dati da un file CSV contenente i dati delle candele Euro contro Dollaro dal 2003 al 2021.
Successivamente, cerchiamo i massimi e i minimi all'interno della finestra temporale definita dal numero di back candle. Dividiamo la finestra in finestre più piccole e troviamo i punti massimo e minimo all'interno di ogni finestra. Questi punti sono memorizzati in array numpy.
Dopo aver ottenuto i minimi ei massimi, usiamo la funzione numpy polyfit per adattare i punti alle linee polinomiali di primo grado. I risultati, che includono le pendenze e le intercettazioni, sono memorizzati in variabili.
Per visualizzare le pendenze, tracciamo il grafico a candele e aggiungiamo le linee corrispondenti alle pendenze. In questa fase, le piste potrebbero non avvolgere perfettamente il prezzo, ma forniscono una misura ragionevole.
Per migliorare la vestibilità, possiamo modificare le intercettazioni delle piste. Un approccio consiste nell'aggiustare le intercettazioni in modo che passino attraverso i punti più alti e più bassi all'interno di ogni finestra temporale. Calcoliamo i punti più alti e più bassi all'interno della finestra temporale e aggiorniamo di conseguenza le intercettazioni delle piste.Per determinare il canale ottimale, iteriamo attraverso diversi valori del numero di back candle e valutiamo il parallelismo tra le due pendenze. Calcoliamo l'angolo tra le due pendenze e controlliamo se rientra in una soglia predefinita. In tal caso, lo consideriamo un canale valido e memorizziamo il numero di candele posteriori e l'angolo per ulteriori analisi.
Infine, possiamo visualizzare i canali rilevati tracciando il grafico a candele e sovrapponendo le linee corrispondenti ai canali. Ciò fornisce una rappresentazione visiva dei canali di movimento dei prezzi identificati.
È importante notare che questo algoritmo è un approccio semplificato e potrebbe non catturare tutti i tipi di canali di movimento dei prezzi. Il mercato è complesso e possono esserci vari modelli e dinamiche che vanno oltre lo scopo di questo algoritmo. Tuttavia, questo algoritmo funge da punto di partenza per il rilevamento dei canali e può essere esteso o personalizzato in base alle esigenze e alle preferenze individuali.
Ti invitiamo a scaricare il file Jupyter Notebook ed esplorare il codice in dettaglio. Sperimenta con diversi parametri, testalo su diversi set di dati e guarda come si comporta. Sentiti libero di modificare e migliorare l'algoritmo in base alle tue esigenze e alle tue idee.
Ci auguriamo che questo video e il relativo codice ti forniscano spunti e ispirazione per sviluppare il tuo algoritmo di rilevamento dei canali. Ricorda, la chiave è comprendere i concetti sottostanti e adattarli alle tue esigenze specifiche e alle condizioni di mercato.
Grazie per la visione e non vediamo l'ora di ricevere feedback e domande. Buona programmazione!
Come codificare un trail stop nel backtesting della strategia Python
Come codificare un trail stop nel backtesting della strategia Python
Oggi ho un entusiasmante tutorial di codifica per te in Python. Impareremo come implementare un trailing stop nella nostra strategia di trading e analizzare il suo impatto sulla nostra equity e sui rendimenti. Se sei nuovo su questo canale, ti consiglio di guardare i video precedenti in questa playlist, in particolare gli ultimi due o tre, in cui abbiamo discusso la strategia in dettaglio. Puoi anche trovare il codice Python nel taccuino Jupiter, che è disponibile per il download dal link nella descrizione. Ciò ti consentirà di mettere a punto i parametri e sperimentare da solo.
Prima di immergerci nella parte di codifica, ricapitoliamo brevemente la strategia che useremo. In poche parole, abbiamo automatizzato il rilevamento dei livelli di supporto e resistenza, nonché l'identificazione dei modelli di candele che si verificano intorno a questi livelli. Sulla base di questi segnali, eseguiremo i nostri ordini di trading. Ad esempio, se identifichiamo un segnale di acquisto, come un modello engulfing rialzista preceduto da una forte candela di rifiuto, entreremo in una posizione lunga. Per gestire il rischio, dobbiamo impostare un ordine di stop loss, che determina la perdita massima che siamo disposti a tollerare. Tradizionalmente, lo stop loss è fissato a una certa distanza dal prezzo di entrata. Tuttavia, in questo tutorial, lo sostituiremo con un trailing stop.
Un trailing stop segue il movimento del prezzo nella direzione redditizia, permettendoci di ottenere maggiori guadagni durante un trend rialzista. Nel nostro esempio, poiché siamo in una posizione di acquisto, il trailing stop seguirà il prezzo man mano che sale, mantenendo una certa distanza dietro di esso. Tuttavia, se il prezzo tenta di invertire e raggiunge il livello di stop-loss, il nostro trade verrà chiuso per evitare ulteriori perdite. Questo meccanismo di trailing stop aiuta a massimizzare i profitti, specialmente durante le tendenze di prezzo prolungate, invece di utilizzare un livello di take-profit fisso che potrebbe limitare i nostri potenziali guadagni.
Ora, applichiamo questo concetto alla nostra strategia discussa in precedenza. Useremo lo stesso programma descritto in precedenza. Se non lo conosci, fai riferimento alla playlist e guarda gli ultimi due o tre video, che trattano i pattern delle candele e l'automazione del rilevamento dei livelli di supporto e resistenza. L'unica differenza questa volta è che invece di utilizzare un rapporto fisso di stop-loss o take-profit, implementeremo il trailing stop. Verso la fine di questo tutorial, eseguirò il backtest della strategia e dimostrerò i potenziali rendimenti ottenibili con questo metodo di trailing stop.
Per iniziare, carichiamo i nostri dati, ovvero il grafico a candele giornaliero per la coppia di valute EUR/USD dal 2003 al 2021. Abbiamo una serie di funzioni che aiutano a rilevare i livelli di supporto e resistenza, oltre a vari modelli di candele come i modelli engulfing, stelle cadenti e modelli di rifiuto. Se sei interessato ai dettagli di implementazione di queste funzioni, fai riferimento ai video precedenti.
Successivamente, generiamo i nostri segnali di trading. Un segnale di acquisto è indicato da un valore di 2, un segnale di vendita da 1 e, se non c'è segnale, il valore è impostato su 0. Queste informazioni vengono aggiunte come una nuova colonna nel nostro data frame. Ecco come appare ora il nostro frame di dati, con colonne per il prezzo di apertura, massimo, minimo, prezzo di chiusura, volume (che non useremo in questa strategia) e la colonna del segnale.
Per eseguire il backtest della nostra strategia, utilizzeremo il pacchetto di backtest introdotto nell'ultimo video di questa playlist. Definiamo una classe chiamata "MyCandleStrategy" che eredita dalla classe "Strategy" fornita dal pacchetto di backtesting. Sovrascriviamo due funzioni: "initialize" e la funzione successiva chiamata a ciascuna candela. Nella funzione initialize, definiamo la variabile "stop_loss_trail", che rappresenta la distanza (in pip) per il nostro trailing stop. Questo valore può essere sperimentato per trovare il valore di trailing stop ottimale per la nostra strategia.
Nella funzione successiva, implementiamo la logica per il nostro trailing stop. Iniziamo controllando se abbiamo una posizione aperta. Se lo facciamo, calcoliamo l'attuale livello di stop loss sottraendo il valore del trailing stop dal prezzo più alto da quando siamo entrati nella posizione. Ciò garantisce che il livello di stop loss segua il prezzo man mano che sale. Verifichiamo quindi se il prezzo corrente ha raggiunto o è sceso al di sotto del livello di stop loss. In tal caso, chiudiamo la posizione e aggiorniamo le nostre statistiche di trading. Ora che abbiamo implementato la logica del trailing stop, possiamo procedere con l'esecuzione del backtest e l'analisi dei risultati. Ecco un esempio di come eseguire il backtest e stampare la curva dell'equity: Questo genererà un grafico che mostra la curva dell'equity della nostra strategia con il trailing stop applicato. Puoi anche accedere ad altre metriche e statistiche sulle prestazioni fornite dal pacchetto di backtesting per valutare le prestazioni della strategia.Infine, per mettere a punto il valore del trailing stop, puoi iterare su un intervallo di valori ed eseguire più backtest per confrontare i risultati. Questo ti aiuterà a trovare il valore di trailing stop ottimale che massimizza i tuoi rendimenti.
Questo conclude il nostro tutorial sull'implementazione di un trailing stop nella nostra strategia di trading. Ricorda di sperimentare valori diversi e testare a fondo la strategia prima di applicarla al trading reale. Se hai domande o hai bisogno di ulteriore assistenza, non esitare a chiedere. Buona programmazione e buon trading!
Come eseguire il backtest di una strategia di trading in Python
Come eseguire il backtest di una strategia di trading in Python
Ciao a tutti e bentornati in un altro video. Oggi vorrei discutere di un argomento molto importante per le nostre strategie di trading, ovvero il backtesting. Finora, abbiamo presentato diverse strategie e ci siamo affidati solo a conteggi statistici per verificare l'affidabilità delle stime del nostro modello per il trading. Tuttavia, il backtesting della nostra strategia fornisce ulteriori informazioni, ovvero l'ammontare del profitto che può essere realizzato entro un certo tempo.
Questa percentuale di profitto è importante da definire se stai considerando qualsiasi tipo di investimento nella tua strategia. Prima di continuare, come al solito, il codice è un notebook Jupyter Python che puoi scaricare dal link nella descrizione di questo video. Questo argomento è stato proposto da uno dei tuoi messaggi, quindi grazie ancora per aver condiviso i tuoi pensieri. Stiamo ricevendo idee davvero interessanti dal vostro feedback e mi scuso se non ho avuto il tempo di discutere tutte le idee proposte, ma sto tenendo un elenco e penso che ne parleremo in futuro.
Ora parliamo degli strumenti di backtesting. Ci sono molte librerie disponibili online, ma personalmente preferisco codificare le mie funzioni. In questo modo, so esattamente cosa sta succedendo all'interno del mio codice, soprattutto quando si tratta di backtesting. Abbiamo bisogno di qualcosa di affidabile e robusto. Tuttavia, tra i pacchetti proposti, avevo due scelte. Uno stava usando un pacchetto chiamato "vectorbt", che ho trovato un po' difficile da imparare in un paio d'ore e iniziare a usarlo per le mie strategie. La documentazione era scarsa e ho dovuto cercare nei forum e negli esempi online per trovare molti dettagli. Sebbene abbia un enorme potenziale e offra molte opzioni, non volevo passare un mese a familiarizzare con le funzioni necessarie solo per testare una semplice strategia.
Quindi, per questo video, ho optato per la seconda scelta, che è un pacchetto chiamato "backtesting.py". A mio parere, offre un approccio più semplice. Ora, entriamoci dentro e vediamo quanti soldi avrebbe fatto la nostra strategia. Per questo esempio, testerò la strategia precedente di cui abbiamo discusso nel video di rilevamento automatico di resistenza e supporto e rilevamento di modelli di candele. Questi sono due indicatori che combineremo e utilizzeremo in questo video.
Innanzitutto, caricherò e pulirò i dati. Quindi, applicherò le funzioni di supporto e resistenza per il rilevamento. Se è la prima volta che guardi su questo canale, ti consiglio di tornare indietro e controllare i video precedenti su come rilevare le funzioni di supporto e resistenza, nonché quello in cui spieghiamo come rilevare schemi di engulfing, stelle cadenti, uomo impiccato e altri modelli di candele.
Successivamente, calcoliamo il nostro segnale, che si tratti di un segnale di acquisto, di vendita o di nessun segnale, in base all'approccio menzionato in precedenza. Etichettiamo entrambi i nostri segnali e riempiamo una colonna nel nostro data frame. Possiamo controllare il numero di segnali che abbiamo ottenuto solo per assicurarci che le nostre funzioni funzionino correttamente.
Ora cambierò i titoli delle colonne per renderli compatibili con il pacchetto backtesting.py. Questo passaggio fa distinzione tra maiuscole e minuscole, quindi dobbiamo assicurarci che i nomi corrispondano esattamente. Quindi, seleziono una serie di righe con cui lavorare.
Dopo aver impostato il nostro data frame, passiamo alla parte più interessante: definire la nostra strategia e testarla. Importerò le librerie richieste, incluso il modulo "strategia", e rimuoverò l'esempio sull'incrocio tra medie mobili lente e veloci.
Successivamente, definisco una nuova classe chiamata "MyCandlesStrategy" che estende la classe "Strategy" e sovrascrive i suoi due metodi astratti: __init__ e next. Il metodo __init__ viene utilizzato per inizializzare le prime variabili o funzioni all'inizio della strategia. Viene eseguito solo una volta, idealmente per pre-calcolare eventuali indicatori e segnali da cui dipende la strategia.
Nel complesso, il backtesting è un aspetto cruciale delle strategie di trading, poiché fornisce informazioni preziose sulla potenziale redditività di una strategia in un periodo di tempo specifico. In questo video, approfondiremo il backtesting e il suo significato per le nostre strategie di trading.
Prima di procedere, come al solito, il codice per questa discussione è disponibile come notebook Jupyter Python, che puoi scaricare dal link fornito nella descrizione del video. L'argomento del backtesting è stato suggerito da uno dei nostri spettatori e apprezzo le idee interessanti e il feedback che ricevo da tutti voi. Anche se potrei non avere l'opportunità di discutere immediatamente tutte le idee proposte, mantengo un elenco e mi sforzo di includerle nei video futuri.
Quando si tratta di strumenti di backtesting, ci sono numerose librerie disponibili online. Sebbene non abbia familiarità con tutti loro, personalmente preferisco codificare le mie funzioni. Questo approccio mi consente di avere il controllo e la comprensione completi del funzionamento interno del codice, che è particolarmente cruciale per il backtesting. Abbiamo bisogno di una soluzione robusta e affidabile per valutare i nostri modelli di trading.
Tra i pacchetti suggeriti, avevo due opzioni. Il primo era un pacchetto chiamato "Vectorbt", che, sebbene potente e ricco di funzionalità, presentava una ripida curva di apprendimento. La documentazione per questo pacchetto era alquanto limitata e ho dovuto cercare nei forum e negli esempi online per raccogliere le informazioni necessarie. Sebbene Vectorbt abbia un potenziale immenso, non volevo dedicare troppo tempo a familiarizzare con le sue funzioni al solo scopo di testare una semplice strategia in questo video.
Pertanto, ho optato per la seconda scelta, un pacchetto chiamato "backtesting.py". A mio parere, questo pacchetto offre un approccio più semplice al backtesting, rendendolo più adatto alle nostre esigenze. Detto questo, tuffiamoci dentro e vediamo quanto profitto avrebbe generato la nostra strategia.
In questo esempio, testerò la strategia precedente di cui abbiamo discusso, che prevedeva il rilevamento automatico dei livelli di resistenza e supporto, nonché il rilevamento del pattern candlestick. Questi due indicatori saranno combinati per formare la nostra strategia. Per una spiegazione dettagliata del rilevamento dei livelli di supporto e resistenza e dei modelli di candele, ti incoraggio a guardare i video corrispondenti sul nostro canale.
Per iniziare, carichiamo e puliamo i dati come al solito. Successivamente, implementiamo le funzioni di supporto e resistenza per il rilevamento. Se sei nuovo su questo canale, ti consiglio di dare un'occhiata ai video precedenti sul rilevamento di supporto e resistenza e sull'identificazione del modello a candela per una migliore comprensione.
Una volta calcolati i nostri segnali, che determinano se si tratta di una situazione di acquisto, vendita o assenza di segnale, contiamo il numero di segnali per assicurarci che le nostre funzioni funzionino correttamente.
Andando avanti, dobbiamo modificare i nomi delle colonne nel nostro DataFrame in modo che siano compatibili con il pacchetto "backtesting.py". È essenziale rispettare la distinzione tra maiuscole e minuscole e le convenzioni di denominazione richieste dal pacchetto. Inoltre, selezioniamo una serie di righe e apportiamo le necessarie modifiche alle colonne.
Per riassumere, il nostro DataFrame contiene le seguenti colonne: tempo, prezzo di apertura, massimo, minimo e chiusura, oltre al volume (che non useremo al momento) e la colonna del segnale che abbiamo calcolato in precedenza.
Successivamente, definiamo una funzione di segnale che restituisce la colonna del segnale dal nostro DataFrame. Questa funzione sarà necessaria in seguito quando definiremo la nostra classe di strategia.
Ora arriviamo alla parte più interessante, dove definiamo la nostra strategia ed eseguiamo il backtesting. Per fare ciò, seguiamo le linee guida fornite nella documentazione di backtesting.py. Suggeriscono che una nuova strategia dovrebbe estendere la classe Strategy e sovrascrivere i suoi due metodi astratti: init e next.
Il metodo init è responsabile dell'inizializzazione delle variabili e delle funzioni richieste dalla strategia. Viene richiamato prima che la strategia venga eseguita e viene in genere utilizzato per pre-calcolare qualsiasi indicatore o segnale su cui si basa la strategia. Sovraccaricando questa funzione, possiamo definire gli indicatori necessari utilizzando le normali funzioni Python e gli esempi forniti nella documentazione di backtesting.py.
Nel nostro metodo init, definiamo gli indicatori necessari per la nostra strategia. In questo caso, utilizzeremo la funzione signal che abbiamo creato in precedenza per ottenere la colonna signal dal nostro DataFrame. Impostiamo anche la commissione a zero, poiché in questo esempio non considereremo alcuna commissione di negoziazione.
Il prossimo metodo è il cuore della nostra strategia. Viene chiamato per ogni barra di trading ed è responsabile di prendere le decisioni di trading in base alle attuali condizioni di mercato. Nella nostra implementazione, controlliamo se c'è un segnale di acquisto (segnale uguale a 1) e al momento non abbiamo una posizione. Se queste condizioni sono soddisfatte, entriamo in una posizione lunga (acquisto).
Allo stesso modo, se c'è un segnale di vendita (segnale uguale a -1) e abbiamo una posizione lunga, usciamo dalla posizione (vendita). Non consideriamo le posizioni corte in questo esempio, quindi abbiamo solo segnali di acquisto e vendita.
Una volta definita la nostra strategia, ne creiamo un'istanza e passiamo il nostro DataFrame e la nostra funzione di segnale come argomenti. Creiamo quindi un'istanza della classe Backtest dal pacchetto backtesting.py, passando la nostra istanza di strategia e DataFrame come argomenti.
Infine, eseguiamo il backtest chiamando il metodo run sulla nostra istanza di Backtest. Questo metodo esegue la strategia e produce i risultati.
I risultati includono varie metriche di performance come il rendimento totale, il rendimento annualizzato, il prelievo massimo e altro ancora. Possiamo accedere a queste metriche utilizzando gli attributi corrispondenti dell'istanza di Backtest.
Oltre alle metriche delle prestazioni, l'istanza di Backtest fornisce varie funzioni di tracciamento per visualizzare i risultati. Possiamo tracciare la curva dell'equity, che mostra la crescita del conto di trading nel tempo, così come altri grafici utili come prelievi e registro degli scambi.
Nel nostro esempio, tracciamo la curva azionaria e stampiamo il riepilogo dei risultati del backtest, incluse le metriche di performance.
Dopo aver eseguito il codice, possiamo osservare il grafico della curva azionaria, che mostra la crescita del nostro conto di trading nel tempo. Il riepilogo dei risultati del backtest fornisce preziose informazioni sulla performance della nostra strategia.
Effettuando il backtesting della nostra strategia, possiamo valutarne la redditività e valutarne le prestazioni. Questo processo ci consente di ottenere informazioni sull'efficacia del nostro modello di trading e prendere decisioni informate sul suo potenziale utilizzo in scenari di trading reali.
Questo conclude la nostra discussione sul backtesting usando il pacchetto backtesting.py. Spero che tu abbia trovato questo video informativo e che ti abbia fornito un approccio pratico al backtest delle tue strategie di trading. Ricorda di sperimentare diverse strategie, indicatori e parametri per trovare quelli che funzionano meglio per i tuoi obiettivi di trading.
Come sempre, sentiti libero di lasciare commenti, domande o suggerimenti per video futuri. Il tuo feedback è molto apprezzato. Grazie per aver guardato e ci vediamo nel prossimo video!
Strategia di trading di azioni di prezzo automatizzate in Python
Strategia di trading di azioni di prezzo automatizzate in Python
In questo video, discuteremo una strategia di trading che utilizza modelli di candele e livelli di supporto e resistenza. L'obiettivo principale di questa strategia è automatizzare il processo di rilevamento dei modelli di azione dei prezzi e applicarlo ai dati storici dell'euro rispetto al dollaro USA.
Per iniziare, diamo un'occhiata ai componenti chiave di questa strategia. I pattern candlestick sono rappresentazioni grafiche dei movimenti dei prezzi sotto forma di barre o candele. Questi modelli forniscono informazioni preziose sul sentimento del mercato e sulle potenziali inversioni di tendenza. Analizzando questi modelli, i trader possono prendere decisioni informate su quando entrare o uscire dalle negoziazioni.
I livelli di supporto e resistenza, d'altra parte, sono punti di prezzo specifici in cui il mercato ha storicamente mostrato una tendenza all'inversione o allo stallo. Questi livelli fungono da barriere psicologiche per i trader e possono essere utilizzati per identificare potenziali punti di ingresso e di uscita.
Passiamo ora all'implementazione di questa strategia in Python. Utilizzeremo i dati storici dell'euro rispetto al dollaro USA, che possono essere ottenuti da varie fonti di dati finanziari o API. Per questo esempio, assumeremo di aver già raccolto e preelaborato i dati necessari.
Automatizzeremo la strategia utilizzando Python e alcune librerie popolari. Il primo passaggio consiste nell'importare le librerie richieste, inclusi panda per la manipolazione dei dati, matplotlib per il tracciamento e talib per gli indicatori di analisi tecnica. Talib è una libreria ampiamente utilizzata che fornisce una raccolta di funzioni di analisi tecnica, incluso il riconoscimento del pattern candlestick.
Una volta importate le librerie, possiamo caricare i dati storici in un DataFrame dei panda. Il DataFrame dovrebbe contenere le colonne necessarie come data, apertura, massimo, minimo, chiusura e volume. Queste colonne sono comunemente utilizzate nell'analisi tecnica e sono necessarie per il calcolo di indicatori e modelli.
Successivamente, possiamo definire una funzione per rilevare i modelli di candele. In questo esempio, ci concentreremo su un pattern semplice, il pattern engulfing rialzista. Questo modello si verifica quando una piccola candela ribassista è seguita da una candela rialzista più grande che avvolge completamente la candela precedente. La funzione eseguirà un'iterazione sul DataFrame e identificherà le istanze del modello engulfing rialzista.
Per migliorare la strategia, possiamo anche incorporare livelli di supporto e resistenza. Questi livelli possono essere individuati manualmente analizzando il grafico dei prezzi storici o utilizzando tecniche di analisi tecnica. In questo esempio, assumeremo di aver già identificato i relativi livelli di supporto e resistenza e di averli memorizzati in un DataFrame separato.
Una volta che abbiamo i pattern delle candele e i livelli di supporto e resistenza, possiamo procedere ad automatizzare la strategia. Itereremo sul DataFrame e verificheremo se la barra corrente soddisfa le condizioni per un modello engulfing rialzista e se il prezzo corrente è vicino a un livello di supporto. Se queste condizioni sono soddisfatte, generiamo un segnale di acquisto.
Al contrario, se la barra corrente soddisfa le condizioni per un modello engulfing ribassista e il prezzo corrente è vicino a un livello di resistenza, generiamo un segnale di vendita. Questi segnali verranno utilizzati per attivare ordini di acquisto o vendita in un ambiente di trading dal vivo.
Per visualizzare i risultati della nostra strategia, possiamo tracciare il grafico dei prezzi storici con i modelli di candele identificati e i livelli di supporto e resistenza. Questo ci aiuterà a capire l'efficacia della nostra strategia e ad identificare eventuali aree di miglioramento.
Infine, possiamo valutare la performance della nostra strategia testandola sui dati storici. Il backtesting comporta la simulazione di operazioni basate su dati storici e la valutazione della redditività e del rischio della strategia. Possiamo calcolare varie metriche di performance come il rendimento totale, il rendimento annualizzato, il prelievo massimo e altro ancora.
Effettuando il backtest della nostra strategia, possiamo ottenere informazioni sulle sue prestazioni e prendere decisioni informate sul suo potenziale utilizzo in scenari di trading reali. È importante notare che il backtesting è un passaggio cruciale nello sviluppo della strategia, in quanto ci aiuta a valutare la fattibilità e la redditività del nostro approccio.
Questo video ha presentato una semplice strategia di trading che combina modelli di candele e livelli di supporto e resistenza. La strategia è stata automatizzata e testata in Python utilizzando i dati storici dell'euro rispetto al dollaro USA. Sfruttando queste tecniche di analisi tecnica, i trader possono potenzialmente identificare opportunità di trading redditizie e prendere decisioni informate nei mercati finanziari.
Supporto automatizzato e rilevamento della resistenza in PYTHON
Supporto automatizzato e rilevamento della resistenza in PYTHON
Ciao a tutti e bentornati in questo video. In questo video, forniremo una spiegazione dettagliata di come automatizzare il rilevamento dei livelli di supporto e resistenza utilizzando Python. Questa idea è stata proposta da uno dei commenti, quindi un grande grazie per questo. Come al solito, non dimenticare che il programma è disponibile per il download dal link nella descrizione sottostante. È un file Jupyter Notebook che puoi usare per i tuoi esperimenti. Potresti voler provare questo su valute diverse o intervalli di tempo diversi e puoi anche modificare le variabili fornite nel codice.
Mentre è facile identificare visivamente i livelli di supporto e resistenza osservando un grafico del movimento dei prezzi, definirli a livello di programmazione può sembrare complicato. Tuttavia, con un algoritmo appropriato, il processo può essere automatizzato. È importante notare che l'algoritmo che presentiamo in questo video non è l'unico per rilevare i livelli di supporto e resistenza. Esistono diversi approcci, ma ne abbiamo scelto uno relativamente semplice da implementare nel codice.
La figura che vedi qui è stata prodotta utilizzando il codice che stiamo per spiegare e, come puoi vedere, i livelli di supporto e resistenza sono stati rilevati correttamente dal nostro programma. Questo approccio funziona per qualsiasi valuta e in qualsiasi condizione di mercato. Tuttavia, non è un algoritmo perfetto e potresti notare che alcuni livelli non sono stati rilevati. Ne parleremo più avanti nel video.
L'idea di base alla base della definizione dei livelli di supporto e resistenza è guardare indietro entro un certo periodo di tempo, ad esempio un mese o due, a seconda di quanti livelli si desidera includere nella propria strategia. Più dati hai, più livelli scoprirai. Ad esempio, se stai considerando un grafico giornaliero come quello mostrato qui e desideri procedere con un'operazione in una data specifica, guarderai indietro entro un certo periodo di tempo, ad esempio un mese, per scoprire i livelli di supporto e resistenza che avvenuta in quel periodo. Questo è ciò che simuleremo nel nostro programma considerando un periodo di tempo limitato per il rilevamento del livello. Se provassimo a rilevare i livelli di supporto e resistenza utilizzando tutti i dati disponibili, ci ritroveremmo con un gran numero di livelli, il che non è pratico per una strategia di trading. Quindi, è meglio concentrarsi su alcuni mesi che precedono la data corrente.
Ora tuffiamoci nell'algoritmo stesso. Per i livelli di supporto, cercheremo un certo numero di minimi decrescenti che precedono la candela di interesse. La candela di interesse dovrebbe avere un valore basso inferiore rispetto alle altre candele. Inoltre, dobbiamo avere tre minimi crescenti dopo la candela di interesse. Quando tutte queste condizioni sono soddisfatte per un gruppo di candele, possiamo identificare un livello di supporto, che è definito come il prezzo più basso tra queste candele. Lo stesso principio si applica ai livelli di resistenza. Dobbiamo avere massimi crescenti prima della candela di interesse e un massimo più alto per la candela di interesse. Quindi, dovremmo avere massimi decrescenti dopo la candela di interesse. Questo ci permette di trovare il livello di resistenza, che è il prezzo più alto tra queste candele.
Un parametro interessante in questa fase è quante candele dovremmo considerare prima e dopo la candela di interesse. Questo può essere personalizzato in base alle preferenze dell'utente e sarebbe utile sperimentare valori diversi. Nel nostro programma, le definiamo come due variabili chiamate n1 e n2. L'indice della candela di interesse è rappresentato dalla variabile l.
Ora, vediamo come possiamo implementare questo algoritmo in Python. Useremo un Jupyter Notebook per questa dimostrazione. Innanzitutto, importiamo le librerie necessarie, inclusi i panda per la manipolazione dei dati. Carichiamo i dati utilizzando la funzione read_csv e, in questo esempio, stiamo utilizzando i grafici giornalieri EUR/USD dal 2003 al 2021, ovvero circa 18 anni di dati.
Successivamente, utilizzeremo i livelli di supporto e resistenza memorizzati negli elenchi ss e rr per tracciare le linee sul grafico a candele. Passeremo in rassegna ogni livello di supporto in ss e aggiungeremo una linea orizzontale al grafico a quel livello di prezzo. Allo stesso modo, passeremo in rassegna ogni livello di resistenza in rr e aggiungeremo una linea orizzontale per ogni livello. Ciò renderà più facile visualizzare i livelli di supporto e resistenza in relazione al movimento dei prezzi.
Eseguendo il codice, genererai un grafico a candele con i livelli di supporto visualizzati come linee tratteggiate viola e i livelli di resistenza visualizzati come linee tratteggiate blu. Il grafico fornirà una rappresentazione visiva dei livelli di supporto e resistenza rilevati, facilitando l'identificazione dei livelli di prezzo chiave per le decisioni di trading.
Ricorda, l'algoritmo presentato qui è uno dei numerosi approcci per rilevare i livelli di supporto e resistenza. Puoi sperimentare diversi valori di n1 e n2 per vedere come influenzano il rilevamento e l'unione dei livelli. Inoltre, è possibile modificare la condizione per l'unione dei livelli regolando il valore di soglia nel codice.
Tieni presente che il rilevamento automatico dei livelli di supporto e resistenza è uno strumento utile, ma dovrebbe essere utilizzato insieme ad altre tecniche di analisi tecnica e approfondimenti di mercato per prendere decisioni di trading informate.
Analisi automatizzata dei modelli di azione dei prezzi in Python
Questo video fornisce una spiegazione su come combinare i modelli di analisi delle candele in Python e verificare il numero di segnali e l'accuratezza delle previsioni dell'azione dei prezzi. I metodi sono compatibili con il trading automatico. Un buon metodo per cercare un segnale relativamente forte dai movimenti dell'azione dei prezzi, dall'analisi delle candele, dai modelli engulfing, dall'analisi dell'azione dei prezzi.
00:00 Introduzione alle candele Price Action
00:35 Stella cadente, martello, uomo impiccato, schema avvolgente
03:10 Rilevamento dell'azione del prezzo di Python
12:13 Risultati dell'analisi dell'azione dei prezzi
18:45 Tracciare le candele dei prezzi in Python
Engulfing Price Action Pattern automatizzato in Python
Engulfing Price Action Pattern automatizzato in Python
Ciao a tutti e bentornati in questo video. Nella discussione di oggi, ci concentreremo sulle candele engulfing, in particolare sui modelli engulfing rialzisti e ribassisti. Per quelli di voi che hanno già familiarità con questi schemi, capite il loro significato come indicatori nel trading.
Per analizzare la validità di questi modelli, utilizzeremo i dati storici della coppia di valute EUR/USD che coprono circa 10 anni. Il nostro obiettivo è applicare semplici tecniche statistiche in Python per determinare se questi modelli hanno un significato statistico o se sono semplicemente un mito. Questa informazione è fondamentale, soprattutto se stai pensando di incorporare modelli di candele nella tua strategia di trading come indicatori.
Per tua comodità, puoi trovare il codice completo utilizzato in questa analisi seguendo il link fornito nella descrizione sottostante. Il codice è disponibile come file Jupyter Notebook, permettendoti di rilassarti e goderti questo video esplorando contemporaneamente il codice.
I modelli di inghiottimento possono essere osservati in due forme diverse. Il modello rialzista si verifica quando più candele di tendenza al ribasso sono seguite da una singola candela di tendenza al rialzo. Questa candela di tendenza al rialzo inizia al prezzo di chiusura dell'ultima candela di tendenza al ribasso o al di sotto e chiude al di sopra del prezzo di apertura della candela precedente. Questo modello indica in genere un imminente trend rialzista nel mercato.
D'altra parte, il modello engulfing ribassista è l'opposto simmetrico del modello rialzista. Si verifica quando le candele di tendenza rialzista sono seguite da una candela engulfing ribassista. Una candela engulfing ribassista inizia al prezzo di chiusura della candela precedente o al di sopra e chiude al di sotto del prezzo di apertura della stessa candela. Questo modello indica un imminente movimento al ribasso del prezzo.
In questo video, il nostro obiettivo è verificare se queste affermazioni sono vere. Miriamo a determinare se questi modelli indicano veramente comportamenti di mercato specifici. In genere, un modello engulfing rialzista suggerisce che gli acquirenti sono più forti dei venditori sul mercato, mentre un modello engulfing ribassista suggerisce il contrario. Per eseguire questa verifica, scriveremo codice Python per rilevare candele engulfing rialziste e ribassiste. Successivamente, analizzeremo le seguenti poche candele (che vanno da una a tre candele o più) per verificare se il prezzo si muove nella direzione prevista.
Per essere più precisi, considereremo il prezzo di chiusura dell'ultima candela engulfing. Nel caso di un pattern engulfing rialzista, considereremo i valori alti delle candele successive e calcoleremo la differenza tra il prezzo massimo e quello di chiusura della candela engulfing. Ciò si tradurrà in tre valori distinti, che indicheremo come "d". Successivamente, testeremo se qualcuna di queste differenze supera un certo limite, rappresentato da una variabile che definirò. Questo limite può essere impostato su 20, 30 o 40 pip, a seconda delle tue preferenze. Calcoleremo quindi la percentuale di volte in cui questa differenza supera il limite di pip.
Allo stesso modo, per il pattern engulfing ribassista, prenderemo in considerazione i valori bassi delle successive candele. Confronteremo la differenza tra il prezzo di chiusura della candela engulfing e questi valori bassi con la variabile X. Ancora una volta, stiamo cercando i casi in cui questa differenza supera X. In sostanza, stiamo valutando se il prezzo supera un rialzista o un ribassista soglia entro due o tre candele seguendo il modello engulfing. Calcoleremo la percentuale di casi in cui il prezzo si comporta come previsto dopo che si sono verificati questi modelli.
È importante notare che solo una di queste differenze deve superare la variabile X. Non è necessario che tutte e tre le differenze superino contemporaneamente questo limite di pip. Pertanto, se il prezzo scende al di sotto del valore di chiusura della candela engulfing di un numero specifico di pip, la previsione di questo modello è considerata riuscita. Lo stesso principio si applica al modello engulfing rialzista, ma in una direzione verso l'alto.
Ora procediamo con il controllo del codice Python e osservandone il comportamento.
Se lo sto facendo per il trend uguale a uno, ovvero per il modello engulfing ribassista e la previsione del trend ribassista, posso calcolare la precisione sommando i valori nella colonna dei risultati in cui il trend è uguale a uno e dividendolo per il numero totale di segnali per il pattern engulfing ribassista. Allo stesso modo, posso calcolare la precisione per il modello engulfing rialzista e la previsione del trend rialzista.
Ora, creiamo una nuova funzione chiamata "calculate_precision" che prende il frame di dati come input e calcola la precisione per entrambi i modelli. Per prima cosa, inizializziamo le variabili "bearish_signals" e "bullish_signals" per contare il numero totale di segnali per ogni pattern. Quindi, iteriamo attraverso il frame di dati e incrementiamo il corrispondente contatore di segnale in base al valore del segnale.
Successivamente, calcoliamo la precisione per il pattern engulfing ribassista sommando i valori nella colonna dei risultati in cui il trend è uguale a uno e dividendolo per il numero totale di segnali ribassisti. Facciamo lo stesso per il modello engulfing rialzista e la previsione del trend rialzista.
Infine, restituiamo i valori di precisione per entrambi i modelli. Ora, chiamiamo questa funzione sul nostro data frame per calcolare la precisione.
Dopo aver calcolato la precisione, possiamo stampare i risultati per vedere quanto bene le nostre previsioni si allineano con la tendenza effettiva. È importante notare che questi valori di precisione sono basati su parametri e condizioni specifici che abbiamo impostato nel nostro codice. Puoi sperimentare diversi parametri e condizioni per ottimizzare la precisione per la tua specifica strategia di trading.
In conclusione, questo video si è concentrato sull'inghiottire i modelli di candele nel trading e mirava a determinare se questi modelli hanno un significato statistico o se sono semplicemente un mito. Analizzando i dati storici della coppia di valute EUR/USD utilizzando Python, abbiamo rilevato modelli di candele engulfing ribassisti e rialzisti ed esaminato il successivo comportamento di tendenza all'interno di un numero specificato di candele. Attraverso il calcolo della precisione, abbiamo ottenuto informazioni sull'accuratezza delle nostre previsioni. Ricordati di considerare i limiti di questa analisi e continua a perfezionare la tua strategia di trading in base alle tue preferenze e ai tuoi obiettivi.
Grazie per aver guardato e non dimenticare di controllare il link nella descrizione del video per scaricare il codice completo nel formato Jupyter Notebook. Goditi il tuo viaggio nel trading e buona fortuna per i tuoi sforzi!
Strategia automatizzata delle candele in Python | testare la stella cadente
Strategia automatizzata delle candele in Python | testare la stella cadente
Nella sessione di oggi, approfondiremo l'affascinante mondo dei modelli Candlestick e impareremo come programmarli in Python. Il nostro obiettivo è creare un codice in grado di identificare modelli specifici e potenzialmente rilevare inversioni di tendenza dei prezzi. Inoltre, eseguiremo il backtesting su una strategia che utilizza i segnali Candlestick, impiegando un semplice approccio statistico per valutare le possibilità di sviluppare un bot automatizzato vincente basato sulle previsioni Candlestick. Se sei incuriosito da questo contenuto, puoi scaricare il file del programma dal link fornito nella descrizione sottostante. Ci auguriamo che questa sessione informativa ti piaccia.
Prima di procedere, chiariamo che questo video presuppone che tu abbia già una certa conoscenza dei modelli Candlestick. Non entreremo nei dettagli spiegando ogni modello poiché ci concentreremo sulle forme più conosciute. Si prega di notare che questo elenco non è esaustivo, poiché ci sono molti altri modelli là fuori. Per ora, ci atteniamo alle basi. Potresti già conoscere il Doji, che rappresenta un mercato indeciso. Un altro motivo importante è la Stella Cadente, caratterizzata da una lunga coda sopra il corpo del Candeliere. Può presentarsi in due forme, ma ciò che più conta è la presenza della lunga coda. Quando incontri una stella cadente durante un trend rialzista, potrebbe indicare un'inversione di tendenza, suggerendo uno spostamento verso un trend ribassista. Allo stesso modo, abbiamo il modello Hammer, che è simile alla Shooting Star ma invertito. Indica un punto di rifiuto durante un trend rialzista, con una lunga coda inferiore. Questo modello suggerisce che la tendenza al rialzo si sta avvicinando alla fine e potrebbe seguire un ritracciamento della tendenza al ribasso.
Andando avanti, discutiamo del pattern Bullish Engulfing. Ciò si verifica durante una tendenza al ribasso, in cui l'ultima candela rossa è completamente coperta da una candela rialzista più grande. Questo modello di inversione segnala la fine del trend ribassista e l'inizio di un trend rialzista. Al contrario, abbiamo il pattern Bearish Engulfing, che è l'opposto del pattern Bullish Engulfing. Si verifica durante una tendenza al rialzo, in cui una candela al rialzo è seguita da una candela più grande, che copre quella precedente. Questo indica la fine del trend rialzista e l'inizio di un trend ribassista. Tieni presente che ci sono molti altri modelli di candelabri che non tratteremo in dettaglio qui, come i tre corvi, tra gli altri. Tuttavia, in questo video, ci concentreremo in particolare sui modelli Shooting Star e Hammer, in particolare quando una tendenza al ribasso si inverte in una tendenza al rialzo.
I modelli Shooting Star e Hammer sono i miei preferiti a causa della loro chiara indicazione della reazione del mercato a un trend rialzista. È evidente che i venditori sono entrati nel mercato, rifiutando uno specifico livello di prezzo. Questo è il motivo per cui tendo a fidarmi di questi schemi più di altri. Naturalmente, le preferenze individuali possono variare, a seconda di come si utilizzano e si combinano questi modelli con altri indicatori o strategie. Ai fini di questo video, consideriamo la stella cadente come un esempio convincente di rifiuto del prezzo e della forte reazione dei venditori, che conferisce a questo candelabro la sua forma distinta. Ci concentreremo sulla codifica di questo pattern in Python e sull'insegnamento al nostro bot di riconoscere tali pattern. Mentre puoi estendere i concetti che discuteremo ad altri modelli che ti interessano, il nostro obiettivo principale sarà la stella cadente e il martello.
È importante notare che fare affidamento esclusivamente sui modelli Candlestick non è sufficiente per generare segnali di acquisto o vendita accurati. Questi modelli dovrebbero essere combinati con i tuoi indicatori preferiti. Nel nostro caso, li combineremo con il Relative Strength Index (RSI). Puoi scegliere di incorporare diversi indicatori tecnici o anche analisi fondamentali insieme ai modelli Candlestick. L'uso delle candele da solo non è completo.
Per valutare il tasso di successo del nostro approccio di previsione, dobbiamo combinarlo con l'RSI in combinazione con il modello Candlestick per aggiungere un'ulteriore conferma al segnale. Un valore RSI più alto indica una pressione di acquisto più forte, che si allinea con la potenziale inversione di tendenza suggerita dal modello a stella cadente.
Se tutte le condizioni sono soddisfatte, possiamo generare un segnale di acquisto. Assegniamo un valore di 1 alla colonna del segnale per la riga corrispondente nel frame di dati. In caso contrario, assegniamo un valore pari a 0, che indica l'assenza di segnale. Questo processo viene ripetuto per ogni riga nel frame di dati, scansionando efficacemente l'intero set di dati per identificare potenziali segnali di acquisto.
Successivamente, si passa alla definizione dei livelli di stop loss e take profit per i segnali di acquisto identificati. Calcoliamo il valore di stop loss sottraendo l'Average True Range (ATR) dal prezzo di acquisto. L'ATR fornisce una misura della volatilità e aiuta a determinare una distanza appropriata per lo stop loss. Un ATR più ampio indica un mercato più volatile, che richiede uno stop loss più ampio, mentre un ATR più piccolo suggerisce un mercato meno volatile, consentendo uno stop loss più stretto.
Per il livello di take profit, moltiplichiamo il rapporto take profit-stop loss (che impostiamo a 2) per l'ATR e lo aggiungiamo al prezzo di acquisto. Ciò garantisce che il livello di take profit sia due volte più lontano dal prezzo di acquisto rispetto al livello di stop loss. Il livello di take profit rappresenta il potenziale obiettivo di profitto per il commercio.
Ora che abbiamo i segnali di acquisto e i corrispondenti livelli di stop loss e take profit, possiamo procedere con il backtesting della strategia. Iteriamo attraverso ogni riga nel frame di dati e simuliamo gli scambi in base ai segnali generati.
Se il prezzo raggiunge prima il livello di stop loss, lo consideriamo un trade in perdita. Al contrario, se il prezzo raggiunge prima il livello di take profit, lo consideriamo un trade vincente. Teniamo traccia del numero di operazioni vincenti e perdenti.
Per valutare le prestazioni della strategia, calcoliamo il tasso di vincita come percentuale di operazioni vincenti rispetto al totale delle operazioni. In questo caso, poiché impostiamo il rapporto take profit-stop loss su 2, ogni operazione vincente compensa due operazioni perdenti. Pertanto, per avere un sistema vincente, dobbiamo avere ragione almeno il 34% delle volte.
È importante notare che questa valutazione non tiene conto dei costi di negoziazione, come commissioni e valori di swap notturni. Inoltre, questo è un esempio semplificato e nel trading nel mondo reale è essenziale considerare altri fattori, come le condizioni di mercato, la gestione del rischio e l'analisi generale del mercato.
Combinando modelli Candlestick, RSI e un approccio sistematico alla gestione degli scambi, miriamo a sviluppare una strategia di trading che possa potenzialmente generare operazioni redditizie. Tuttavia, è fondamentale testare e convalidare a fondo la strategia utilizzando dati storici e considerare l'analisi di mercato in corso per adattarsi alle mutevoli condizioni del mercato.
In conclusione, questo video tutorial fornisce un'introduzione alla programmazione dei modelli Candlestick in Python, dimostra come riconoscere modelli specifici e delinea un approccio di backtesting per valutare le prestazioni di una strategia basata su questi modelli. È un'opportunità per esplorare il potenziale dei modelli Candlestick come strumento per prevedere le inversioni di tendenza dei prezzi e sviluppare bot di trading automatizzati.
Evita errori comuni nel trading algoritmico e nell'apprendimento automatico
Evita errori comuni nel trading algoritmico e nell'apprendimento automatico
Ti sei mai chiesto come sarebbe avere un bot di trading vincente che esegue operazioni redditizie per tuo conto mentre dormi o ti godi il tempo libero? Forse hai passato ore, mesi o addirittura anni a cercare di decifrare il codice e trovare quel programma sfuggente che potrebbe rivoluzionare il tuo stile di vita.
Quando si parla di machine learning, molte persone credono che abbia il potere di fare miracoli in vari campi come il marketing e le vendite. Tuttavia, ci sono due aree in cui l'apprendimento automatico è ancora in difficoltà: la previsione dei dati meteorologici e la previsione del mercato dei prezzi. La natura altamente casuale dei numeri in questi campi rende difficile prevedere con precisione i prezzi utilizzando solo il machine learning.
Ma ecco il trucco: è possibile prevedere i prezzi utilizzando l'apprendimento automatico, ma solo se abbinato a un'appropriata strategia di trading. Ciò significa che il tipo di previsione che fai deve essere in linea con la strategia di trading che utilizzi.
Ora, analizziamo alcuni errori comuni che possono ostacolare il successo del tuo modello di trading e cosa puoi fare per evitarli.
Errore n. 1: inserire i valori dei prezzi in un modello di apprendimento automatico come regressore. Cercare di prevedere il prossimo valore di mercato inserendo direttamente i valori dei prezzi in un regressore di apprendimento automatico è un errore comune per i principianti. Sebbene questo approccio possa funzionare bene per valori correlati come la previsione dei prezzi delle case in base alla superficie, non si applica ai mercati azionari o valutari. Questi mercati non mostrano una chiara correlazione con la sola variabile tempo, rendendo inefficace la regressione diretta.
Errore n. 2: utilizzo di valori assoluti come input del modello. L'utilizzo di prezzi grezzi o valori di indicatori tecnici come input è un'altra trappola. Fornire semplicemente prezzi aperti, chiusi, alti e bassi, insieme a medie mobili e altri indicatori, non garantisce previsioni accurate dei prezzi futuri. I nostri cervelli elaborano le informazioni in modo diverso, concentrandosi sull'immagine complessiva e sulle pendenze dei movimenti dei prezzi piuttosto che sui singoli valori. Allo stesso modo, il tuo modello deve considerare le tendenze e i modelli generali piuttosto che i singoli punti dati.
Errore n. 3: campionamento dei dati utilizzando la suddivisione casuale dei dati del test del treno. Sebbene la suddivisione casuale del test del treno sia una pratica comune nell'apprendimento automatico, può essere problematica quando si lavora con l'analisi delle serie temporali, specialmente nei mercati dei prezzi. La suddivisione casuale dei dati per l'addestramento e il test può portare a una situazione in cui il set di test è molto simile al set di addestramento. Questa somiglianza può far apparire il modello accurato durante il backtest ma non funzionare bene con i nuovi dati in tempo reale.
Errore n. 4: affidarsi esclusivamente all'analisi tecnica. Sebbene gli indicatori tecnici svolgano un ruolo significativo nei modelli di apprendimento automatico, fare affidamento solo su di essi non è sufficiente per il successo a lungo termine. È fondamentale considerare i fattori esterni, come i calendari economici e gli eventi principali, che possono avere un impatto significativo sul comportamento del mercato. Ignorare questi fattori può portare a scarsi risultati e screditare un modello altrimenti valido.
Errore n. 5: non considerare una strategia che si adatti alla precisione del modello. La precisione del modello da sola non ne determina la redditività. La combinazione dell'accuratezza del modello con una strategia di trading ottimizzata, come un rapporto favorevole tra take-profit e stop-loss, può trasformare un modello apparentemente perdente in uno redditizio. Una precisione superiore al 33% può essere sufficiente se abbinata alla giusta strategia.
Errore n. 6: saltare una strategia di ingresso e affidarsi esclusivamente alle previsioni del modello. Anche se il tuo modello fornisce previsioni accurate, sapere quando entrare nel mercato ed eseguire operazioni è fondamentale. La definizione di una strategia di ingresso nel mercato che integri le previsioni del modello è essenziale per massimizzare i profitti. Una corretta previsione del trend non è sufficiente se entri nel mercato nel momento sbagliato e vieni fermato prima di raggiungere il tuo obiettivo.
Errore n. 7: non considerare le commissioni e le commissioni di negoziazione. Ignorare commissioni e commissioni può avere un impatto significativo sulla redditività della tua strategia di trading. Sebbene una strategia vincente possa avere un leggero vantaggio, le commissioni di negoziazione possono erodere tali guadagni. È importante considerare le commissioni durante la progettazione della strategia, ad esempio la chiusura delle negoziazioni nello stesso giorno per evitare commissioni notturne o del fine settimana.
Successivamente, è fondamentale eseguire il backtest del modello per un periodo prolungato. Testare il tuo modello in diverse condizioni di mercato è essenziale per garantirne l'efficacia. Non fare affidamento esclusivamente sulla performance a breve termine, in quanto potrebbe non riflettere la fattibilità a lungo termine del modello. Cerca di eseguire il backtest del tuo modello per un minimo di sei mesi e valutare se produce costantemente guadagni positivi.
Infine, evita di diventare impaziente e di interferire con gli scambi. Un modello ad alta precisione tende ad attendere segnali forti prima di eseguire operazioni. Sebbene ciò possa farti perdere alcune opportunità, è importante non interferire con le decisioni del modello. Evita di aprire nuove negoziazioni o chiudere quelle esistenti in base all'impazienza. A volte, avere zero scambi è meglio che fare uno scambio perdente.
In conclusione, queste informazioni dovrebbero aiutarti a migliorare la tua esperienza di trading. Ricorda che se il tuo algoritmo non è ancora pronto per il mercato, è meglio non concentrarsi troppo su di esso. Prenditi una pausa, ordina una bella fetta di pizza calda e ricordati di divertirti.
Come calcolare gli indicatori tecnici per il trading utilizzando i panda
Come calcolare gli indicatori tecnici per il trading utilizzando i panda
Ciao a tutti e bentornati in questo video. Oggi ci addentreremo nell'analisi dei prezzi del mercato forex utilizzando Python ed esploreremo se le statistiche possono rivelare eventuali correlazioni tra gli indicatori tecnici e la futura direzione dei prezzi. Non è necessario essere un esperto di trading o programmazione per seguirlo, ma sarebbe utile una certa familiarità con gli indicatori tecnici di base come le medie mobili e l'indicatore di forza relativa (RSI). Se sei qui per una rapida introduzione alle applicazioni di machine learning nel trading, sei anche nel posto giusto perché manterremo le cose semplici.
In questo video tratteremo i seguenti argomenti:
Download dei dati di cambio valuta: visiteremo il sito Web cascope.com e selezioneremo il feed di dati storici, in particolare per la coppia di valute USD/CHF (dollaro USA contro franco svizzero). Sceglieremo il periodo di tempo della candela oraria per i nostri dati.
Caricamento dei dati in Python utilizzando i panda: useremo la funzione read_csv della libreria dei panda per caricare il file scaricato in un DataFrame dei panda. Controlleremo anche se i dati sono stati caricati correttamente controllando le ultime cinque righe del DataFrame.
Pulizia dei dati e analisi iniziale: la comprensione dei dati è fondamentale, quindi puliremo i dati rimuovendo le righe con volume zero e controllando i valori mancanti. Inoltre, eseguiremo una breve analisi statistica per identificare modelli o correlazioni all'interno dei dati.
Aggiunta di indicatori tecnici: importeremo le librerie necessarie, tra cui numpy e pandas_ta (analisi tecnica dei panda), che fornisce vari indicatori di analisi tecnica. Aggiungeremo diversi indicatori al nostro DataFrame, come l'average true range (ATR), l'RSI, le medie mobili e calcoleremo le loro pendenze.
Definizione dell'obiettivo: per fare previsioni basate su indicatori tecnici, dobbiamo definire il nostro obiettivo. Invece di prevedere il prezzo medio futuro, che può essere difficile, classificheremo le tendenze in tre categorie: rialzista, ribassista e nessuna tendenza chiara.
Tracciare gli istogrammi: visualizzeremo le distribuzioni di varie funzionalità utilizzando gli istogrammi. Ciò include volume, ATR, RSI, prezzi medi, medie mobili, pendenze e categorie target. Gli istogrammi forniranno una rapida panoramica dei dati e aiuteranno a identificare eventuali valori anomali.
Analizzare l'RSI: ci concentreremo sull'RSI come indicatore di tendenza e creeremo DataFrame separati per le tre categorie target: tendenze al rialzo, al ribasso e poco chiare. Tracceremo istogrammi per i valori RSI in ogni categoria per vedere se ci sono differenze distinguibili.
Tuttavia, tieni presente che fare affidamento esclusivamente sull'RSI potrebbe non essere sufficiente per prevedere con precisione l'andamento dei prezzi. Si consiglia di esplorare altri indicatori tecnici o combinazioni di indicatori per ottenere un vantaggio nella previsione delle tendenze dei prezzi.
Questo conclude il contenuto di questo video. Spero che troverai le informazioni utili. Se hai domande specifiche o hai bisogno di ulteriori chiarimenti, non esitare a chiedere nella sezione commenti. Buona programmazione!