Text Size
Tuesday, July 17, 2018
Area

Gandalf Store

Code Rain

Education

Consulting

Python Academy

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 ulteriori dettagli clicca qui!

Per informazioni o per prenotare senza impegno un colloquio personale con il docente
scrivere una email ad This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Privacy & Cookies Policy

Questo sito utilizza i Cookies per migliorare la navigazione. Utilizzando questo sito e continuando nella navigazione si intende accettata la Privacy Policy e la Cookies Policy. Puoi bloccare in ogni momento questa raccolta di informazioni seguendo le istruzioni contenute in queste pagine.

Equity Control

Futures Trading

Topics

Artificial Intelligence

Artificial intelligence and the most modern technologies of genetic engineering in the service of trading...

Read more...

Consulting & Services

Gandalf Consultants aim to provide a wide range of services related to trading systems development...

Read more...

Trading Systems

Behind Gandalf Project there is the awareness that no Trading System lasts forever. Gandalf Patterns are the results of...

Read more...