Diario di un bot trading – algoritmo di trailing stop –


In questo diario, ho deciso di scrivere in maniera alquanto frammentata una serie di  articoli sul bot di trading che sto sviluppando da piu di due anni. Il motivo principale che mi a spinto a pubblicare questi “appunti” è quello di poter condividere il mio lavoro al fine di trovare alcune soluzioni ingegneristiche interessanti in grado di risolvere i molti problemi che si incontrano durante la progettazione e lo sviluppo. In questo articolo, parlerò del problema dell’implementazione di un algoritmo di trailing stop all’interno del bot e la soluzione che ho trovato.

Come funziona il Trailing Stop?

Prima di iniziare con l’algoritmo vero e proprio e con i test di verifica dell’algoritmo in ambiente simulato, vorrei spiegare a grandi linee come funziona il “meccanismo” di trailing stop. Come detto, questi sono degli appunti di progetto e quindi alcuni approfondimenti sono demandati ai numerosi siti tecnico-finanziari che si occupano di tale tematiche.

Il concetto di trailing stop è abbastanza semplice: una volta acquistato un asset (oro, argento, altcoins…) ad un determinato prezzo di una currency (che possono essere dollari o Bitcoin o altro ancora), la vendita non viene eseguita ad un prezzo determinato manualmente dall’utente, ma viene espletata ad un prezzo calcolato dall’algoritmo di trailing stop. Quindi, non c’è un prezzo limite superiore di vendita, ma se l’algoritmo funziona bene, la vendita viene eseguita al prezzo migliore di vendita determinato dallo stop dell’algoritmo di trailing in base all’insorgere di alcune condizioni.

Algoritmo di Trailing Stop: la mia, e la prima soluzione!

Sulla base di quanto detto precedentemente ho sviluppato l’algoritmo e i seguenti punti ne spiegano il funzionamento:

  • Il trailing stop si verifica soltanto nelle condizioni di vendita.
  • Il trailling stop si aziona quando il ricavo è maggiore del costo. In poche parole, tale meccanismo entra in gioco soltanto nel momento in cui il prezzo dell’asset (ciò che volete vendere) genera un profitto.
  • Consideriamo il prezzo attuale PN e i prezzi precedenti PN-1, PN-2 e PN-n dove il PN-1 rappresenta il prezzo precedente nel periodo scelto (questo può essere a seconda un minuto, cinque minuti, 1 ora e via dicendo). Ovviamente il PN-2 rappresenta il prezzo relativo a 2 periodi passati e così il PN-n a il prezzo corrispondente a n periodi passati.
  • Nel momento in cui PN-1, o PN-2 o PN-3 o PN-n è maggiore a PN risulta allora vendi. Questo fa in modo che in corrispondenza di un trend discendente il trailing stop non appena si verifica tale condizione riesce a vendere con profitto.
  • A ciò si aggiunge, quella che io ho chiamato variabile di rischio che aumenta o diminuisce il rischio di non eseguire la vendita determinando condizioni di profitto differenti. E’ una variabile statica e non dinamica legata a qualche condizione di mercato esistente ma inserita manualmente dall’utente legata all’asset.
  • Una volta trovato il valore di trailing stop (di vendita) bisogna verificare se in tale condizione vi è un profitto. Solo in tale condizione si esegue la vendita vera e propria.

L’ambiente di test.

A questo punto, che probabilmente è tutto chiaro, passiamo ai tests. Per l’ambiente di test ho utilizzato un vecchio notebook Vaio con sistema operativo Debian GNU/Linux. Il codice è stato sviluppato in Python e per i grafici ho utilizzato la libreria matplotlib. I valori di test sono desunti da alcuni asset (Altcoin) con il prezzo espresso in BTC (Bitcoin). Sono valori reali di mercato presenti in ambiente simulato e per tale motivo non originano degli ordini veri e propri nell’Exchange usato come campione.

La fase dei tests.

Nei tests che seguono sarà modificata la variabile di rischio con l’obiettivo di verificarne l’operatività.
Le domande sono:
“Cosa succede modificando il valore della variabile di rischio?” ,
“Tale algoritmo funziona?”.

Nel primo test la variabile di rischio è stata impostata a 1. Ecco il risultato nell’immagine seguente.

Andamento Trailing stop con rischio 1

Figura 1.
(Andamento algoritmo di trailing stop con variabile rischio uguale a 1.0)

Nella figura 1, l’andamento del prezzo corrisponde alla linea di colore blu, e l’andamento del trailing stop alla linea di colore rosso. Come si vede, con la variabile di rischio impostata a 1 non c’è nessun momento in cui le due linee si intersecano dando origine ad una situazione di stallo. In poche parole non si genera un segnale di  vendita e dunque, in tali condizioni non vi è alcun profitto.

Trailing stop con rischio uguale a 1

Figura 2.
(Andamento dell’algoritmo di trailing stop con variabile di rischio uguale a 1.0).

Come si vede, l’algoritmo di trailing stop anche in questa situazione,  non ha generato alcun profitto. Probabilmente il valore 1.0 è troppo elevato e quindi, e come diretta conseguenza devo impostare un valore della variabile di rischio inferiore.

Pagina successiva

Rating: 1.0/5. From 1 vote.
Please wait...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

17 − dodici =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.