Wednesday 1 November 2017

Backtesting Excel Forex Trading


Utilizzo di Excel to Back Strategie di Trading prova Come eseguire il test con Excel Ive fatto una buona dose di strategia di trading back testing. Ive ha usato sofisticati linguaggi di programmazione e algoritmi e Ive fatto anche con carta e matita. Non è necessario essere uno scienziato o di un programmatore per eseguire il test di molte strategie di trading. Se è possibile utilizzare un foglio di calcolo come Excel, allora è possibile eseguire testare molte strategie. L'obiettivo di questo articolo è quello di mostrare come eseguire il test di un strategia di trading utilizzando Excel e una fonte accessibile al pubblico dei dati. Questo non dovrebbe costare più di quanto il tempo necessario per fare il test. Prima di iniziare a testare qualsiasi strategia, è necessario un set di dati. Al minimo si tratta di una serie di datetimes e dei prezzi. Più realisticamente è necessario il datetime, aperto, alto, basso, prezzi di chiusura. In genere è necessario solo il componente temporale della serie di dati se si sta testando strategie di trading intraday. Se si vuole lavorare insieme e imparare a eseguire il test con Excel mentre tu sei la lettura di questo quindi seguire i passi che ho delineare in ogni sezione. Abbiamo bisogno di ottenere alcuni dati per il simbolo che stiamo per eseguire il test. Vai a: Yahoo Finanza Nel campo Inserisci Simbolo (s) immettere: IBM e cliccare andare sotto Citazioni sulla mano sinistra lato click Dati storici e immettere la intervalli di date che si desidera. Ho selezionato dal 1 Gen 2004 al 31 Dicembre 2004 Scorrere fino al fondo della pagina e fare clic su Scarica in foglio di calcolo salvare il file con un nome (ad esempio ibm. csv) e in un luogo che in seguito sarà possibile trovare. Preparazione dei dati di aprire il file (che si è scaricato in precedenza) utilizzando Excel. A causa della natura dinamica di Internet, le istruzioni che hai letto sopra e il file che si aprono potrebbero essere cambiati con il tempo di leggere questo. Quando ho scaricato questo file top poche righe si presentava così: È ora possibile eliminare le colonne che non sei intende utilizzare. Per la prova che sto per fare io uso solo la data, aperto e valori prossimi così ho cancellato l'Alto, Basso, Volume e Adj. Vicino. Ho anche risolto i dati in modo che la data più antica è stata la prima e l'ultima data era in fondo. Utilizzare le opzioni di menu - gt ordinare i dati per fare questo. Invece di testare una strategia di per sé Im andando a cercare di trovare il giorno della settimana che ha fornito il miglior ritorno se hai seguito un buy all'aperto e vendere la chiusura strategia. Ricordate che questo articolo è qui per farvi conoscere come utilizzare Excel per eseguire le strategie di test. Si può costruire su questo andare avanti. Ecco il file ibm. zip che contiene il foglio di calcolo con i dati e le formule per questo test. I miei dati risiedono ora in colonne da A a C (Data, Open, Close). Nelle colonne D a H, ho posto formule per determinare il rendimento di un giorno particolare. Entrando le formule La parte difficile (a meno che non sei un esperto di Excel) è lavorare fuori le formule da utilizzare. Questa è solo una questione di pratica e più si pratica il più formule youll scoprire e la maggiore flessibilità hanno youll con il test. Se avete scaricato il foglio di calcolo, allora date un'occhiata alla formula nella cella D2. Ecco come si presenta: Questa formula viene copiato tutte le altre cellule in colonne D a H (tranne la prima fila) e non ha bisogno di essere regolato una volta che è stato copiato. brevemente Ill spiegare la formula. La formula IF ha una condizione, vero e falso parte. La condizione è: Se il giorno della settimana (convertito in un numero da 1 a 5 che corrisponde Lunedi a Venerdì) è lo stesso del giorno della settimana nella prima riga di questa colonna (D1) poi. La vera parte della dichiarazione (C2-B2) ci dà semplicemente il valore della prossimità - Apri. Ciò indica che abbiamo comprato l'Open e venduto la Chiudere e questo è il nostro profitloss. La falsa parte della dichiarazione è una coppia di virgolette (), che mette nulla nella cella se il giorno della settimana non corrisponde. I segni alla sinistra della lettera colonna o numero di riga blocca la colonna o riga in modo che quando la sua copiato quella parte del cambiamento doesnt riferimento di cella. Quindi, qui nel nostro esempio, quando la formula viene copiata, il riferimento alla cella A2 data cambierà il numero di riga se il suo copiato in una nuova riga ma la colonna rimarrà a colonna A. È possibile nidificare le formule e fare le regole eccezionalmente potenti ed espressioni. I risultati alla parte inferiore delle colonne nei giorni feriali che hanno posto alcune funzioni di rappresentazione. In particolare le funzioni di media e Somma. Questi ci mostrano che nel corso del 2004 il giorno più redditizio per attuare questa strategia era di Martedì e questo è stato seguito da vicino da un Mercoledì. Quando ho provato la scadenza venerdì - strategia rialzista o ribassista e ha scritto questo articolo ho usato un approccio molto simile con un foglio di calcolo e formule come questo. L'obiettivo di questo test era di vedere se in previsione della scadenza di venerdì erano generalmente rialzista o ribassista. Provalo. Scarica alcuni dati da Yahoo Finance. caricarlo in Excel e provare le formule e vedere cosa si può trovare con. Pubblica le tue domande nel forum. Buona fortuna e strategia proficua huntingUse Excel per backtest una strategia di trading con un stop-loss ATR Questo post continua la serie di video di articoli su come utilizzare Microsoft Excel per backtest strategie di trading. In questo post vi mostro come calcolare uno stop-loss utilizzando l'ATR e poi come backtest della strategia di trading. L'Average True Range Sviluppato da J. Welles Wilder l'ATR è molto popolare con i commercianti. Di per sé, l'ATR può essere utilizzato per misurare la volatilità del mercato e fascia di mercato. E 'anche spesso utilizzato in altri indicatori tecnici, come l'indicatore SuperTrend e l'ADX. Uno degli usi più popolari per l'ATR è stato sviluppato da Chuck LeBeau e si riferisce a come l'uscita lampadario. L'uscita lampadario imposta la distanza stop-loss come multiplo del ATR. L'ATR reagisce alle condizioni di mercato in modo che quando le cose sono calme, lo stop-loss sarà relativamente vicino e quando le cose sono volatili, la stop-loss sarà più lontano. Formule usate: HL decrescente H-PC abs (High-Chiusura precedente) L-PC abs (Low-Chiusura precedente) True Range max (range) ATR media (range) SL ATRFactor massima settimanale drawdown basso Chiusura precedente Trading strategia, se (F34gtG34, IF (N35gtM34, ((F34-M34) F34) Q34, (F35F34) Q34), Q34) Condividi questa: QSForex è un backtesting open-source event-driven e la piattaforma di trading dal vivo per l'uso in cambi (Forex ) mercati, attualmente in uno stato alfa. E 'stato creato come parte della serie Forex Trading Diario su QuantStart di fornire alla comunità di trading sistematico con un robusto motore di trading che permette di implementazione e test strategia semplice forex. Il software viene fornito con una licenza MIT permissiva (vedi sotto). Open-Source - QSForex è stato rilasciato sotto estremamente permissiva open-source licenza MIT, che permette l'uso completo in applicazioni sia di ricerca e commerciali, senza restrizioni, ma senza la garanzia di alcun genere. Gratuito - QSForex è completamente gratuito e non costa nulla per scaricare o utilizzare. Collaborazione - Come QSForex è open-source molti sviluppatori collaborano per migliorare il software. Le nuove caratteristiche sono aggiunte di frequente. Qualsiasi bug sono rapidamente determinati e fissi. Sviluppo Software - QSForex è scritto nel linguaggio di programmazione Python per semplice supporto cross-platform. QSForex contiene una serie di test di unità per la maggior parte del suo codice di calcolo e di nuovi test vengono aggiunte costantemente per nuove funzionalità. Event-Driven Architecture - QSForex è completamente sia per backtesting e trading dal vivo, che porta a transizione immediata delle strategie da una fase researchtesting ad una implementazione di trading dal vivo event-driven. Costi di transazione - i costi di spread sono incluse per impostazione predefinita per tutte le strategie backtested. Backtesting - QSForex dispone intraday tick risoluzione più giorni multi-valuta coppia di backtesting. Trading - QSForex attualmente supporta trading intraday dal vivo utilizzando l'API Brokerage OANDA attraverso un portafoglio di coppie. Metriche delle prestazioni - QSForex attualmente supporta la misurazione delle prestazioni di base e la visualizzazione patrimonio attraverso le librerie di visualizzazione matplotlib e Seaborn. Installazione e Uso 1) Visita oanda e la configurazione di un account per ottenere le credenziali di autenticazione API, che sarà necessario effettuare trading dal vivo. Spiego come realizzare questo fuori in questo articolo: quantstartarticlesForex-Trading-diario-1-automatizzato-Forex-Trading-con-la-OANDA-API. 2) Clone questo repository git in una posizione adatta sul computer utilizzando il seguente comando nel terminale: git clone githubmhallsmooreqsforex. git. In alternativa è possibile scaricare il file zip del ramo principale corrente githubmhallsmooreqsforexarchivemaster. zip. 3) Creare un set di variabili di ambiente per tutte le impostazioni presenti nel file settings. py nella directory principale dell'applicazione. (.) In alternativa, è possibile difficile codificare le impostazioni specifiche sovrascrivendo la os. environ. get inviti a ciascuna impostazione: 4) Creare un ambiente virtuale (virtualenv) per il codice QSForex e utilizzare pip per installare i requisiti. Per esempio in un sistema basato su Unix (Mac o Linux) si potrebbe creare una tale directory come segue inserendo i seguenti comandi nel terminale: Questo creerà un nuovo ambiente virtuale per installare i pacchetti in. Ipotizzando di aver scaricato il repository git QSForex in una directory ad esempio come projectsqsforex (cambiare questa directory sotto a dove è stato installato QSForex), quindi al fine di installare i pacchetti sarà necessario eseguire i seguenti comandi: Questo richiederà un certo tempo come NumPy, SciPy, Panda, scikit-learn e Matplotlib deve essere compilato. Ci sono molti pacchetti necessari per far funzionare tutto questo, quindi per favore dare un'occhiata a questi due articoli per ulteriori informazioni: Sarà inoltre necessario creare un link simbolico dalla directory site-packages per la directory di installazione QSForex in modo da essere in grado di chiamare importare qsforex all'interno del codice. Per fare questo è necessario un comando simile al seguente: assicurarsi di modificare projectsqsforex alla directory di installazione e venvqsforexlibpython2.7site-pacchetti nella directory di pacchetti sito virtualenv. Ora sarà in grado di eseguire correttamente i comandi successivi. 5) A questo punto, se si desidera semplicemente effettuare pratica o trading dal vivo, allora è possibile eseguire python tradingtrading. py. che utilizzerà la strategia di trading TestStrategy predefinita. Questo acquista o vende semplicemente una coppia di valute ogni 5 tick. E 'puramente per il test - non usarlo in un ambiente di trading dal vivo Se si desidera creare una strategia più utile, quindi è sufficiente creare una nuova classe con un nome descrittivo, ad esempio MeanReversionMultiPairStrategy e assicurarsi che ha un metodo calculatesignals. Sarà necessario passare questa classe List le coppie così come la coda di eventi, come in tradingtrading. py. Si prega di guardare strategystrategy. py per i dettagli. 6) Al fine di procedere a qualsiasi backtesting è necessario produrre dati forex simulati o scaricare i dati storici tick. Se si desidera provare semplicemente il software fuori, il modo più rapido per generare un esempio backtest è quello di generare alcuni dati simulati. Il formato dei dati corrente utilizzata dalla QSForex è la stessa di quella fornita dal feed Dukascopy dati storici a dukascopyswissenglishmarketwatchhistorical. Per generare alcuni dati storici, assicurarsi che l'impostazione CSVDATADIR in settings. py è quello di impostare una directory in cui si desidera che i dati storici di vivere. È quindi necessario eseguire generatesimulatedpair. py. che è sotto la directory degli script. Si aspetta un unico argomento da riga di comando, che in questo caso è la coppia di valute in formato BBBQQQ. Per esempio: In questa fase lo script è hardcoded per creare un unico mesi di dati per gennaio 2014. Cioè, si vedrà singoli file, del formato BBBQQQYYYYMMDD. csv (ad es GBPUSD20140112.csv) appaiono nel tuo CSVDATADIR per tutti i giorni di quel mese. Se si desidera modificare il monthYear monthYear dell'uscita dei dati, è sufficiente modificare il file e ri-run. 7) Ora che i dati storici è stato generato, è possibile effettuare un backtest. Il file backtest si è memorizzato in backtestbacktest. py. ma questa contiene solo la classe Backtest. Per eseguire in realtà un backtest è necessario creare un'istanza di questa classe e di fornire con i moduli necessari. Il modo migliore per vedere come questo viene fatto è quello di guardare l'esempio Moving implementazione media crossover nel file examplesmac. py e utilizzare questo come un modello. Questo fa uso della MovingAverageCrossStrategy che si trova in strategystrategy. py. L'impostazione predefinita è il commercio sia GBPUSD e EURUSD per dimostrare multipla utilizzo coppia di valute. Esso utilizza i dati si trovano in CSVDATADIR. Per eseguire l'esempio backtest, è sufficiente eseguire il seguente: Questo richiederà un certo tempo. Sul mio sistema desktop di Ubuntu a casa, con i dati storici generati tramite generatesimulatedpair. py. ci vogliono circa 5-10 minuti per l'esecuzione. Una gran parte di questo calcolo si verifica alla fine del backtest reale, quando il prelievo viene calcolato, quindi si prega di ricordare che il codice non ha riagganciato Si prega di lasciarla fino al completamento. 8) Se si desidera visualizzare le prestazioni del backtest si può semplicemente utilizzare output. py per visualizzare una curva di equità, i rendimenti di periodo (cioè tick-per-tick rendimenti) e una curva di prelievo: E questo è tutto In questa fase si è pronti per iniziare a creare i propri backtests modificando o aggiungendo le strategie in strategystrategy. py e utilizzando i dati reali scaricati da Dukascopy (dukascopyswissenglishmarketwatchhistorical). Se avete domande circa l'installazione quindi non esitate a scrivermi a mikequantstart. Se si dispone di eventuali bug o altri problemi che si ritiene possa essere dovuto al codice di base specificamente, sentitevi liberi di aprire un problema Github qui: githubmhallsmooreqsforexissues Copyright (c) 2015 Michael Hall-Moore L'autorizzazione è concessa, a titolo gratuito, a qualsiasi persona ottenere una copia di questo software e dei file di documentazione associati (il software), per il software senza restrizioni, compresi, senza limitazione i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in licenza, copie Andor vendita del software, e per permettere alle persone a cui viene fornito il Software di farlo, fatte salve le seguenti condizioni: l'avviso di copyright e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software. IL SOFTWARE VIENE FORNITO COSÌ COM'È, SENZA ALCUN TIPO DI GARANZIA, ESPLICITA O IMPLICITA, INCLUSE, MA NON SOLO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI o copyright TITOLARI ESSERE RESPONSABILI PER RIVENDICAZIONI, DANNI O ALTRE RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, ILLECITO O ALTRO, DERIVANTI DA, O IN RELAZIONE AL SOFTWARE O L'UTILIZZO O ALTRI RAPPORTI CON IL SOFTWARE. Forex Trading responsabilità trading in valuta estera sul margine comporta un alto livello di rischio, e potrebbe non essere adatto a tutti gli investitori. I rendimenti passati non sono indicativi di risultati futuri. L'alto grado di leva può funzionare contro di voi e per voi. Prima di decidere di investire in valuta estera si deve considerare attentamente i vostri obiettivi di investimento, livello di esperienza e propensione al rischio. Esiste la possibilità che si possa sostenere una perdita di alcuni o tutti vostro investimento iniziale e quindi non si dovrebbe investire denaro che non può permettersi di perdere. È necessario essere consapevoli di tutti i rischi associati con trading in valuta estera, e chiedere il parere di un consulente finanziario indipendente se avete dei dubbi.

No comments:

Post a Comment