Vai al contenuto

Python Academy: Intervista a Giovanni Trombetta

Buongiorno Giovanni. Iniziamo dal principio: cos’è Python?

Python è un linguaggio di programmazione, semplice e in quanto tale alla portata di tutti, multipiattaforma, quindi lo stesso codice funziona in diversi ambienti come Windows, MacOS o Linux.

Cosa si può fare con Python che non si possa fare con Java o C#, tanto per citare due linguaggi molto di moda?

In qualità di ingegnere elettronico ho approcciato molti linguaggi di programmazione, sia durante gli anni della mia formazione universitaria che nel lavoro di tutti i giorni, dapprima in azienda e oggi nella direzione del team Gandalf Project. Come molti figli degli anni 70 dello scorso secolo, ho iniziato con il vecchio Pascal, con il Basic e con il C per poi passare al C++, al Java e al C#. Quello che fondamentalmente è cambiato, in tutti questi anni, è stato il passaggio dal paradigma funzionale a quello ad oggetti, per rimettere ora tutto in discussione con nuovi concept “ibridi”. In questo cammino ho avuto da subito bisogno di un linguaggio dalla sintassi lineare e poco ridondante e soprattutto multipiattaforma, per non dover adattare ogni volta il codice da una macchina ad un’altra e guadagnare enormemente in portabilità. Così sono passato a Ruby e alla sua declinazione Ruby On Rails per la scrittura di applicazioni web. Il beneficio è stato enorme in termini di produttività. Quando parlo di produttività desidero riferirmi a qualcosa di molto concreto: il tempo intercorso tra quando si ha un’idea e quando il codice che la realizza è pronto. Ho così superato la complessità del C o il disorientamento che può portare l’utilizzo di Java.
Tuttavia anche Ruby ha dei limiti: la sintassi è meno chiara che in Python, le librerie a disposizione sono un pò datate e numericamente inferiori e, cosa ancora più importante, vive di una community molto meno diffusa e prolifica. Così, dapprima con un pò di scetticismo, consigliato dai miei più brillanti collaboratori, ho provato a scrivere qualcosa in Python e sono rimasto letteralmente folgorato dall’eleganza del linguaggio e dalla sua incomparabile semplicità. Oggi consiglio Python a chiunque voglia realizzare un’idea in poco tempo, perché il mezzo, ossia il linguaggio di implementazione, non deve in alcun modo rappresentare un limite.

E’ per questo che Python viene richiesto come prerequisito anche per molte posizioni lavorative, non solo in finanza?

Esattamente. Un laureato in economia, in scienze politiche o un semplice diplomato, non ha solitamente il bagaglio tecnico per poter approcciare linguaggi di basso livello e sarebbe errato, a mio avviso, costringerlo a perdere molto tempo per apprenderli (a meno che non lo desideri per motivi di cultura personale). Diventa così fondamentale avere uno strumento di lavoro di alto valore e a basso costo in termini di formazione, che elimini qualunque barriera di ingresso. Python oggi è la risposta e questo linguaggio è diventato parte integrante del programma di molti Master Finanziari in giro per il mondo.

E a livello di popolarità come è messo?

Da questo punto di vista siamo forse all’apice della popolarità di Python, guardando diversi indicatori. Sia le curve di utilizzo tra professionisti che quelle relative alle proposte di lavoro vedono Python tra i primi 5 linguaggi in assoluto e questa classifica si ribalta totalmente a favore di Python se consideriamo il solo mondo Finance e proiettiamo questi numeri anche nel prossimo futuro in base al rateo di crescita. Anche le suite come MatLab o R, con cui siamo cresciuti tutti dai tempi dell’università, non danno oggi un valore aggiunto rispetto a quello che è possibile produrre con Python (tra l’altro a costo zero, dato che MatLab, al contrario di R, ad esempio, ha un costo).

Abbiamo compreso che gli addetti ai lavori sono entusiasti di Python, ma come si coniuga questa scelta col mondo del Trading e dell’Investing? Non esistono già piattaforme stand alone che permettono ormai di fare quasi tutto?

Permettimi di dire che la popolarità di Python cresce ancora di più se analizziamo i dati dei “non addetti ai lavori”. Negli Stati Uniti, ma anche in Europa ed in Asia, chi impara a programmare, in qualsiasi ambito, oggi, nella stragrande maggioranza dei casi, lo fa iniziando da Python. Didatticamente parlando rappresenta un’incredibile risorsa che abbatte la maggior parte delle difficoltà iniziali che normalmente si trovano ad affrontare coloro che vogliano scrivere del codice da zero. 
Se poi analizziamo i meta linguaggi presenti oggi nelle principali piattaforme di sviluppo, operative e non, troviamo un microcosmo di linguaggi intermedi che, in complessità decrescente vanno dal simil C# dell’MQL delle varie MetaTrader, al più intuitivo AFL di Amibroker, fino ad arrivare allo stato dell’arte in termini di funzionalità e semplicità rappresentato dal connubio EasyLanguage-Powerlanguage, rispettivamente di Tradestation-Multicharts. Python vince la gara della semplicità d’uso e rapidità di apprendimento su MQL ed AFL, ma anche rispetto ad EL-PL posso affermare, senza timore di essere smentito, come la modularità e la ricchezza del codice Python abbia innegabili vantaggi. Abbiamo studenti che dopo aver appreso Python hanno iniziato a scrivere codice in maniera più consapevole e leggibile anche in EL-PL, anche se la stragrande maggioranza di loro ha abbandonato definitivamente queste “modalità di compromesso”. Python sta ai meta-codici come l’inglese sta alla convenzione della segnaletica stradale. E’ vero che ogni cartello può sintetizzare agilmente anche concetti complessi che altrimenti avrebbero bisogno di molte parole per essere completamente espressi, ma dominando i mattoni elementari delle parole abbiamo la possibilità di comporre concetti a piacimento, ricreando, volendo, anche le stesse rappresentazioni.
Detto questo, oggi, Python può essere utilizzato in modalità “spinta” o “intermedia”: alcune piattaforme, come Tradestation e Multicharts, hanno raggiunto una certa stabilità nell’interfacciamento con i vari mercati e possiamo limitarci a fare in Python tutta la fase di ricerca statistica sui dati, di backtesting su uno o più mercati, magari anche utilizzando algoritmi evoluti come quelli di aggiunta di rumore alle serie dei prezzi, per poi codificare il nostro prodotto Python in EL-PL solo per la fase di esecuzione verso il broker. Oppure possiamo creare un ecosistema “all embedded” in Python per gestire anche l’interfacciamento tra Python e le API del broker, per far eseguire direttamente un trading system scritto in Python.

La Python Academy è un corso di programmazione?

Dovrei rispondere di si, ma sarei fortemente riduttivo, dunque concedimi qualche minuto per spiegare meglio di cosa si tratti: è un’opera composita senza eguali, che ha l’ambizione di insegnare Python, nel dettaglio, attraverso la trattazione passo passo dei principali pilastri teorici e pratici del Trading e dell’Investing. Partiamo dall’analisi statistica delle serie storiche dei prezzi alla ricerca di inefficienze da sfruttare per la costruzione di trading system, passando all’analisi di robustezza di un’idea di trading su periodi dinamici di “in sample” ed “out of sample” o mediante l’aggiunta di diversi modelli di rumore artificiale o di serie artificiali multiple (concedimi un pizzico di orgoglio rivendichiamo la più lunga esperienza in questo campo e siamo stati tra i primi a divulgare la cosa), per giungere alla modellizzazione e al backtesting di sistemi di Equity Control per l’inibizione e la riattivazione di trading system, all’allestimento e lo studio statistico di interi portafogli di sistemi e sottostanti comprensivi di Logiche Rotazionali. Il tutto consentirà di non dipendere dalle piattaforme commerciali se non, per chi vorrà, per l’execution degli ordini. Questo, anche nella sola fase di backtest rappresenta un enorme vantaggio rispetto alla necessità di dominare anche una decina di tool differenti, spesso prodotti da vendor differenti.

Possiamo dunque considerare la Python Academy come un corso di Trading e di Investing raccontato attraverso lo studio di Python?

Mi piace definirlo come il più ampio percorso di formazione sul Trading e sull’Investing in cui non ci si porta a casa una serie di trading system miracolosi e duraturi, ma un metodo esemplare per essere indipendenti in ogni ambito, legato allo studio del codice Python che, lasciamelo dire, di per se vale il prezzo del biglietto. Abbiamo disegnato la didattica per garantire l’apprendimento di Python come bagaglio a sé stante rivendibile anche in ambito lavorativo o aziendale, grazie alla soluzione di complessità crescenti, proprie del mondo del Trading e dell’Investing.

Perché fondere l’apprendimento di un linguaggio di programmazione con un corso di trading e di investimento?

Di nuovo perché fare trading o occuparsi di investimenti, oggi, significa saper gestire complessità con metodo e Python, oltre ad essere uno strumento insostituibile per i motivi che ho ricordato, rappresenta il miglior metodo che possiamo apprendere.

Molti affermano che saper programmare non sia necessario per fare trading. Cosa ne pensi?

Su questo ho una posizione netta: non sono d’accordo e lo dico a rischio di perdere potenziali clienti o di farmi dei nemici. Credo si tratti di un’ambiguità legata alla necessità di portare il più ampio pubblico possibile all’interno del “circo” del trading. Le piattaforme commerciali si rincorrono per dimostrare quanto sia semplice codificare un indicatore o un’intero trading system e se lo fanno è anche perché hanno bisogno di clienti. Non sto affermando che chi sappia codificare un’idea sia in grado di fare profitti, ma di sicuro non saperlo fare può essere una lacuna terribilmente costosa in termini finanziari e psicologici. Saper codificare la propria idea o il proprio studio statistico, saper maneggiare algoritmi di equity control o di rotazione di portafoglio, costituisce un innegabile vantaggio in un ambiente competitivo come quello del trading.

Dando uno sguardo alla modalità didattica salta all’occhio una composizione in moduli didattici intervallati da prove intermedie di verifica, prima di arrivare ad un esame finale. Si tratta di un percorso competitivo?

Assolutamente no. Lasciami dire due parole su questa formula didattica, che ho fortemente voluto in prima persona: apprendere un codice di programmazione richiede dedizione e tempo e se questo secondo ingrediente non si rivela sufficiente può essere un’esperienza logorante. E’ per questo che la Python Academy dura di fatto 7 settimane, le prime 6 di corso online registrato più la sessione interattiva finale propedeutica all’esame. Il tempo non va lesinato se si desidera che Python rimanga per sempre uno strumento di lavoro e non l’ennesima possibilità. Le prove intermedie servono a noi docenti per valutare qualitativamente la comprensione del precedente modulo didattico, ma non ci saranno voti o valutazioni ed ogni partecipante avrà un filo diretto e riservato con me. Lo stesso vale per l’esame finale: al termine del percorso, ultimati i sei moduli didattici e consegnate le schede esercizio relative, sarà possibile partecipare alla sessione interattiva con il docente in cui verranno chiariti gli ultimi dubbi, successivamente verrà presentato e consegnato l’esame. Da quel momento in poi, ognuno con i suoi tempi, potrà compilarlo e rispedircelo per completare il percorso. Ma ciò potrà avvenire la settimana successiva o quando si vorrà in base ai propri impegni professionali o personali.

In definitiva perché un trader, un investitore o uno studente dovrebbe partecipare alla Python Academy?

Dopo aver visionato e partecipato a decine di percorsi didattici “one shot”, tenuti in aula in un’unica soluzione sui più disparati argomenti legati al trading, posso affermare che una delle perplessità più ricorrenti consiste nel timore di non portarsi a casa abbastanza o che, in definitiva, il proprio denaro non sia investito al meglio. Nel caso della Python Academy si viene ad imparare un linguaggio evoluto, semplice, scalabile e sicuro bagaglio professionale e personale e questo a prescindere dagli aspetti legati al Trading e all’Investing. Se poi aggiungiamo che saranno finalizzati centinaia di codici che andranno di fatto a sostituire l’utilizzo massivo di piattaforme commerciali, con il gusto di pensare e realizzare da soli quello che serve, per gestire un portafoglio allo stato dell’arte, direi che lo scenario si completa da solo.


Giovanni Trombetta

Head of Research & Development
Gandalf Project

Per informazioni o per prenotare senza impegno un colloquio personale con il docente 
scrivere una email ad info@gandalfproject.com

AVVERTENZE: I contenuti di questo articolo (e degli altri contenuti in questo sito) e le opinioni espresse non devono in nessun caso essere considerati come un invito all’investimento.
Le analisi non costituiscono mai una sollecitazione all’acquisto o alla vendita di qualsivoglia strumento finanziario. Queste note hanno per oggetto analisi finanziarie e ricerca in materia di investimento. Qualora vengano espresse delle raccomandazioni, queste hanno carattere generale, sono rivolte ad un pubblico indistinto e mancano dell’elemento della personalizzazione.
Sebbene frutto di approfondite analisi, le informazioni contenute in questo e negli altri articoli possono contenere errori. Gli autori non possono in nessun caso essere ritenuti responsabili per eventuali scelte effettuate dai lettori sulla base di tali informazioni erronee. Chi decide di porre in essere una qualsiasi operazione finanziaria sulla base delle informazioni contenute nel sito lo fa assumendone la totale responsabilità.

DISCLAIMER: The contents of these notes and the opinions expressed should in no case be considered as an invitation to invest. The analyzes never constitute a solicitation to buy or sell any financial instrument.
These notes relate to financial analysis and investment research. If recommendations are made, these are of a general nature, are aimed at an indistinct audience and lack the element of personalization.
Although the result of in-depth analysis, the information contained in these notes may contain errors. The authors cannot under any circumstances be held responsible for any choices made by readers on the basis of such erroneous information. Anyone who decides to carry out any financial transaction on the basis of the information contained in the site does so assuming full responsibility.

Lascia un commento

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