Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Introduzione
Mai come oggi sono disponibili per i trader strumenti di costruzione e di valutazione trading system cos allavanguardia da non richiedere nessuna specifica conoscenza del tradizionale approccio manuale di sviluppo strategie. Al giorno doggi chi costruisce e programma trading system seguendo il metodo tradizionale deve necessariamente studiare a fondo il mercato di interesse per capirne dinamiche e caratteristiche. Da questo attento studio nasce poi un modello, unidea di trading che deve essere trasformata in codice, verificata e ottimizzata seguendo una linea dazione ben definita e consolidata fino a che non siano registrati buoni risultati. C da dire che non sempre queste nozioni sono alla portata di tutti; infatti richiesta un ampia specializzazione nel trading finanziario e nella programmazione per riuscire a costruire una strategia di trading solida e profittevole nel tempo utilizzando il metodo tradizionale. Per queste ragioni la figura del programmatore quantitativo viene ancora vista come unentit superiore, una specie di maghetto che dall'alto fa cadere il suo pesante sapere sopra i comuni trader [Toma11]. Niente di pi falso: gli algoritmi genetici e la programmazione genetica possono essere la soluzione a questo limite anche per i pi comuni trader che non hanno conoscenze e risorse necessarie per adottare liter tradizionale di sviluppo strategia. Utilizzare la programmazione genetica per costruire strategie di trading evita gran parte della arbitrariet coinvolte nella scelta di quali regole tecniche utilizzare e permette di generare trading system profittevoli minimizzando il rischio per qualsiasi tipo di mercato. Inoltre alcuni mercati presentano particolarit proprie che li rendono unici, ed utilizzare tecniche tradizionali spesso si rivela inefficace nelloperativit a lungo termine [Algo11]. Ed qui che entra in gioco Builder, un recente software di Adaptrade Software che genera automaticamente trading system sulla base di criteri specificati dall'utente bypassando tutti gli step obbligatori imposti dal metodo tradizionale: non necessaria nessuna conoscenza di linguaggio EasyLanguage, non necessario programmare e non necessario avere una conoscenza approfondita degli indicatori commerciali tecnici e delle tecniche di costruzione della strategia. Un vero e proprio programmatore quantitativo a portata di mano!
Bauer (1994)[Bauer94] stato il primo ad introdurre gli algoritmi genetici nel mondo della finanza, da allora numerosi ricercatori hanno esteso gli studi in molte branche di essa tra cui il trading. Successivamente Levitt (1995)[Levitt95] ha sviluppato una nuova tecnica meccanica di apprendimento chiamata genetic-based global learning per combinare alcuni indicatori (come l'ADX) per predire le future tendenze del mercato. Egli ha dimostrato che il metodo produceva regolarmente profitti quando veniva applicato al foreign Exchange market. Nel 2002 Chen[Chen02] ha raccolto numerose pubblicazioni e ricerche svolte fino a quell'anno per creare uno dei pilastri della materia: Genetic Algorithms and Genetic Programming in Computational Finance. Questo libro offre un' esauriente panoramica della situazione attuale; vengono descritte le applicazioni genetiche all'interno della finanza in molti dei suoi aspetti anche se tutt'ora il settore in continua espansione. Come spiega lo stesso autore dopo dieci anni di sviluppo il momento di chiederci come gli algoritmi genetici e la programmazione genetica possano contribuire al trading finanziario. Sebbene fino ad oggi ci sono solo 150 pubblicazioni circa in questo settore, la loro applicazione nei vari campi in continuo sviluppo.
3.4. Risultati
Per trovare una regola di trading per l'S&P 500 sono state eseguite 100 simulazioni indipendenti salvando per ognuna di esse la regola che registrava un maggiore profitto rispetto ad una strategia buy & hold. Al fine di prevenire potenziali data-snooping causati dalla scelta dei periodi di tempo, l'archivio storico stato diviso in dieci intervalli temporali e per ognuno vengono mostrati i risultati ottenuti. Per ogni intervallo i primi sette anni sono utilizzati come periodo di analisi in-sample (1929, 1934,....,1974) e gli anni successivi sono utilizzati come periodo di test out-of-sample (1936, 1941,....., 1981). Per fare un esempio la prima simulazione utilizza l'intervallo 1929-1935 come periodo in-sample e 1936-1995 come test out-of-sample. Per ognuno dei dieci periodi in-sample vengono effettuate dieci simulazioni, inizialmente con costi di transazione pari al 0.25%. Dopo aver eseguito le 100 simulazioni, i risultati mostrano che sono state trovate 89 regole di trading (le simulazioni non hanno salvato le regole che non hanno registrato rendimenti in eccesso positivi durante il periodo in-sample). Per illustrare una breve panoramica dei risultati, la figura 6.20 mostra il rendimento medio annuo in eccesso e il numero medio di operazioni l'anno che registrano le regole di trading.
Le tabelle seguenti illustrano una sintesi dei risultati ottenuti applicando diversi costi di transazione: nella tabella 6.20 sono applicate commissioni pari a 0,25%, le tabelle 6.21 e 6.22 considerano invece lo 0,1% e lo 0,5%. La prima colonna elenca i dieci periodi in-sample della simulazione; le regole migliori che vengono generate per ognuno di questi intervalli vengono testate sul periodo out-of-sample che inizia l'anno successivo e si prolunga fino al 1995. K il numero di regole di trading generate dal processo evolutivo. Excess denota il rendimento medio annuo in eccesso che registra la regola durante il periodo di test out-ofsample rispetto ad una strategia buy & hold dopo aver applicato i costi di transazione. K+ il numero di regole generate con un rendimento positivo in eccesso.
3.6. Considerazioni
L'S&P 500 un mercato liquido tra i pi efficienti ed quindi molto difficile trovare strategie che siano robuste e che durino nel tempo. E consigliabile testare le strategie generate da algoritmi genetici su mercati meno liquidi con commissioni irrisorie (come futures o foreign exchange market) per eliminare questo problema. Inoltre negli anni 90 la programmazione genetica stata utilizzata principalmente per risolvere problemi relativamente semplici poich tale metodologia richiede una grande capacit computazionale. Tuttavia, pi recentemente, grazie ai recenti sviluppi nella tecnologia e alla ben conosciuta legge di Moore [Moore65], la programmazione genetica ha cominciato a fornire un certo numero di risultati. In particolare dopo il 2000 la teoria della programmazione genetica ha avuto un formidabile e rapido sviluppo; cos rapido che stato possibile costruire modelli probabilistici esatti ed ottenere risultati innovativi e inimmaginabili fino a pochi anni prima. Probabilmente se Allen & Karjalainen avessero utilizzato strumenti computazionali allavanguardia (come Builder) per effettuare i loro studi, i risultati sarebbero cambiati drasticamente.
4. Adaptrade Builder
Adaptrade Builder un software che genera automaticamente strategie di trading per TradeStation e Multichart. Builder automatizza il tradizionale approccio di sviluppo trading system in cui il trader seleziona gli elementi della strategia di trading basandosi sullesperienza passata combinata con la conoscenza di indicatori tecnici e tipi di ordini di entrata e uscita dal mercato. Una buona strategia di trading tipicamente sviluppata attraverso una lunga sperimentazione che coinvolge numerose iterazioni, revisioni e collaudi fino a quando vengono registrati risultati accettabili. Tutti questi passi sono eseguiti automaticamente da Builder [Adapt11]. In particolare il programma genera una popolazione iniziale di strategie di trading selezionando casualmente alcuni indicatori tecnici tradizionali e alcune regole di entrata e di uscita dal mercato per ogni membro della popolazione. Successivamente la popolazione iniziale di strategie "evolve" nel corso di varie generazioni utilizzando un algoritmo genetico con criteri di performance specificati dall'utente. Il programma si basa su strategie generate nel periodo "in-sample" e poi testate nel cosiddetto periodo di prova "out-of-sample" per verificare che la strategia porti buoni risultati anche nel futuro.
portafoglio aggiungendo un nuovo mercato nel proprio trading, possibile utilizzare Builder per trovare una nuova strategia. Le strategie generate sono complete, incluse le regole per entrare nel mercato, per uscire in profitto e per uscire in perdita. Il codice della strategia fornito in formato testuale e pu essere copiato e incollato nell'editor EasyLanguage in TradeStation 6 o in Multichart attraverso l'editor Power Language, per essere eseguito cos com' oppure modicato a proprio piacimento. Le strategie possono essere solo long, solo short oppure entrambi. Per semplicare la logica di trading esiste un'opzione che crea regole di ingresso long e short logicamente opposte. In alternativa le regole di ingresso long e short possono essere generate in modo indipendente. Builder comprende indicatori tecnici come il: trend (semplice media mobile, media mobile esponenziale) la forza trend (ADX, rate of change) oscillatori (SlowD stocastico, RSI) volatilit ora del giorno, giorno della settimana e modelli di prezzo
Gli indicatori vengono combinati tramite funzioni logiche ("e", "o") e con operatori di disuguaglianza (<, <=,>,> =, =). In oltre ci sono tre diversi ordini di ingresso e sei diversi tipi di ordini di uscita. Per costruire strategie di trading il programma utilizza un algoritmo genetico per selezionare diverse combinazioni degli indicatori tecnici, degli operatori, degli ordini di entrata e di quelli di uscita. Con tutte le possibili combinazioni di regole e di ordini, Builder in grado di generare letteralmente migliaia di miliardi di diverse possibili strategie di trading. Per garantire che le strategie generate da Builder soddisfino le vostre esigenze, possibile specificare i parametri di performance per guidare il processo di creazione [Adapt11]. I parametri di performance pongono pi o meno enfasi sulle misurazioni delle seguenti prestazioni: Profitto netto Numero di trade Average trade Percentuale di trade vincenti Profit Factor Coefficiente di correlazione nella equity line Significativit statistica Complessit della strategia MAE Drawdown
Altre impostazioni in Builder consentono di controllare vari aspetti del processo di programmazione genetica e specificano le caratteristiche delle strategie generate.
Bibliografia
[Algo11] [Toma11] [AllKar98] [Neftci91] Quantirica, Adaptrade Presentation, 2011, www.quantirica.it/public/uploads/updir70/Adaptrade%20presentation.pdf Tomasini E., Trading System La nuova frontiera, Trading Library, 2011 Allen F., Karjalainen R., Using Genetic Algorithms to Find Technical Trading Rules, in: Journal of Financial Economics, 51, 1999, 245-271. Neftci S.N., Naive Trading Rules in Financial Markets and WienerKolmogorov Prediction Theory: a Study of Technical Analysis, in: Journal of Business, 64(4), 1991, 549-571. Sweeney, R.J., Some new filter rule tests: methods and results, in: Journal of Financial and Quantitative Analysis, 23, 1988, 285-300. Smith S.F., A Learning System Based on Genetic Adaptive Algorithms, University of Pittsburgh, 1980. Cramer N.L., "A representation for the Adaptive Generation of Simple Sequential Programs", in: Proceedings of an International Conference on Genetic Algorithms and the Applications, Grefenstette, John J. (ed.), Carnegie Mellon University, 1985. Koza J.R., Genetic Programming: On the Programming of Computers by Means of Natural Selection, Cambridge, MIT Press, 1992. Bauer R.J., Genetic Alghoritms and Investment Strategies, Wiley Finance Edition, 1994. Levitt M.E., Machine Learning for Foreign Exchange Trading in: Neural Networks in Capital Markets, in A-P. (.ed), John Wiley and Sons, Chichester, 1995, 233-243. Moore G.E., Cramming more components onto integrated circuits in: Electronics, 38(8), 1965, 114. Chen S.H., Genetic Algorithms and Genetic Programming in Computational Finance, Kluwer Academic Publisher, 2002. Adaptrade Software, Adaptrade Builder for Tradestation Users Guide, 2011, http://www.adaptrade.com/Builder/AdaptradeBuilderUG.pdf
[Sweeney88] [Smith80]
[Cramer85]
[Koza92]
[Bauer94]
[Levitt95]
[Moore65]
[Chen02]
[Adapt11]