Come ottimizzare system. NOTE commercio Questo è argomento abbastanza avanzato Si prega di leggere precedenti tutorial AFL first. The idea alla base di una ottimizzazione è semplice In primo luogo è necessario disporre di un sistema di negoziazione, questo può essere un semplice incrocio media mobile come ad esempio In quasi tutti i sistemi là sono alcuni parametri come la media periodo in cui decidere come sistema dato si comporta cioè è sia adatto per il lungo termine o breve termine, come non fa altro che reagire sugli stock altamente volatili, ecc l'ottimizzazione è il processo di ricerca di valori ottimali di quei parametri che danno profitto più alto da il sistema per un determinato simbolo o di un portafoglio di simboli AmiBroker è uno dei pochi programmi che permettono di ottimizzare il sistema su più simboli in once. To ottimizzare il sistema è necessario definire da un FINO dieci parametri da ottimizzare si decide quello che è un minimo e massimo valore consentito del parametro e in che incrementa questo valore deve essere aggiornato AmiBroker esegue quindi più test di nuovo il sistema utilizzando tutte le possibili combinazioni di valori dei parametri Quando questo processo è finito AmiBroker visualizza l'elenco dei risultati ordinati per utile netto siete in grado di vedere i valori dei parametri di ottimizzazione che danno il meglio result. Writing AFL formula. Optimization in tester posteriore è supportato via nuova funzione chiamata ottimizzare la sintassi di questa funzione è la follows. variable ottimizzare Descrizione, di default min max step. variable - è normale variabile AFL che viene assegnato il valore restituito dalla funzione di ottimizzare Con backtesting normale, la scansione, l'esplorazione e le modalità comentary il valore predefinito restituisce la funzione di ottimizzare, in modo che la chiamata di funzione di cui sopra è equivalente a default. In variabile funzione di modalità di ottimizzazione ottimizzare il rendimento valori successivi dal minimo al massimo globalmente con passo stepping. Description è una stringa che viene utilizzato per identificare la variabile di ottimizzazione e viene visualizzato come un nome di colonna nella list. default risultato ottimizzazione è un valore predefinito che ottimizzare i rendimenti in funzione l'esplorazione, l'indicatore, il commento, scansione e normale modes. min back test è un valore minimo dell'essere optimized. max variabile è un valore massimo dell'essere optimized. step variabile è un intervallo utilizzato per aumentare il valore da min a max. AmiBroker supporta fino a 64 chiamate per ottimizzare funzione quindi fino a 64 variabili di ottimizzazione, si noti che se si utilizza l'ottimizzazione esaustivo, allora è davvero una buona idea di limitare il numero di variabili di ottimizzazione a poco few. Each chiamare per ottimizzare generare max - min cicli di ottimizzazione passo e le chiamate multiple per ottimizzare moltiplicare il numero di di piste necessarie per esempio ottimizzando due parametri con 10 passi richiederà 10 10 100 ottimizzazione loops. Call ottimizzare la funzione solo una volta per variabile all'inizio del vostro formula come ogni chiamata genera una ottimizzazione loops. Multiple-simbolo nuovo ottimizzazione è pienamente supportato da AmiBroker. Maximum spazio di ricerca è 2 64 10 19 10,000,000,000,000,000,000 combinations.1 variabile singola optimization. sigavg per segnali media 9 2 20 1.Buy Croce MACD 12 26, 12 26 Signal sigavg vendi Croce Signal 12 26 sigavg, MACD 12 26,2 a due variabili di ottimizzazione adatto per 3D charting. per Ottimizzare per 2 5 50 1 livello Optimize livello 2 2 150 4.Buy Croce CCI per, - Level Vendita livello Croce, CCI per.3 multipla 3 variabile optimization. mfast Optimize MACD veloce 12 8 16 1 mslow Optimize MACD lento 26 17 30 1 sigavg per segnali media mfast 9 2 20 1.Buy Croce MACD, mslow segnale mfast, mslow, sigavg vendi Croce segnale mfast, mslow, sigavg, MACD mfast, mslow. After entrare nella formula basta cliccare sul pulsante Optimize nella finestra di analisi automatica AmiBroker sarà iniziare a testare tutte le possibili combinazioni di variabili di ottimizzazione e riferire i risultati nella lista Dopo l'ottimizzazione è fatto l'elenco dei risultati è presentato in ordine di Utile netto Come è possibile ordinare i risultati in base a qualsiasi colonna nella lista dei risultati è è facile da ottenere i valori ottimali dei parametri per il prelievo più basso, più basso numero di transazioni, il più grande fattore di profitto, esposizione di mercato più basso e più alto rendimento annuo risk adjusted le ultime colonne della lista dei risultati presentano i valori delle variabili di ottimizzazione per data test. When voi decidere quale combinazione di parametri adatta alle vostre esigenze il meglio tutto quello che dovete fare è quello di sostituire i valori di default in funzione di ottimizzare le chiamate con i valori ottimali in fase di corrente è necessario digitarli a mano nella finestra formula Modificare il secondo parametro della funzione optimize ottimizzazione animato grafico ottimizzazione 3D visualizzazione charts. To call. Displaying 3D, è necessario eseguire l'ottimizzazione a due variabili primi due ottimizzazione variabile ha bisogno di una formula che ha 2 funzione Optimize chiama un esempio due variabili formula ottimizzazione sembra this. per Optimize per 2 5 50 1 livello livello Optimize 2 2 150 4.Buy Croce CCI per, - Level Vendita livello Croce, CCI per. After entrare la formula è necessario fare clic ottimizzazione Ottimizzare button. Once è completo si dovrebbe fare clic sulla freccia a discesa Ottimizza pulsante e scegliere Visualizza 3D grafico ottimizzazione in pochi secondi apparirà un colorato grafico superficie tridimensionale in una finestra del visualizzatore grafico 3D un grafico esempio 3D generato utilizzando soprattutto la formula è mostrato below. By di default i valori visualizzati grafici 3D di utile netto contro ottimizzazione variabili è possibile però tracciare grafico a superficie 3D per qualsiasi colonna nella tabella dei risultati di ottimizzazione Basta cliccare sulla colonna per ordinare lo freccia blu apparirà indicando che i risultati di ottimizzazione sono allineati secondo la colonna selezionata e scegliere grafico ottimizzazione View 3D again. By visualizzare come parametri vostro sistema s influiscono sulle prestazioni di trading, si può più facilmente decidere quali valori dei parametri producono fragile e che producono robusto sistema di prestazioni impostazioni robusti sono regioni nel grafico 3D che mostrano graduale piuttosto che bruschi cambiamenti nelle classifiche di ottimizzazione superficie grafico 3D sono ottimo strumento per prevenire la curva di raccordo di curva-montaggio o eccesso di ottimizzazione si verifica quando il sistema è più complesso di quanto dovrebbe essere, e tutto ciò che la complessità è concentrata su condizioni di mercato che non può mai accadere cambiamenti più radicali o picchi nelle classifiche di ottimizzazione 3D mostrano chiaramente sopra - Ottimizzazione aree si dovrebbe scegliere regione parametro che produce un altopiano ampio e largo sul grafico 3D per la vostra vita reale set di trading dei parametri che producono picchi di profitto non funziona in modo affidabile nel settore trading.3D chart viewer grafico controls. AmiBroker s 3D offre funzionalità di visualizzazione totale con rotazione grafico completo e l'animazione Ora è possibile visualizzare i risultati del sistema da ogni prospettiva immaginabile È possibile controllare la posizione e altri parametri del grafico usando il mouse, della barra degli strumenti e scorciatoie da tastiera, tutto ciò che trovano più facile per voi Qui di seguito troverete l'elenco. - a Ruota - tenere premuto il tasto sinistro del mouse e si muovono in direzioni XY - di zoom-in, zoom-out - tenere premuto il pulsante destro del mouse e muoversi in direzioni XY - per spostare tradurre - tenere premuto il tasto sinistro del mouse e il tasto CTRL e si muovono in XY direzioni - per animare - tenere premuto il tasto sinistro del mouse, trascinare in modo rapido e pulsante di sblocco mentre dragging. SPACE - animare la rotazione automatica tasto freccia sinistra - ruotare vert sinistra tasto freccia destra - ruotare vert destra tasto freccia - ruotare Horiz fino tasto freccia giù - ruotare Horiz giù TASTONUM PLUS - Vicino zoom TASTONUM - MENO - Far diminuire NUMPAD 4 - spostare NUMPAD sinistra 6 - sposta a destra NUMPAD 8 - spostarsi verso l'alto 2 TN - spostare verso il basso PAGE uP - il livello dell'acqua fino PAGE DOWN - il livello dell'acqua verso il basso. intelligente optimization. AmiBroker non esaustivo ora offre l'ottimizzazione intelligente non esaustivo in aggiunta al normale, ricerca esaustiva ricerca non esaustivo è utile se il numero di tutte le combinazioni di parametri di sistema dato di trading è semplicemente troppo grande per essere fattibile per esaustiva ricerca search. Exhaustive è perfettamente bene finché è ragionevole usarla Let s dire di avere 2 parametri ciascuno che vanno da 1 a 100 step 1 che s 10000 combinazioni - perfettamente ok per la ricerca esaustiva Ora con 3 parametri che si ha 1 milione di combinazioni - è ancora OK per la ricerca esaustiva, ma può essere lento processo con 4 richieste che ha 100 milioni di combinazioni e con 5 parametri 1 100 si dispone di 10 miliardi di combinazioni in quel caso sarebbe troppo tempo per controllare tutti loro, e questo è il settore in cui non esaustivi metodi di smart-ricerca in grado di risolvere il problema che non è risolvibile in tempi ragionevoli usando esaustivo search. Here è assolutamente le istruzioni SEMPLICE come utilizzare nuovo ottimizzatore non esaustivo, in questo caso CMA-ES.1 Aprire la formula nell'Editor delle formule. 2 Aggiungere questa singola riga nella parte superiore del vostro formula. OptimizerSetEngine CMAE è anche possibile utilizzare spso o Trib here.3 opzionale Seleziona il tuo target di ottimizzazione in analisi automatica, Impostazioni, walk-Forward scheda, campo di destinazione ottimizzazione Se si salta questo passaggio lo farà ottimizzare per CAR MDD rendimento annuo composto diviso il carico massimo drawdown. Now se si esegue l'ottimizzazione utilizzando questa formula, userà nuova evolutivo non esaustivo CMA-ES optimizer. How vuol work. The ottimizzazione è il processo di ricerca di minimo o massimo di data funzione Qualsiasi sistema di scambio può essere considerata come una funzione di certo numero di argomenti Gli ingressi sono parametri e dati di quotazione l'uscita è il vostro target di ottimizzazione dire CAR MDD e si sta cercando per un massimo di data function. Some di algoritmi di ottimizzazione intelligente si basano su comportamento animale natura - algoritmo PSO, o biologico - algoritmi genetici, e alcuni si basano su concetti matematici derivati da esseri umani - algoritmi CMA-ES. These vengono utilizzati in diversi settori, tra cui finanza Inserisci PSO finanza o CMA-ES finanza in Google e troverete un sacco di info. Non esaustivo o metodi intelligenti troverete ottimale globale o locale L'obiettivo è ovviamente quello di trovare uno globale, ma se c'è un unico acuto di picco di un'infinità combinazioni di parametri, metodi non esaustivo potrebbe non riuscire per trovare questo unico picco, ma prendendo forma commerciante s perspecive, trovando unico picco tagliente è inutile per la negoziazione, perché questo risultato sarebbe instabile troppo fragile e non replicabile in trading reale nel processo di ottimizzazione che stiamo invece cercando regioni altopiano con parametri stabili e questa è l'area in cui i metodi intelligenti shine. As di algoritmo utilizzato da ricerca non esaustiva sembra che follows. a l'ottimizzatore genera un po 'di popolazione di partenza di solito casuale di parametro imposta b backtest viene eseguito da AmiBroker per ciascun set di parametri da parte della popolazione c la risultati di backtests vengono valutati secondo la logica di algoritmo e nuova popolazione viene generato in base all'evoluzione dei risultati, d se nuovo è trovato meglio - salvarlo e passare al punto b fino a quando i criteri di arresto sono met. Example criteri di arresto può includere una portata specificate iterazioni massimo b fermano se la gamma dei migliori valori oggettivi delle ultime generazioni X è zero STOP C se l'aggiunta di 0 1 vettore deviazione standard in qualsiasi direzione asse principale non cambia il valore del valore oggettivo d others. To utilizzare alcun intelligente non esaustivo ottimizzatore in AmiBroker è necessario specificare il motore di ottimizzazione che si desidera utilizzare nella formula AFL con funzione OptimizerSetEngine function. The seleziona motore di ottimizzazione esterni definiti per nome AmiBroker attualmente fornito con 3 motori Particle standard Swarm Optimizer spso, Tribù trib, e CMA-ES CMAE - i nomi in parentesi sono da utilizzare in OptimizerSetEngine calls. In Oltre a selezionare Engine Optimizer si consiglia di impostare alcuni dei suoi parametri interni per fare ciò utilizzare il nome OptimizerSetOption function. OptimizerSetOption, funzione valore function. The impostare i parametri aggiuntivi per esterni motore di ottimizzazione I parametri sono dipendente dal motore Tutti e tre gli ottimizzatori forniti con AmiBroker SPSO, Trib, supporto CMAE due parametri Esegue numero di piste e MaxEval test valutazioni massimo per singola corsa Il comportamento di ogni parametro è dipendente dal motore, in modo da stessi valori possono e di solito produrrà risultati diversi con diversi motori used. The differenza tra le esecuzioni e MaxEval è la seguente valutazione o test è unico backtest o la valutazione di oggettiva RUN valore della funzione è una corsa piena dell'algoritmo di ricerca di valore ottimale - di solito coinvolge molti test evaluations. Each corsa semplicemente riavvia il tutto il processo di ottimizzazione del nuovo inizio nuova popolazione iniziale casuale Pertanto ogni esecuzione può portare a trovare diverse min max locale se non trova uno globale Così recita parametro definisce il numero di successive algoritmo gestisce MaxEval è il numero massimo di valutazioni bactests in ogni singolo run. If il problema è relativamente semplice e 1000 prove sono sufficienti per trovare max globale, 5x1000 è più probabile trovare la massima globale, perché ci sono meno possibilità di essere bloccato in max locali, come le esecuzioni successive partiranno da diverse popolazione iniziale casuale. Choosing valori di parametro può essere difficile dipende dal problema in prova, la sua complessità, ecc, ecc Qualsiasi metodo non esaustivo stocastica non darà garanzia di trovare min max globale, indipendentemente dal numero di test, se è più piccolo esaustivo Il metodo più semplice risposta è specificare come gran numero di test in quanto è ragionevole per voi in termini di tempo necessario per completare Un altro consiglio semplice è quello di moltiplicare per 10 il numero di test con l'aggiunta di nuove dimensioni che possono portare a serie di test richiesti sopravvalutare, ma è abbastanza motori spediti sicuri sono progettati per essere semplice da usare, quindi ragionevole predefiniti valori automatici vengono utilizzati in modo ottimizzazione può essere di solito eseguito senza specificare nulla accettare defaults. It è importante capire che tutti i metodi di ottimizzazione intelligenti funzionano meglio in spazi parametro continuo e relativamente funzioni obiettivo lisce Se lo spazio parametro è discreta algoritmi evolutivi possono avere problemi a trovare il valore ottimale è particolarmente vero per i binari sui parametri off - non sono adatti per qualsiasi metodo di ricerca che utilizza la pendenza del cambiamento funzione obiettivo come la maggior parte dei metodi intelligenti fare se il vostro sistema di trading contiene molti parametri binari, non si dovrebbe usare intelligente ottimizzatore direttamente su di loro invece cercare di ottimizzare solo parametri continui utilizzando smart ottimizzatore, e passare parametri binari manualmente o tramite script. SPSO esterna - Particle Swarm standard Optimizer. Standard Particle Swarm Optimizer si basa su SPSO2007 codice che dovrebbe produrre buoni risultati, a condizione che i parametri corretti cioè corre, MaxEval sono previste problema particolare Picking può essere difficile opzioni corrette per l'ottimizzatore PSO pertanto i risultati possono variare in modo significativo da caso a caso. viene fornito con codici sorgente completo all'interno ADK codice subfolder. Example per standard Particle Swarm Optimizer trovando valore ottimale in 1000 test all'interno dello spazio di ricerca di 10000 combinations. OptimizerSetEngine Runs spso OptimizerSetOption, 1 OptimizerSetOption MaxEval, 1000.sl Optimize s, 26, 1, 100, 1 Fa Ottimizzare f, 12, 1, 100, 1.Buy Croce MACD fa, sl, 0 Sell Croce 0, MACD fa, sl. TRIBES - Adaptive parametro-meno Particle Swarm Optimizer. Tribes è adattivo, la versione parametro-meno di PSO sciame di particelle ottimizzazione ottimizzatore non esaustivo per scientifica see. In teoria dovrebbe funzionare meglio di regolare PSO, perché può regolare automaticamente le dimensioni e la strategia sciame algoritmo per il problema di essere solved. Practice dimostra che le sue prestazioni è molto simile a PSO. il plugin implementa Tribù-D cioè variante adimensionale sulla base di codici sorgente originale Maurice Clerc utilizzati con il permesso dell'autore. viene fornito con il codice sorgente completo all'interno ADK folder. Supported Parametri MaxEval - numero massimo di valutazioni estensivi per impostazione predefinita corsa 1000.You dovrebbe aumentare il numero di valutazioni con il crescente numero di serie dimensioni di ottimizzazione params Il valore predefinito 1000 è buono per 2 o al massimo 3 dimensioni. Runs - numero di corse viene riavviato predefinita 5 È possibile lasciare il numero di corse al valore di default di 5.By numero predefinito di corse o di riavvio è impostato su 5.To uso Tribes ottimizzatore, è solo bisogno di aggiungere una riga al codice. OptimizerSetOption MaxEval, 5000 5000 valutazioni max. CMA-ES - covarianza Matrix adattamento evolutivo strategia optimizer. CMA-ES Matrix covarianza adattamento strategia evolutiva è avanzato ottimizzatore non esaustivo per scientifica vedere Secondo parametri di riferimento scientifici sorpassa altri nove, più popolari strategie evolutive come PSO, genetica e evolution. The differenziale plug-in implementa variante globale di ricerca con diversi riavvii con l'aumentare della dimensione della popolazione viene fornito con il codice sorgente completo all'interno ADK folder. By numero predefinito di corse o di riavvio è impostato su 5, si consiglia di lasciare il numero predefinito di restarts. You può variare utilizzando OptimizerSetOption Runs, N chiamata, dove N dovrebbe essere compreso tra 1 e 10 specificare più di 10 corse non è consigliabile, anche se possibile Nota che ogni esecuzione utilizza due volte la dimensione della popolazione di corsa precedente in modo che cresce esponenzialmente Pertanto con 10 corse si finisce con popolazione 2 10 superiore 1024 volte rispetto al primo run. There è un altro parametro MaxEval il valore di default è zero che significa che plug calcolerà automaticamente MaxEval richiesto si consiglia di non definire MaxEval da soli come opere di default algoritmo fine. The è abbastanza intelligente per ridurre al minimo il numero di valutazioni richieste e converge molto veloce a punto una soluzione, così spesso si trova soluzioni più veloce di altri strategies. It è normale che il plugin saltare alcuni passaggi valutazioni, se rileva che la soluzione è stato trovato, quindi non dovrebbe essere sorpreso dal fatto che barra di avanzamento ottimizzazione può muoversi molto velocemente in alcuni punti il plugin ha anche la capacità di aumentare il numero di passi oltre valore inizialmente stimato se è necessario trovare la soluzione Grazie alla sua natura adattiva, la stima tempo a sinistra e o il numero di passaggi visualizzati dalla finestra di dialogo progresso è solo ipotesi migliore al momento e può variare durante l'ottimizzazione course. To utilizzare CMA-ES ottimizzatore, è sufficiente aggiungere una riga al tuo code. This verrà eseguito l'ottimizzazione con le impostazioni predefinite che vanno bene per la maggior parte cases. It va notato, come è il caso di molti algoritmi di ricerca continouos-spazio, che diminuendo parametro passo per chiamate funciton Ottimizzare non influenza in modo significativo i tempi di ottimizzazione l'unica cosa che conta è la dimensione problema , cioè il numero di diverso numero parametri della funzione ottimizzare chiama il numero di passi al parametro può essere impostato senza influenzare il tempo di ottimizzazione, in modo da utilizzare la risoluzione più fine che si desidera in teoria l'algoritmo dovrebbe essere in grado di trovare una soluzione a un massimo di 900 N 3 N 3 backtests dove N è la dimensione in pratica si converge molto più veloce, ad esempio la soluzione in 3 N 3 spazio parametro dimensionale dire 100 100 100 1 milione di passaggi esaustive si trovano in soli 500-900 CMA-ES steps. Multi - threaded optimization. Starting individuo da AmiBroker 5 70 oltre a multiple-simbolo multithreading è possibile eseguire l'ottimizzazione multi-threaded singolo simbolo per accedere a questa funzionalità, cliccare sulla freccia a discesa accanto tasto per ottimizzare nella finestra Nuovo Analisi e selezionare i singoli Optimize specifica ha Optimize utilizzerà tutti i core del processore disponibili per eseguire l'ottimizzazione unico simbolo, il che rende molto più veloce di regolare optimization. In modalità simbolo corrente eseguirà l'ottimizzazione su un simbolo In tutti i simboli e le modalità di filtro vengono elaborati tutti i simboli in modo sequenziale, cioè prima ottimizzazione completa per primo simbolo, quindi l'ottimizzazione sul secondo simbolo, etc. Limitations backtester 1 Custom non è ancora supportata 2 motori di ottimizzazione intelligenti non sono supportati - solo l'ottimizzazione ESAURIENTE works. Eventually ci può sbarazzarsi di limitazione 1 - quando AmiBroker viene modificato in modo personalizzato backtester non usa OLE più ma 2 è probabilmente destinati a rimanere per sistemi di trading tecnico long. Improving utilizzando un nuovo studio procedure. Recent algoritmo genetico MATLAB basate nei mercati finanziari suggeriscono che l'analisi tecnica può essere uno strumento molto utile nel predire la tendenza sistemi di negoziazione sono ampiamente utilizzati per la valutazione del mercato tuttavia, ottimizzazione dei parametri di questi sistemi ha suscitato poco interesse per questo lavoro, per esplorare le potenzialità del commercio digitale, vi presentiamo un nuovo strumento MATLAB basato su algoritmi genetici lo strumento è specializzata in ottimizzazione dei parametri di tecnica regole che utilizza la potenza degli algoritmi genetici per generare soluzioni rapide ed efficienti in termini di trading reali il nostro strumento è stato testato ampiamente su dati storici di un fondo che investe UBS nei mercati azionari emergenti attraverso le nostre specifiche di sistema risultati tecnici dimostrare che la nostra proposta GATradeTool sorpassa comunemente usato, non adattativa, strumenti software per quanto riguarda la stabilità di ritorno e salvare l'intero periodo di campionamento Tuttavia tempo, abbiamo fornito la prova di un possibile effetto dimensione della popolazione in qualità di solutions. Financial markets. Genetic algorithms. Technical rules.1 Introduction. Today s commercianti e gli analisti di investimento richiedono strumenti veloci ed efficienti in un spietate battaglie dei mercati finanziari nel commercio sono ora condotte principalmente alla velocità del computer lo sviluppo di nuove tecnologie software e la comparsa di nuovi ambienti software ad esempio MATLAB forniscono la base per risolvere i problemi finanziari difficili reale tempo MATLAB s vasta funzionalità built-in matematica e finanziaria, il fatto che è sia un linguaggio di programmazione interpretato e compilato e la sua indipendenza dalla piattaforma rendono adatto per development. Evidence applicazione finanziaria sui rendimenti ottenuti dalle regole tecniche, comprese le strategie di momentum ad esempio, 14 15 16 16 25 20, spostando le regole medie e gli altri sistemi di trading 6 2 9 24 in grado di supportare l'importanza della analysis. However tecnica, la maggior parte di questi studi hanno ignorato il problema di ottimizzazione dei parametri, lasciandoli alla critica dei dati e snooping la possibilità di bias sopravvivenza 7 17 8 Tradizionalmente ricercatori usata Scheda ad hoc delle regole di negoziazione Essi utilizzano una configurazione popolare di default o in modo casuale provare un paio di diversi parametri e selezionare il meglio con criteri basati sul ritorno mainly. Papadamou e Stephanides 23 implementato un nuovo MATLAB Toolbox based per il calcolatore aided commercio tecnico che ha incluso una procedura per problemi di ottimizzazione dei parametri Tuttavia, il punto debole della loro procedura di ottimizzazione è il tempo della funzione obiettivo per esempio isn profitto ta semplice funzione errore quadratico ma un complicato ogni ottimizzazione iterazione passa attraverso i dati , genera segnali di trading, calcola i profitti, ecc Quando i set di dati sono grandi e si vorrebbero riottimizzare il sistema spesso e hanno bisogno di una soluzione al più presto possibile, poi provare tutte le soluzioni possibili per ottenere il migliore sarebbe una molto noioso algoritmi task. Genetic gas sono più adatti in quanto essi svolgono ricerche casuali in modo strutturato e convergono molto veloce su popolazioni di soluzioni ottimali vicino a La GA vi darà una popolazione serie di buone soluzioni analisti sono interessati ad ottenere un paio di buone soluzioni più velocemente possibile piuttosto che la soluzione a livello globale migliore la soluzione a livello globale migliore esiste, ma è altamente improbabile che esso continuerà ad essere il migliore one. The scopo di questo studio è quello di mostrare come gli algoritmi genetici, una classe di algoritmi di calcolo evolutivo, può essere impiegati per migliorare le prestazioni e l'efficienza dei sistemi di trading computerizzati non è lo scopo qui di fornire una giustificazione teorica o empirica per l'analisi tecnica dimostriamo il nostro approccio in un particolare compito di previsione sulla base di magazzino carta markets. This emergente è organizzato come segue impieghi precedenti è presentato nella sezione 2 set di dati e la nostra metodologia sono descritti nella sezione 3 I risultati empirici sono discussi nella sezione 4 Conclusioni segue Sezione 5.2 precedente work. There è un grande corpo di lavoro GA in informatica e ingegneria campi ma poco lavoro è stato fatto per quanto riguarda le aree di business correlati Ultimamente, c'è stato un crescente interesse per l'uso GA in economia finanziaria, ma finora non vi è stata poca ricerca riguardante trading. To automatizzato nostra conoscenza il primo documento pubblicato collega gli algoritmi genetici per investimenti era da Bauer e Liepiņš 4 Bauer 5 nel suo libro algoritmi genetici e strategie di investimento offerto indicazioni pratiche riguardo a come gas, potrebbero essere utilizzati per sviluppare interessanti strategie di trading sulla base delle informazioni fondamentali Queste tecniche possono essere facilmente esteso ad altri tipi di informazioni, come i dati tecnici e macroeconomici come così come prices. According passato per Allen e Karjalainen 1 algoritmo genetico è un metodo adeguato per scoprire le regole commerciali tecnici Fernández-Rodr Guez et al 11 con l'adozione di algoritmi genetici di ottimizzazione in una semplice regola di trading fornire la prova per l'utilizzo corretto di gas dai Madrid Borsa Alcuni altri studi interessati sono quelli di Mahfoud e Mani 18 che ha presentato un nuovo sistema basato su genetica algoritmo e lo ha applicato al compito di prevedere le future prestazioni dei singoli titoli di Neely et al 21 e da Oussaidene et al 22 che applicata programmazione genetica alla previsione di cambio e riportati alcuni success. One delle complicazioni di ottimizzazione GA è che l'utente deve definire una serie di parametri quali il tasso di crossover, dimensioni della popolazione e tasso di mutazione Secondo De Jong 10 che ha studiato gli algoritmi genetici in funzione Performance Optimization buona GA richiede un'alta probabilità di crossover inversamente proporzionale alla dimensione della popolazione e di una dimensione della popolazione moderata Goldberg 12 e Markellos 19 suggeriscono che una serie di parametri che funziona bene in molti problemi è un parametro di crossover 0 6, le dimensioni della popolazione 30 e il parametro mutazione 0 0333 Bauer 4 ha eseguito una serie di simulazioni su problemi di ottimizzazione finanziaria e ha confermato la validità di suggerimenti Goldberg s Nel presente studio eseguiremo uno studio di simulazione limitata testando varie configurazioni dei parametri per il sistema commerciale prescelto Metteremo inoltre a disposizione la prova per GA proposta da confrontando il nostro strumento con altri software tools.7 Tipi di Trading Robustezza costruire robot che il tempo Tutti Storms. Building l'Invincibile Robot. So avete sentito parlare come i computer governerà il mondo commerciale, come i robot intelligente fare milioni nei mercati, e ora si vuole per costruire la vostra OWB onnipotente robot commerciale che può conquistare tutto Ebbene, questo articolo non promette la formula magica o Santo Graal per il robot invincibile, ma è il più vicino si gets. PS concetti di negoziazione di cui qui non si applica a elevato con frequenza di trading commercio di milliseconds. Make tuoi robot intelligenti, ma non troppo intelligent. What significa tempo tutto ordine Storms. In per i nostri sistemi di trading di resistere a tutte le tempeste, alias rimane efficace in diverse condizioni di mercato, hanno bisogno di adattarsi al mercato Ciò comporta la logica commerciale che sono efficaci in periodi diversi, quadri di backtesting che minimizzano passatista pregiudizi e regole che non sono troppo criteri rigid. This possono essere riassunti in una sola parola Robustness. What è la definizione Robustness. Official di robustezza in economia, la robustezza è la capacità di un sistema di trading finanziario per rimanere efficace in diversi mercati e diverse condizioni di mercato, o la capacità di un modello economico a rimanere valida sotto diverse ipotesi, parametri e iniziale conditions. To tradurlo in più semplice sistema di trading words. A è robusto se può rimanere efficace nel cambiare conditions. Coding mercato, il test e la valutazione di trading robot in questi giorni è inexpensive. Types di Robustness. Robustness sembra essere una parola abusata Molti parlano di robustezza in un sistema di negoziazione, senza riferimento specifico al singolo tipo di robustezza ci sono molti tipi di robustezza, questo articolo si parla di principale seven. Period Robustness. Seasonal Robustness. Timeframe Robustness. Instrument Robustness. Optimisation Robustness. Parameter Robustness. Portfolio Robustness. Period Robustness. Definition Un sistema di trading è robusto nel tempo, se può rimanere efficace in diversi periodi periods. Market mercato può essere caratterizzato in 2 tipi generici e Strategic. Generic mercato Periods. Figure 1 sei mercato generico Periods. Figure 1 ci mostra i sei principali periodi di mercato generici in questo caso, stiamo analizzando le prestazioni dei nostri sistemi di trading in questi sei periods. However, non notare che alcune tabelle periodo di mercato generici sono 5 da 5 o larger.5 da 5 asse Y volatilità molto bassa, bassa volatilità, Neutro, elevata volatilità, Very High Volatility.5 da 5 asse X forte trend rialzista, trend rialzista, che vanno, tendenza al ribasso, forte Downtrend. The 5 da 5 classificazione è solo una variante dell'originale 2 da 3, ma non c'è niente di sbagliato con il 5 per 5 o più grande classification. If il nostro sistema di trading è efficace attraverso i 6 periodi di base, questo significa che è periodo periodi robust. Strategic mercato Periods. Strategic mercato si definiscono dal commerciante questo dipende dalle condizioni specifiche che influenzano fortemente l'attività si sono negoziazione Naturalmente, queste specifiche condizioni variano per le attività diverse. per esempio, se noi stiamo trading EURUSD, la politica monetaria della Federal Reserve sarà pesantemente influenzare il nostro commercio Quindi, analizzeremo 2 periodi di mercato strategici 1 Fed Easing 2 Fed di serraggio Se si sono negoziazione titoli azionari, un esempio potrebbe essere 1 Poco prima di guadagni rilasciare 2 Subito dopo i guadagni release. Application a Trading. Does questo significa che se il mio sistema di trading non è periodo di robusta, è unprofitable. That è corretto ci sono un sacco di sistemi di trading che sono progettati per catturare una specifica inefficienza del mercato il nostro obiettivo è per capire le caratteristiche del nostro sistema di trading s in modo da sapere come e quando implementare them. Seasonal Robustness. Definition un sistema di trading è stagionalmente robusto se è in grado di rimanere efficace nonostante stagionale effects. Seasonal robustezza può essere considerato come un sottoinsieme del periodo robustezza. A effetto stagionale è un qualsiasi mercato anomalia o effetto economico che sembra essere correlato al calendario diciamo che esiste effetti stagionali del mercato, se ci sono comportamenti ripetitivi nei mercati attraverso il tempo ci sono cinque tipi principali di effects. Intra - stagionale effetto giorno specifico comportamento dei mercati a determinate ore del comportamento specifico day. Day effetto dei mercati in certi giorni il comportamento specifico week. Month effetto dei mercati su alcuni mesi il comportamento specifico year. Quarter effetto dei mercati su base trimestrale. Multi-anno effetto il termine comprende a volte effetti pluriennali, come il decennale di 10 anni cycle. In maggior parte dei casi, gli effetti stagionali sono profezie non autoavverano sono create dai mercati Forex fundamentals.1 mercato sono più attivi in determinati periodi of the day because of global market overlaps.2 January Effect exists because of tax reducing reasons.3 Markets tend to be quieter on the earlier half of the first Friday of every month due to Non-Farm Payrolls. Figure 2 Examining the January Effect Credits. Application to Trading. Why don t we exploit this recurring inefficiency It is definitely possible, but there are several reasons this could be difficult. Timing and extent of seasonal effects are unstable. Market participants are constantly trying to exploit seasonal effects These actions influence the extent and behaviour of the seasonal effects Therefore, this creates a dynamic situation where the seasonal effects are constantly changing. Cost of trade is too high. The seasonal effect could exist because the cost to exploit the effect is too high The high cost acts as a natural barrier to protect the seasonal effects. We don t believe the market is completely efficient, but we believe it is efficient to a certain extent In many cases, it is difficult to exploit a seasonal effect because the efficiency is priced in For instance, you may want to buy a straddle an option structure that gains in value when volatility increases during Non-Farm Payroll because you expect higher volatility However, the sellers of the straddle have factored in the high volatility and thus priced this into the straddle price option premiums. Timeframe Robustness. Definition A trading system is timeframe robust if it is able to stay effective when trading in different timeframes. Timeframe refers to our candlestick period 1min, 5min, 15min, 1hour, Daily etc Our trading system is timeframe robust if its underlying trading strategy is effective in different timeframes. We need to understand timeframe robustness in two types of market conditions.1 Our asset behaves like a fractal across timeframes.2 No fractal behaviour. Scenario 1 Our asset behaves like a fractal across timeframes. No we are not referring to the candlestick pattern when we talk about Fractals. Official Definition of Fractals A fractal is a natural phenomenon or a mathematical set that exhibits a repeating pattern that displays at every scale If the replication is exactly the same at every scale, it is called a self - similar pattern. To simplify it A fractal is a pattern that repeats itself in different visuals or time scales. Figure 3 Fractals in different timeframes. As we zoom into the lower timeframes, we see that the shapes characteristics of the asset remains the same. Our trading system will always be timeframe robust when it is trading an asset that behaves as a fractal across timeframe If the market behaves in the same manner at every timeframe, there should not be any difference in our trading system s behaviour. Scenario 2 No fractal behaviour. A general rule of thumb is that noise volatility increases as we go to the lower timeframe Our trading system will be timeframe robust here if its underlying logic is effective in spite of the different noise levels and market behaviour at different timeframes. Application to Trading. If our trading system is timeframe robust, it works at every timeframe However, this does not mean that we remain indifferent to the timeframe we trade. We should trade on lower timeframe This will maximise the number of trading opportunities per time Imagine averaging 1 trade per 5 bars If you trade on Daily timeframe, you will fire 52 trades a year 260 weekdays 5 If you trade on 1 Hourly timeframe, you can fire 1248 260 24 5 trades a year Hence, your profit will be 24 times higher without considering the effects of compounding. Should we trade on the lowest possible timeframe. Following the logic stated above, if we should trade on the lowest possible timeframe 1min for MT4 , we should be massively profitable right Sadly and unsurprisingly, no. It is unlikely for a trading system to be perfectly timeframe robust It is unlikely for an asset to behave in a perfect fractal manner As we go to lower timeframes, the noise increases The asset s behaviour becomes more unpredictable due to real-time influences from current events, market microstructure and speculation by market participants Therefore, we should choose a timeframe that balances noise reduction and profit maximisation. If our trading system is not timeframe robust, we need to understand which timeframe is most suitable for our trading system in different market conditions. Instrument Robustness. Definition A trading system is robust across instruments assets if it can remain effective across different instruments. A trading system is instrument robust if it performs as expected across different assets This means that the trading system s underlying trading logic is capturing an inefficiency that exist in multiple assets. Application to Trading. Instrument robustness is not a gauge of a trading system s performance In fact, most trading systems are not instrument robust Trading systems are designed to capture specific market inefficiencies and these inefficiencies tend to be instrument specific Thus, it is not unusual that most trading systems are not instrument robust. Instead of aiming for instrument robustness, we should understand how our trading systems work in different assets This will allow us to discover common inefficiencies in different assets and deploy our portfolio of trading systems more effectively. Optimisation Robustness. Definition A trading system is robust in optimisation if the trading system objective function is maximised while minimising curve fitting. Before we explain in detail what Optimisation Robustness is, let s briefly understand what optimisation, objective function and curve fitting are. Optimisation The process where we adjust the structure and rules of a trading system to maximise or minimise its objective function. Objective Function This is the performance output of a backtest that we are trying to maximise or minimise. An easy and lazy way to choose an objective function is to use Net Profit This is rarely a good idea In trading, this output should consist of 3 things reward, consistency and risk. Curve Fitting The process of catering the trading system so closely to historical data that it becomes ineffective in the future. Why Because the future rarely reflects the past. Because the future rarely reflects the past, we need an optimisation process that minimises curve fitting This will increase the odds of success of our trading system A trading system going through such a process can be said to be optimisation robust. Application to Testing. This brings us to our solution The Walk Forward Optimisation. Definition according to Wikipedia. The trading strategy is optimised with in-sample data for a time window in a data series The remainder of the data are reserved for out-of-sample testing A small portion of the reserved data following the in-sample data is tested with the results recorded The in-sample time window is shifted forward by the period covered by the out-of-sample test, and the process repeated At the end, all of the recorded results are used to assess the trading strategy. To translate into simpler words. We optimise our trading system using one period in-sample , and apply the optimised parameters to the next period out-of-sample Repeat The performance of the trading system is collated using all the out-of-sample periods. Figure 4 In-sample and out-of-sample periods.1 Optimise trading system using In-Sample A.2 Test trading system s performance in Out-Sample A.3 Optimise trading system using In-Sample B.4 Test trading system s performance in Out-Sample B.5 Repeat for Period C to E.6 We will evaluate the trading system s performance in Out-Sample A to E. The aim of this process is to examine how will our trading system perform when executed in unknown territory out-of-sample. Parameter Robustness. Definition A trading system is parameter robust if its performance does not change drastically due to slight change in parameter values. If the underlying trading logic is sound, changing the parameter values slightly should not significantly affect its performance If the performance changes drastically, the trading system exhibits signs of curve fitting. Application to Testing. The results of an optimisation can be viewed in an optimisation surface parameter space if we are only optimising two parameters The x-axis and y-axis represents our two parameters The z-axis represents our objective function. Figure 5 Optimisation Surface with spiky peaks. Figure 6 Optimisation Surface with flat hills. The two figures above represents the optimisation surface of a trading system that uses two parameters, a fast moving average and a slow one When we examine this optimisation surface, we prefer flat hills over spiky peaks Flat hills indicate little change in performance even if we shift the parameter values slightly. Portfolio Robustness. Definition Portfolio Robustness occurs when a group of trading systems are able to remain effective in different market conditions. Portfolio Robustness and Period Robustness are different as Portfolio Robustness focuses on the complementary effects of separate trading systems Different trading systems have different strengths and weaknesses They can be combined in a way to maximise our objective function of the portfolio in the long run. Application to Trading. For illustration, assume we have two trading systems which are long term profitable but are negatively correlated to each other. Figure 7 Net equity curve of a portfolio of two robots. By combining these two trading systems, we are able to cancel out the risk in their performance and achieve a net long run positive result with significantly lower risk. By applying this concept to a portfolio of different trading systems, we aim to achieve Portfolio Robustness. This article serves to briefly introduce the seven main types of robustness However, in order to truly have a good grasp on building great trading systems, you need these three elements Trading System Design, Coding for Algorithmic Trading and Market Knowledge What s next Go Google these topics and get started. AlgoTrading101 is the first comprehensive online course on algorithmic trading Learn the fundamentals of algo trading and put your ideas into action along with more than 10,000 students Learn more about us at AlgoTrading101.This dude runs an algorithmic trading academy with over 13,000 students Click on the Author link above to learn more about him. Post navigation.
No comments:
Post a Comment