Python nel trading algoritmico: quando serve davvero
Python nel trading algoritmico suona per molti principianti come un ostacolo alto: chi vuole usare StrategyQuant X per costruire strategie automatizzate si chiede presto se per farlo debba saper programmare. La risposta breve è no, perché il nucleo del software è pensato per costruire strategie senza codice proprio. Ciononostante ci sono diversi punti nel programma in cui la programmazione, anche con Python, può essere agganciata. Questo articolo mostra cosa fa il percorso no-code, dove inizia il livello di programmazione opzionale e come un utente usa Python nella pratica.
Python nel trading algoritmico: prima il nucleo no-code
Secondo un post del blog del produttore, con StrategyQuant si possono costruire strategie di trading senza scrivere una sola riga di codice. Il software compone regole, indicatori e componenti che selezioni e combini tramite l'interfaccia, invece di programmarli.
Questa è una descrizione tratta dal marketing del produttore, non una specifica tecnica verificata in modo indipendente. Non dice nulla sul fatto che una strategia così costruita sia alla fine positiva, e nemmeno sul fatto che le strategie programmate ottengano risultati sistematicamente migliori o peggiori di quelle costruite no-code. Per i principianti questo significa soprattutto: puoi iniziare a costruire le tue strategie senza prima imparare un linguaggio di programmazione.
Il livello di programmazione: cosa offre in più il Code Editor
Oltre al nucleo no-code, il produttore documenta tre punti in cui si può agganciare la programmazione propria: il Code Editor, l'interfaccia Program e l'estensione Custom Analysis.

Il Code Editor raggruppa diversi punti di ingresso. Tra questi ci sono un'API pubblica, il lavoro con i Result Groups, l'aggiunta di indicatori o segnali propri, colonne o filtri propri del Databank, il logging nonché l'integrazione di librerie JAR proprie e l'importazione o esportazione di indicatori e snippet propri.

Come si chiamano esattamente le singole voci di menu può variare tra le versioni del programma. Importante per l'inquadramento: il Code Editor è un'estensione, non un prerequisito. Non tutti i punti di accesso menzionati sono immediatamente accessibili senza alcuna esperienza di programmazione, alcuni presuppongono conoscenze di base di programmazione.
Esempi documentati di sessioni di programmazione mostrano a cosa può servire questa via: ottimizzazioni e backtest si possono avviare tramite codice, così come backtest con test di robustezza aggiuntivi. Anche i parametri della strategia e la configurazione di un'attività si possono modificare tramite codice, e i dati storici si possono caricare nei propri snippet. Sono esempi tratti da flussi di lavoro documentati, non passaggi obbligatori per ogni utente e nemmeno un elenco completo di tutte le possibili sessioni di programmazione.
L'interfaccia Program: i moduli si richiamano a vicenda
Per i propri snippet o plugin il produttore documenta inoltre un'interfaccia Program. Tramite essa un proprio modulo può richiamare funzionalità di altri plugin o della libreria integrata del programma, di solito recuperando prima l'interfaccia adatta e poi chiamando un metodo con i parametri necessari.
Questa interfaccia fa parte dell'API interna per lo sviluppo proprio ed è rivolta a chi programma già. Non è una funzione per principianti che sarebbe utilizzabile senza esperienza di programmazione.
Custom Analysis: agganciare calcoli propri e script esterni
Un'ulteriore estensione documentata si chiama Custom Analysis. Permette di applicare calcoli o filtri propri a strategie generate, retestate o ottimizzate, e anche a interi databank. Ne fa parte la possibilità di richiamare programmi o script esterni, per esempio Python.

Custom Analysis è un punto di estensione del modulo corrispondente. Così è possibile un'interazione con Python, ma questo collegamento non fornisce automaticamente strategie migliori. Se e come la usi resta una tua decisione.
Un esempio pratico: per cosa un utente usa davvero Python
Come questo possa apparire nella pratica è descritto da un autore in un suo contributo. Egli usa Python accanto a StrategyQuant per diversi compiti: per l'analisi di database di risultati, per script propri all'interno di un flusso di lavoro analitico, per l'utilizzo della riga di comando di SQX, per la decorrelazione di strategie, per l'impiego del Machine Learning e per estrarre regole da strategie esistenti e costruirne nuovi moduli propri.
Questo è il flusso di lavoro di una singola persona, non un elenco ufficiale di funzioni del produttore e non un percorso che ogni utente deve replicare.
Una serie di video come introduzione
Chi vuole approfondire le basi trova un punto di partenza in un post del blog del produttore: lì viene descritto un corso video continuativo, messo a disposizione come playlist, che tratta la costruzione di strategie per i mercati Forex, Futures e azionari.
Anche questa è una descrizione tratta da un post del blog. Contenuto e disponibilità della playlist possono cambiare nel tempo. Un corso del genere non sostituisce una verifica autonoma dei risultati e non è una promessa che dopo di esso farai automaticamente trading con successo.
Cosa non mostra questo confronto
Questo articolo non confronta se una strategia estesa con Python alla fine abbia più successo di una nata esclusivamente con il costruttore no-code. Qui non si tratta nemmeno di quale sia la strada migliore. Si tratta di quali strumenti hai a disposizione, e la decisione a favore o contro la programmazione spetta a te, non al software.
Con o senza codice proprio: ogni risultato di backtest o di ottimizzazione che ne deriva descrive esclusivamente dati passati. Non permette alcuna affermazione su come si comporterà una strategia in futuro.
Questo articolo ha scopo formativo e non è una consulenza sugli investimenti. I risultati passati, compresi quelli dei backtest, non garantiscono risultati futuri. Fare trading su strumenti finanziari comporta rischi e puoi perdere denaro.
Questo articolo ha scopo educativo e non è una consulenza finanziaria. I risultati passati non garantiscono risultati futuri.
Tu come fai? Raccontalo nella community. Gratis, nella tua lingua.
Iscriviti gratis