How To Backtest A Trading System


Backtesting: Interpretazione Il passato backtesting è una componente fondamentale di un efficace sviluppo commerciale del sistema. Tutto è compiuto ricostruendo, con i dati storici, mestieri che si sarebbero verificati in passato utilizzando le regole definite da una determinata strategia. Il risultato offre statistiche che possono essere utilizzati per valutare l'efficacia della strategia. Utilizzando questi dati, gli operatori possono ottimizzare e migliorare le loro strategie, trovare eventuali difetti tecnici o teoriche, e guadagnare la fiducia nella loro strategia prima di applicarlo ai mercati reali. La teoria di fondo è che qualsiasi strategia che ha funzionato bene in passato è in grado di lavorare bene in futuro, e viceversa, qualsiasi strategia che ha eseguito male in passato, è probabile che scarso rendimento in futuro. Questo articolo prende in esame quali applicazioni vengono utilizzate per backtest, che tipo di dati si ottiene, e come metterlo a utilizzare i dati e gli strumenti di backtesting può fornire un sacco di feedback statistico preziose su un dato sistema. Alcune statistiche backtesting universali includono: utile o la perdita - percentuale di guadagno netto o la perdita. Tempo di telaio - date passate in cui si è verificato prova ing. Universo - Azioni che sono stati inclusi nel backtest. misure di volatilità - Percentuale massima rialzo e ribasso. Medie - percentuale media di guadagno e la perdita media, bar media detenuta. L'esposizione - Percentuale del capitale investito (o esposta al mercato). Rapporti - Vittorie-to-perdite rapporto. Annualizzato ritorno - ritorno percentuale più di un anno. rendimento percentuale in funzione del rischio - rendimento corretto per il rischio. In genere, il software di backtesting avrà due schermi che sono importanti. Il primo permette al trader di personalizzare le impostazioni per il backtesting. Queste personalizzazioni comprendono tutto, dalla periodo di tempo di spese di commissione. Ecco un esempio di un tale schermo in AmiBroker: La seconda schermata è l'attuale rapporto di risultati dei test retrospettivi. Questo è dove si possono trovare tutte le statistiche di cui sopra. Ancora una volta, ecco un esempio di questa schermata in AmiBroker: In generale, la maggior parte di software commerciale contiene elementi simili. Alcuni programmi software di fascia alta includono anche funzionalità aggiuntive per eseguire il dimensionamento posizione automatica, l'ottimizzazione e altre funzioni più avanzate. I 10 Comandamenti Ci sono molti fattori commercianti prestare attenzione a quando sono backtesting strategie di trading. Ecco una lista delle 10 cose più importanti da ricordare, mentre backtesting: Prendere in considerazione le grandi tendenze del mercato nel lasso di tempo in cui è stata testata una determinata strategia. Ad esempio, se una strategia è stata backtested solo 1999-2000, potrebbe non passerai bene in un mercato orso. Spesso è una buona idea di backtest per un periodo di tempo lungo, che comprende diversi tipi di condizioni di mercato. Prendere in considerazione l'universo in cui si è verificato backtesting. Ad esempio, se un sistema ampio mercato viene testato con un universo composto da titoli tecnologici, potrebbe non riuscire a fare bene in diversi settori. Come regola generale, se la strategia è mirata verso un genere specifico di magazzino, di limitare l'universo di questo genere, ma, in tutti gli altri casi, mantenere un grande universo a scopo di test. misure di volatilità sono estremamente importanti per prendere in considerazione nello sviluppo di un sistema di trading. Questo è particolarmente vero per gli account di leveraged, che sono sottoposti a richieste di margini se il loro capitale scende sotto un certo punto. Gli operatori dovrebbero cercare di mantenere bassa volatilità, al fine di ridurre i rischi e consentire più facile la transizione dentro e fuori di un determinato stock. Il numero medio di bar detenuti è molto importante anche per guardare quando si sviluppa un sistema di trading. Sebbene la maggior parte del software di backtesting include spese di commissione nei calcoli finali, questo non significa che si dovrebbe ignorare questa statistica. Se possibile, aumentare il numero medio di bar possedute in grado di ridurre i costi di commissione, e migliorare il rendimento complessivo. L'esposizione è una spada a doppio taglio. Maggiore esposizione può portare a maggiori profitti o le perdite maggiori, mentre è diminuito l'esposizione significa minori profitti o perdite inferiori. Tuttavia, in generale, è una buona idea per mantenere l'esposizione al di sotto 70, al fine di ridurre il rischio e consentire agevole passaggio dentro e fuori di un determinato stock. La statistica medio-gainloss, in combinazione con il rapporto vittorie-per-le perdite, può essere utile per determinare la posizione ottimale dimensionamento e la gestione del denaro utilizzando tecniche come la Kelly Criterion. (Vedere Money Management utilizzando il criterio di Kelly.) Gli operatori possono assumere posizioni più grandi e ridurre i costi di commissione, aumentando i loro guadagni medi e aumentando il loro rapporto vittorie-to-perdite. rendimento annualizzato è importante perché è utilizzato come strumento per riferimento un sistema restituisce contro altre sedi di investimento. E 'importante non solo per esaminare il rendimento annualizzato generale, ma anche di prendere in considerazione il rischio aumentato o diminuito. Questo può essere fatto guardando il rendimento corretto per il rischio, che rappresenta vari fattori di rischio. Prima di un sistema di negoziazione è adottato, esso deve superare tutte le altre sedi di investimento a rischio uguale o inferiore. Backtesting personalizzazione è estremamente importante. Molte applicazioni backtesting hanno ingresso per gli importi delle commissioni, rotonde (o frazionali) lotto dimensioni, spunta dimensioni, i requisiti di margine, i tassi di interesse, ipotesi slittamento, le regole di posizione dimensionamento, regole di uscita dello stesso bar, (finali) fermare le impostazioni e molto altro ancora. P er ottenere i risultati dei test retrospettivi più accurati, i t è importante per regolare queste impostazioni per imitare il broker che verrà utilizzato quando il sistema va in diretta. Backtesting a volte può portare a qualcosa di noto come eccesso di ottimizzazione. Questa è una condizione in cui i risultati di prestazione sono sintonizzati così altamente al passato che sono più come esatte in futuro. E 'generalmente una buona idea per implementare regole che si applicano a tutti gli stock, o un gruppo selezionato di azioni mirate, e non sono ottimizzati nella misura in cui le regole non sono più comprensibili dal creatore sono. Backtesting non è sempre il modo più accurato per misurare l'efficacia di un dato sistema di trading. A volte le strategie che si sono esibiti bene in passato non riescono a fare bene nel presente. I rendimenti passati non sono indicativi di risultati futuri. Assicurarsi di commercio di carta un sistema che è stato con successo backtested prima di andare in diretta per essere sicuri che la strategia si applica ancora in pratica. Conclusione Backtesting è uno degli aspetti più importanti di sviluppo di un sistema di trading. Se creata e interpretata correttamente, può aiutare gli operatori a ottimizzare e migliorare le loro strategie, trovare eventuali difetti tecnici o teorici, così come acquisire fiducia in loro strategia prima di applicarlo ai mercati del mondo reale. Risorse Tradecision (tradecision) - High-end Trading System Development AmiBroker (AmiBroker) - Budget Trading System Development. L'articolo 50 è una clausola di negoziazione e di regolamento nel trattato UE che delinea i passi da compiere per qualsiasi paese che. Un offerta iniziale su un fallito company039s beni da un acquirente interessato scelto dalla società fallita. Da un pool di offerenti. Beta è una misura della volatilità o rischio sistematico, di sicurezza o di un portafoglio rispetto al mercato nel suo complesso. Un tipo di imposta riscossa sulle plusvalenze sostenute da individui e aziende. Le plusvalenze sono i profitti che un investitore. Un ordine per l'acquisto di un titolo pari o inferiore a un determinato prezzo. Un ordine di acquisto limite consente agli operatori e agli investitori di specificare. Un Internal Revenue Service (IRS) regola che consente per i prelievi senza penalità da un account IRA. La norma richiede that. Although nostro quadro creazione strategia si è evoluta ben oltre i confini di NT, anni fa, mi ritrovo ancora utilizzando di volta in volta, per diversi scopi, e la sua dove abbiamo ottenuto il nostro inizio, quindi forse mi può aiutare tu qui. NinjaTrader ha certamente i suoi bug e difetti, ma tutte le piattaforme fare, e tra le piattaforme di trading al dettaglio comuni là fuori penso NT è una delle più intuitiva e semplice, e uno dei più facili da usare in maniera effectiveefficient destra, fuori dalla scatola . Uno dei motivi per questo è guidata strategia NT, che consente a un utente di costruire una strategia, senza alcuna conoscenza di codifica, utilizzando blocchi di costruzione condizione entryexit. Ill fare un esempio. Diciamo che vogliamo costruire una strategia che entra quando l'EMA (media mobile esponenziale) in un periodo di 15 croci sopra la SMA (media mobile semplice) in un periodo di 15 anni, e le uscite alla chiusura dei mercati di ogni giorno. Per farlo, abbiamo semplicemente aprire la procedura guidata di strategia, assegnare la nostra strategia un nome, e sono stati confrontati con la seguente schermata, che ci permette di definire fino a 10 diverse serie di condizioni, che, quando attivato, porteranno ad un'azione specifica (di solito una voce, o di uscita): Quando clicchiamo il componente aggiuntivo, nella finestra in alto, si sono confrontati con la seguente schermata: Come si può vedere, Ive ha semplicemente scelto EMA a sinistra, e SMA a destra, e Ive ha cambiato i nostri valori Periodo per ogni a 15. Nel centro, Ive ha cambiato la selezione a discesa per CrossAbove. Premendo ok, riempie la porzione superiore della schermata più in alto. Ill ora dirgli di entrare long, quando si verifica questo grilletto, e fare clic su OK: E questo è tutto. Clicchiamo attraverso i prossimi, i nostri savescompiles strategia, e sono stati liberi di backtest per determinare i suoi risultati commerciali nel periodo storico, utilizzando la piattaforma NT. Certo, questa è una strategia unidimensionale (e certamente andrei essere una redditizia), ma la sua un esempio di come facilmente si può creare una strategia di trading automatico, assumendo la logica entryexit può essere quantificato utilizzando le loro opzioni building-block, che sono abbastanza ampia se sei creativo. Infine, lascia a piedi, attraverso una caratteristica di più. Diciamo che non sapevamo cosa i valori di periodo media mobile sono ottimali, nella nostra strategia esempio. Diciamo che vogliamo testare più valori, per aiutare a determinare quali valori potrebbero essere l'ideale. Per farlo, ci limitiamo a premere Indietro, e sono stati confrontati con questa schermata: Come si può vedere Ive ha creato due variabili, e nomi, sopra. PeriodOne agirà come il valore del periodo della nostra media mobile EMA, e PeriodTwo agirà come il valore del periodo della nostra media mobile SMA. Ora, clicco successivo e tornare al nostro schermo di ingresso-condizioni, e ancora una volta aprire il Generatore di condizioni, e ho semplicemente cambiare il nostro 15 valori ai nostri nuovi valori-nome della variabile (PeriodOne e PeriodTwo, rispettivamente): Che cosa questo ci permette di fare, è lanciare un ottimizzazione, che procederà al backtest diversi valori di periodo per entrambi questi media mobile, e successivamente visualizzare i risultati di ciascuna prova, per il nostro esame. Ive andato avanti ed eseguire questa ottimizzazione, che ha avuto solo un minuto o due, utilizzando petrolio greggio, e di 15 minuti incrementi bar come il nostro set di dati: Come si può vedere nella colonna Parametri mano destra, che ha testato diverse combinazioni di valori del periodo, e ha classificato tutti i risultati in base al totale utile netto conseguito nel periodo storico della nostra gamma di test (312.015-112.017, in questo caso). Anche questo è un esempio estremamente semplice, per illustrare un punto, ma il punto è uno valido. soprattutto nelle prime fasi, quando sei sperimentando e testando varie cose, si può andare dalle fasi idea, per un risultato backtest che mostra esattamente ciò che idea wouldve ha prodotto nel corso del periodo storico, entro pochi minuti, anche senza alcuna conoscenza programmingcoding. Inoltre, vi è un pulsante Visualizza codice in alcune delle immagini di cui sopra, che ti permette di vedere chiaramente come la vostra diversi building-blocchi selezionati si traducono in codice praticabile, un ottimo modo per aiutare a imparare il processo di codifica, nel corso del tempo. Il mio consiglio saltare a destra in, sperimentare, giocare in giro. molto può essere appreso, rapido ed efficiente, così facendo. soprattutto per coloro che imparano attraverso la pratica. al contrario di assorbendo lunghe, ponderose, testi didattici a secco. Spero che questo sia utile. Godetevi 660 Visualizzazioni middot middot View upvotes Not for Reproduction Mi chiedi come creare un sistema di negoziazione in NinjaTrader (NT) e prova di nuovo esso. Si può fare, ma non è facile. Senza entrare in codifica e software architecturedesign, posso solo dare un'idea generale di come si possa andare su di esso. Il primo passo è quello di scrivere un sistema di trading. Semplificando, si tratta di diverse parti:. (I) scrivere un modulo che conterrà tutti i vari allestimenti per i mestieri che si desidera eseguire (Identificare la condizione (s) che costituiscono l'occasione ottimale per entrare in un commercio Questo dipenderà i suoi criteri, e si può avere più set up), (ii) scrivere un modulo che cercherà per quei set up nei dati in tempo reale, (iii) scrivere un modulo che catalogare e salvare le allestimenti si trovano in i dati in tempo reale, e (iv) scrivere un modulo che eseguirà un commercio sulla base di uno qualsiasi di questi set up. Questo di per sé è impegnativo quanto questo deve essere fatto in tempo reale. Inoltre, è necessario gestire i casi in cui si trova molteplici allestimenti che possono essere che indicano traffici nello stesso o in direzioni opposte (i. E. Lunghe e corte). È inoltre necessario considerare gli obiettivi, criteri di redditività per il set up, stop loss e criteri finali. Ultimo, ma certamente non meno importante, è necessario pensare a scalare dentro e fuori strategie con il vostro commercio impostare criteri. Per inciso, non ho nemmeno menzionato componenti di verifica e la gestione degli errori del codice, che sarà necessario affrontare pure. Per fare questo in modo efficace, è necessario infilare questo codice. Il problema con la scrittura di questo nel NT è che NT supporta solo un sottoinsieme del linguaggio C e attualmente fornisce solo un supporto per il framework 3.5. Questo significa che sarà necessario scrivere in C come una DLL e fare riferimento nel codice NT. Ora che avete scritto la DLL per identificare un mestiere, è necessario scrivere il codice per eseguire il commercio. NT offre un approccio gestito e non gestito una per fare questo. Attualmente uso e il codice NT, e devo dire che questa parte del NT non è ben documentata, almeno non ho trovato che fosse, ma in tutta onestà, è possibile avere un aiuto da parte del personale NT sul loro forum di supporto. Si vuole usare il metodo non gestito per questo per ottenere la massima flessibilità. Naturalmente si vuole implementare una struttura di database nel codice per accedere vostri commerci. Questa parte del programma sarà una sfida così, perché ci sono alcuni problemi che si incontrano qui. Ogni commercio dovrà essere verificato, dovranno essere sequenziato e monitorati molto bene gli ordini, e avrà bisogno di essere guardato con attenzione, soprattutto la vostra posizione se si prevede anche di entrare traffici invertendo le posizioni. Ora che avete ottenuto fino a questo punto, è possibile scrivere una strategia NT per eseguire il test del sistema. Anche in questo caso, l'approccio non gestito sarà di massimo valore qui in quanto offre la massima flessibilità per voi. Ancora una volta, questo codice è difficile e non documentato particolarmente bene. Tuttavia, può essere fatto. Congratulazioni, si è ora fatto di codifica e può iniziare a testare il codice dal vivo. Sarà forse necessario modificare il codice a che fare con le condizioni in tempo reale in dati in tempo reale. A seconda dei mercati che si prevede per il commercio, è necessario pensare a come si intende gestire il commercio durante i rapporti, tenendo le posizioni durante la notte, limiti operativi, così come quando il commercio è sospesa dallo scambio. Supponendo di aver fatto tutto questo, ora avete un sistema di trading di nuovo testato su NT. Come ho già detto, non è facile ma è certamente fattibile. Dopo aver fatto questo, essere preparati per ore e ore (e ore) di lavoro e di test. Quando ho iniziato, ho grossolanamente sottovalutato lo sforzo richiesto. 1.5K Visualizzazioni middot View upvotes middot non per ReproductionHow di backtest sistemi di trading e di evitare curve fitting Per giudicare quanto bene un dato sistema di trading dovrebbe funzionare in futuro, ci Backtest su dati di mercato del passato. Backtesting applica una serie di regole di negoziazione di dati storici per stimare tali norme avrebbero effettuato se in realtà li aveva scambiati. Buone ipotetici risultati storici non garantiscono che un insieme di regole funzionerà bene in futuro. Tuttavia, poveri ipotetici risultati storici quasi sicuramente significa un sistema non deve essere scambiato in tempo reale. Il valore percepito di backtesting è radicata nella convinzione che le tendenze storiche ripetono. I commercianti hanno testato le strategie sui dati storici per generazioni. Tuttavia, la pratica è diventato popolare con l'avvento dei personal computer e software di sistema-test appositamente costruito. come il sistema di Writer, che si è evoluta in TradeStation. Questo software e un database di dati storici ammessi coloro che non hanno uno sfondo di codice-scrittura per testare idee sistema di trading. La più ampia comprensione e l'accettazione di sistemi di trading, così come la frustrazione molti incontrato quando si cerca di costruire sistemi di negoziazione per conto proprio, hanno aiutato il mercato dei sistemi di terze parti prosperare in tutto il 1990. Futures La verità è una società indipendente che ha monitorato i sistemi di trading disponibili sul mercato dal 1980. Attualmente, tiene traccia più di 500 sistemi. Futures Truth test sistemi di trading in tempo reale, non su dati storici. Questo impedisce la modifica delle regole nel tempo e una migliore esecuzione Simula regola in reali condizioni di mercato, come ad esempio i periodi di elevata volatilità. Secondo Futures verità, solo circa il 45 dei sistemi monitorati sono redditizia nel lungo termine, mentre solo 20 hanno mostrato un buon rapporto riskreward. Tuttavia, questi numeri probabilmente sono migliori delle populationrsquos più ampi, perché solo i fornitori veramente fiduciosi nella loro logica capovolgerlo per Futures verità per l'analisi in tempo reale e la critica pubblica. Tanti sistemi falliscono perché non hanno una premessa valida. Invece, i parametri di ingresso e di uscita sono derivati ​​da mining. Data mining esegue la scansione semplicemente i dati storici per le regole che avrebbero lavorato in passato. Spesso, tali norme sono in forma proprio per il passato e non hanno alcuna speranza di lavorare meglio di casuale su dati invisibili. Invece, lo sviluppo del sistema dovrebbe iniziare con una teoria che può essere testato, analizzato e messo a punto per l'applicazione. Questo concetto implica anche una prospettiva differente sul sistema di collaudo stesso: L'obiettivo di backtesting non è di produrre una raccolta di dati statistici profitti e perdite ipotetiche. E 'per verificare la validità della teoria e la precisione delle regole nel catturare premessa. test di sistema è un processo multiforme dai dati, per la scala temporale, per ordinare le ipotesi di ingresso, di contrarre specifiche e controllo del rischio. In mancanza, in qualsiasi di questi può rovinare un mdash prova altrimenti valido o, manipolando li possono generare risultati che sono di gran lunga superiore rispetto a quello che vorremmo realizzare in tempo reale. Hai bisogno di fare bene se si spera di convalidare mdash o se del caso, invalidare mdash il sistema. Gli strumenti del mestiere ci sono due elementi di backtesting: La corretta Software Tools mdash e mdash dei dati e un metodo scientifico per lo sviluppo di sistemi che utilizzano questi strumenti. Letrsquos iniziare a guardare gli strumenti del mestiere. sono disponibili per testare le vostre idee molte opzioni. Si differenziano per la facilità di trasformare le idee in codice e nel modo in cui gestiscono i dettagli, che possono avere un forte impatto sui risultati. Ad esempio, se un sistema entra in un ordine limite, alcuni software registra un riempimento se viene toccata quel prezzo. Tuttavia, non vi è quasi una garanzia di un tale ordine sarebbe stato riempito nel trading reale, né vi è una garanzia che wonrsquot essere. Entrando su fermate garantisce una voce, ma non un prezzo. Un altro problema sta registrando prezzi reali. Mentre la maggior parte del software sviluppato professionalmente non ha più questo problema, è ancora una preoccupazione per chi prova manualmente sistemi in fogli di calcolo, come Microsoft Excel. Ad esempio, se un sistema acquista su una fermata uguale al close più di un terzo della quantità media degli ultimi tre periodi, e se la gamma media è 10, allora stiamo comprando al termine più 3.333. Se noi stiamo trading E-mini SampP 500, che commercia in 0.25 dimensioni tick. Questo significa che il differenziale voce deve arrotondare fino a 3,50. Un commerciante di inizio non può realizzare questo se macinare manualmente i numeri, ed è wasnrsquot troppo tempo fa che molti programmi professionali commesso lo stesso errore. Nel corso del tempo, un tale errore potrebbe aggiungere fino a una discrepanza considerevole. Nel quadro generale, tuttavia, tali dettagli procedurali sono minori. Il grande problema è dati. ArticlesHow relativi al sistema di scambio backtest Ciao. Im un commerciante noobie e finora sono riuscito a ottenere 5k conto forex demo fino a circa 4k in un mese. Im non troppo felice del risultato, ma in ogni modo. Ho letto su diversi sistemi di trading, rapirforex includig, sorprendente sistema di forex, surf, 123-froex, infallibile forex trading e dei profitti esplosivi per citarne alcuni. Vorrei provare quelli del sistema, e tutti gli altri sistemi io possa trovare utilizzando i dati storici di mercato. Im primarly alla ricerca di un rapporto di successo per il sistema ach. Ho fatto qualche ricerca in rete, ma non posso localizzare qualsiasi cosa nulla di costruttivo. Quale software avrei bisogno di farlo. Dove avrei ottenere dati di mercato forex histirical. Eventuali siti web particolari che dovrei chack fuori. Grazie in anticipo. 30 gennaio 2005, 22:56 Registrato Nov 2004 andare a spreadtrade2win un grande sistema e forum e tutto gratis. 31 Gennaio 2005, 06:53 Iscritto Mar 2004 Scritto da: aberry andare a spreadtrade2win un grande sistema e forum e tutto gratis. Un buon software backtestting, youll bisogno di fare un po 'di programmazione, al fine di utilizzarlo tho (come la programmazione va non è così spaventoso) Originariamente Scritto da SOCRATES C'è un sacco di discussioni su siti web di trading sul tema di backtesting. Questo incuriosisce e mi lascia perplesso enormemente. C'è anche un sacco di discussioni relative ai sistemi. Quali sono questi sistemi si sta parlando Mi sembra che si può parlare di verificare l'efficacia di un particolare software. E 'corretto Sembra anche a me si può essere discutendo i meriti oi demirits di metodi particolari. È che anche corretto o meno Sì, Im cercando di testare il sistema su dati storici per trovare ut quanto accurata sia nel lungo periodo. Il sistema non è un software. Il suo sistema di un trading, vale a dire la sua presunta sottolineare buoni segnali buysell con la massima accuratezza, eventualmente sulla base di Analysys tecnici. E, BTW, im un programmatore per l'istruzione, in modo programmazione non è un problema per me Scritto da: SOCRATES C'è un sacco di discussioni su siti web di trading sul tema di backtesting. Questo incuriosisce e mi lascia perplesso enormemente. C'è anche un sacco di discussioni relative ai sistemi. Quali sono questi sistemi si sta parlando Mi sembra che si può parlare di verificare l'efficacia di un particolare software. E 'corretto Sembra anche a me si può essere discutendo i meriti oi demirits di metodi particolari. È che anche corretto o meno non posso parlare per altri manifesti, io personalmente uso il software di backtesting come mezzo di sperimentazione e di apprendimento di strategie diverse. Sono anche un programmatore di professione quindi è un modo abbastanza familiare e confortevole di mettermi alla prova idee con i dati veri e propri. I dont presumo che solo perché una strategia ha funzionato in passato, che funzionerà in futuro, ma vorrei assumere che ha una maggiore possibilità di farlo.

Comments