Come trasformo una strategia discrezionale in automatica?

Sono ormai alcuni anni che, personalmente e insieme ai miei clienti, rendo automatiche le loro strategie discrezionali.

Mi sono accorto che spesso alcuni potenziali partner e clienti ci rimangono male perché io (in modo abbastanza spigoloso) dico perentoriamente che le loro strategie non si possono codificare.

Una cosa che mi scoccia è quando passo per “antipatico” solo perché ho il coraggio di dire subito che una strategia non sarà mai perfettamente identica a quello che fanno loro dal vivo, e che la scrittura di codice implica una sorta di mediazione (che si può migliorare con i test) tra il “sesto senso” del trader e il mondo dell’automazione.

Nauseato dalla quantità di “professionisti” e “programmatori” che, pur di portare a casa le 200 € in più si spendono in promesse fantasmagoriche giocando sul fatto che spesso il cliente non sa nemmeno cosa sia un ciclo for (e ci mancherebbe, non deve mica saperlo lui!), ho deciso di scrivere una breve guida di auto-analisi, per evitare di avviare lavori già morti in partenza.

Il lavoro “pre” strategia: il vantaggio statistico

Quando un cliente o un partner si avvicina per richiedere lo sviluppo di un expert, do per scontato che la parte di “ricerca” la abbia già fatta.

Quando scriviamo un expert, stiamo diventando, insieme, una sorta di dipartimento “ricerca e sviluppo”. Ora, io lo sviluppo lo so fare bene, per carità, ma la parte di ricerca devi necessariamente prenderla in carico. Altrimenti butti tempo e soldi. E la cosa non mi piace.

Uno degli errori che vedo fare è comprare un corso, prendere la strategia più promettente (o che ci è stata presentata meglio) e commissionare lo sviluppo dell’expert.
Poi si scopre, backtest alla mano, che la strategia è un’ottima distruttrice di risparmio, e si finisce per non avere idea di come usare un eseguibile letteralmente inutile se non dannoso.

Un modo di evitare questo è di cercare di scrivere ( il più ordinatamente possibile e secondo i consigli scritti in seguito) le condizioni di ingresso, uscita e trade management, e quindi andare a backtestare a mano con un po’ di pazienza.

Farsi magari 50 trades su H4- H1 – D1 o 100 trades sui timeframe inferiori, permette di investire mezzo pomeriggio e risparmiare centinaia di € in sviluppi inutili.

A me non piace quando i miei clienti non si trovano bene. Non riesco proprio a convivere con la cosa. Mio difetto. Però tu studia il tuo trading system prima di farlo codificare. Non è un passatempo, è a tutti gli effetti un gestore di denaro che tu hai faticosamente guadagnato. Non trattarlo con leggerezza.

Le 2 cose che saranno SEMPRE codificabili

Esistono però alcune cose che, ti assicuro, potranno sempre essere codificabili: Prezzi e Tempi

Prezzi

I prezzi sono sempre disponibili, nella fattispecie gli OHLC della serie storica e il prezzo live della candela in corso. Ne consegue che tutto ciò che è derivato da un prezzo possa essere codificato. Alcuni esempi:

  • il range open-close
  • il massimo giornaliero / settimanale / mensile
  • la percentuale rappresentata dal corpo candela rispetto alle shadows
  • il target pari ad un movimento di +0.18% dall’open di giornata
  • il range rappresentato dal massimo delle ultime 20 candele e il minimo delle ultime 10 candele

Vedi che i precedenti esempi sono, per quanto alcuni siano più elaborati, molto facili da capire perché si basano su prezzi assoluti e rapporti che possono facilmente essere calcolati.

Diversamente, definire “massimi locali” non significa nulla, perché va codificato un algoritmo che possa discernere se un insieme di dati sia o meno un “massimo locale”. Questa parte non è impossibile, ma necessariamente deve ridurre tutto ciò che non è un “prezzo o un tempo” in un “prezzo o un tempo”.

Tempi

È possibile codificare tutto ciò che riguarda lo scorrere del tempo, o la serie storica. Abbiamo i dati direttamente in MT, quindi possiamo codificare:

  • periodi di tempo
  • periodi orari
  • timespan
  • date precise
  • aggiungere una scadenza temporale ad una condizione

Interi e percentuali

Tutto ciò che è un intero o un rapporto ricade in quegli elementi non derivati dall’intuizione del trader ma che sono dei dati (magari variabili o condizionali) discreti possono essere tranquillamente inseriti in una strategia.

Per interi e percentuali possono ricadere anche tutti i parametri “monetari”, ad esempio i max loss % sull’equity, ecc ecc.

Indicatori

Non vado nel dettaglio perché in realtà qualsiasi indicatore è il frutto di calcoli combinati su prezzi e su tempi / periodi, quindi ricade nelle prime due casistiche senza dubbio.

Alcuni errori tipici

Faccio un paio di esempi di cose impossibili da codificare:

  1. “Una volta che il prezzo arriva in questa zona, attendo una conferma”

Questo modo di definire una condizione nel nostro trading system è impreciso, perché dobbiamo, come detto prima, far ricadere una specifica astrazione in una serie di istruzioni che siano leggibili dal nostro codice.

Potremmo riformularla così:

  • una volta che il prezzo chiude una candela all’interno della fascia compresa tra il massimo dei close delle 20 candele precedenti e il massimo degli high delle 10 candele precedenti, attendo che si chiuda una engulfing short all’interno della zona, con chiusura candela all’esterno della zona stessa, per entrare short.

Vedi che ora le istruzioni non hanno varie interpretazioni. Abbiamo definito tutto come Prezzo o Tempo.

  1. “Se l’expert guadagna 500€, aspetta un po’ e poi inizia a scaricare la posizione”.

In questo caso, che per un essere umano possono essere molto chiare e addirittura interessanti, per un robot di trading non valgono nulla.

Dovremmo riformulare la richiesta in questo modo:

  • “Se l’expert è in gain giornaliero di 500€, attendo 90 secondi e inizio a chiudere una percentuale sempre più alta dell’ordine, partendo dal 10%, poi il 20% poi il 30% infine il 40% della posizione residua.
    Al raggiungimento del minimo lottaggio possibile, oppure di una perdita di 100€, chiude la rimanenza.”

Ora nessuna parte dell’istruzione è interpretabile.

Conclusioni

Spero di esserti d’aiuto per la schematizzazione delle tue strategie per avviarti a programmarle (o a farle programmare)!

E come sempre, se hai bisogno di noi, puoi raggiungerci sui canali Telegram oppure richiedendo un preventivo schiacciando il bottone qui sotto.

Lascia una risposta

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