Monday 9 October 2017

Forex Neurali Network Ingressi


Descrizione: Due Forex - utilizzando la rete di distribuzione diretta indicatore neurone (feedforward rete neaural), che sta imparando dalla propagazione di nuovo degli errori (backpropagation). La rete viene caricato attraverso un file DLL, C codice sorgente che è attaccato. rete neurone è niente di più di un output del modello non lineare in funzione degli ingressi. Agli ingressi serviti dati utente, come la serie tempo di campionamento. Il significato della uscita è impostata anche dall'utente, per esempio, i segnali 1 comprare 0 vendita. La struttura della rete, di nuovo impostata dall'utente. La rete è costituita da una distribuzione diretta - Lo strato ingresso (livello di input), i cui elementi sono ingressi, strati nascosti (livelli nascosti), costituito da nodi computazionali chiamati neurone s e Lo strato di output (strato di output), che consiste di una o più neurone s, i rendimenti sono rese attraverso la rete. Tutti i nodi di strati adiacenti sono collegati. Questi collegamenti sono chiamati sinapsi. Ogni sinapsi ha un peso (peso w i, j, k), che sono moltiplicati per i dati trasmessi dalla sinapsi. Dati si muove da sinistra a destra è ingressi dalla rete alle sue uscite. Da qui la rete di distribuzione diretta nome. Il campione totale di questa rete è raffigurato nella foto qui sotto i dati sono trattati neurone s in due fasi: 1. 1. Tutti gli input moltiplicato per il peso del caso, si sono aggiunti 2. 2. Quindi, l'attivazione importo risultante gestito funzione neurone (funzione di attivazione o cottura) e (attivazione o la funzione di cottura) e inviato per l'unica uscita. Il significato della funzione neurone di attivazione come è il lavoro neurone modellazione e il cervello: neurone viene attivato solo dopo l'informazione ha raggiunto una certa soglia. Negli aspetti matematici, dà solo la rete non linearità. Senza di esso, la perdita netta neurone sarebbe un modello autoregressivo lineare (modello di predizione lineare). Il neurone funzione di attivazione più comune è una funzione sigmoidale f (x) 1 (1exp (-x)) f (x) 1 (1 exp (-x)) La soglia di attivazione della funzione è 0. Questa soglia può essere spostato sull'asse orizzontale a scapito di un neurone ulteriore ingresso (input bias), e detta polarizzazione di ingresso (ingresso bias), che è assegnato un certo peso nello stesso modo degli altri ingressi neurone. Così, il numero di ingressi, livelli neurone s in ogni strato e il peso di tutto il neurone ingressi s rete neuronale, cioè modello non lineare, che si crea. Per utilizzare questo modello, è necessario conoscere il peso. I pesi sono calcolati formazione della rete su dati storici, ossia con dati di input precedenti erano noti valori del segnale di uscita. I pesi della rete sono ottimizzati per abbinare la sua uscita con la soluzione in esame. Generalmente, gli ingressi alla rete depositate diverse serie di input e corrispondenti dati di uscita e calcolato deviazione errore medio di uscita dal test della rete. La rete di formazione è di ridurre questo problema ottimizzando i pesi. Esistono diversi metodi di ottimizzazione, tra cui il modo principale posteriore propagazione degli errori (ALO) e il metodo di miglioramento genetico. Allegati: Train () Test (). File di libreria BPNN. cpp contiene due funzioni: Treno () e test (). Treno () è progettato per addestrare la rete per fornire dati di ingresso e di uscita. Test () è per il calcolo dei dati di uscita in base ai pesi ottenuti dopo l'esecuzione dei treni (). Input (colore verde) e di uscita (blu) parametri della funzione dei treni () sono: doppia inpTrain - ingresso (più vecchie prima) doppia outTarget - Imprint (prima i più vecchi) doppia outTrain - esce dalla rete dopo l'allenamento int NTR - il numero di formazione set di input-output int UEW - Gestione dei valori esterni chiave per inizializzare i pesi (1 uso extInitWt, 0 uso numeri casuali) extInitWt - valori originali di pesi doppia trainedWt - i valori dei pesi dopo l'allenamento int numLayers - numero di strati nella rete tra cui ingresso, nascosto e di uscita int LSZ - numLayers dimensione della matrice, che ha mantenuto il numero di neuroni s in ogni strato. lSz0 LSZ 0 specifica il numero di rete di ingressi int OAF - una caratteristica fondamentale nell'attivazione di uscita neurone s (1 funzione abilitata, 0 no) doppia LR - allenamento della velocità doppia MF - il momento di imparare tasso int NEP - il numero massimo di fasi di formazione (epoche). Epoch è costituito da controllare tutti i set di allenamento. doppia maxMSE - errori, in cui l'apprendimento ferma media. Input (verde) e di uscita (blu) parametri della funzione test () sono: doppio inpTest - dati di input (più vecchi prima) doppia outTest - Colophon int NTT - set di dati di ingresso e di uscita doppio extInitWt - valori originali di pesi numLayers - numero dei livelli nella rete, tra cui ingresso, nascosto e di uscita int LSZ - numLayers dimensione della matrice, che ha mantenuto il numero di neuroni s in ogni strato. l LSZ 0 specifica il numero di rete ingressi int OAF - una caratteristica fondamentale nella attivazione dell'uscita neurone s (1 funzione abilitata, 0 no) Utilizzando l'attivazione dell'uscita neurone s dipende dalla natura della produzione. Se i segnali di uscita della rete sono binomiale (0 1), quindi è necessario utilizzare la funzione di attivazione (OAF 1). Se l'uscita è una previsione del prezzo, la funzione di attivazione a livello di uscita non è necessaria (OAF 0). Esempi di indicatori utilizzati neurone rete: BPNN Predictor. mq4 - prevedere i prezzi futuri. parametri di input di rete sono i relativi incrementi dei prezzi: x apro testbar Aperto ritardo testbar i -1.0, quando il ritardo ho tratto dalla serie di Fibonacci. Uscita Rete si prevede un aumento relativo dei prezzi futuri. funzione di attivazione a livello di output è disattivata. I parametri di input sono un indicatore extern int lastBar - il numero delle ultime bar extern int futBars - il numero di futuro predetto bar extern int numLayers - numero di livelli nella rete, tra cui ingresso, nascosto e l'uscita extern int numInputs - il numero di ingressi di rete extern int numNeurons1 - il numero di neuroni s in un numero di layer 1 extern int numNeurons2 - il numero di neuroni s nel numero di layer 2 extern int numNeurons3 extern int numNeurons4 extern int numNeurons5 extern int NTR - il numero di set di formazione di extern input-output doppio LR - la velocità della rete di apprendimento extern doppia MF - coefficiente di tempo rete di apprendimento extern int NEP - il numero massimo di passaggi di formazione (epoche) extern int maxMSEpwr - esponente utilizzato per calcolare l'apprendimento errore quadratico medio massimo ammissibile maxMSE 10 maxMSEpwr Compra e Vendi Classificator. mq4 - buysell. Compra e Vendi Classificator. mq4 - Indicatore predittivo segnali di compra vendita. Come nell'esempio precedente, la rete di ingresso servita xiOpentestbarOpentestbardelayi-1,0 x i Aprire testbar Aperto ritardo testbar i -1.0 per bar, che in passato hanno ricevuto il segnale di acquisto o vendita. Questi ultimi segnali sono ideali come segnali di ingresso per ottenere un determinato profitto. segnale di uscita della rete è 1 o 0 buy sell. La funzione di strato di attivazione dell'uscita. int extern lastBar - numero dell'ultimo bar extern int minProfit - il profitto minimo, al fine di trovare il punto di ingresso ideale in passato extern doppia soglia - la soglia per riconoscere i segnali di uscita da 0 o 1 extern int numLayers - numero di strati in la rete, tra cui ingresso, numInput nascosto e in uscita extern int - il numero di ingressi di rete extern int numNeurons1 - il numero di neuroni s in un numero di layer 1 extern int numNeurons2 - il numero di neuroni s nel numero di layer 2 extern int numNeurons3 extern int numNeurons3 extern int numNeurons4 extern int numNeurons4 extern int numNeurons5 extern int NTR - il numero di set di formazione di ingresso-uscita (dipende dal numero di segnali di vendita buy in passato, 0 seleziona tutti i segnali validi) extern doppio LR - la velocità di apprendimento rete extern doppia MF - coefficiente di tempo rete di apprendimento extern int NEP - il numero massimo di passaggi di formazione (epoche) extern int maxMSEpwr - esponente utilizzato per calcolare l'apprendimento massimo ammissibile quadratico medio errore maxMSE 10 maxMSEpwr freccia a destra della verticale linee verdi indicano acquistare segnali di vendita generati dalla rete per testare i futuri bar. Le frecce a sinistra mostra il punto di ingresso ottimale in passato. Installazione di file: allegata copia del file DLL in C: Program Files MetaTrader 4 esperti librerie Consente l'uso di DLL in MetaTrader: Strumenti - Opzioni - Expert Advisor - Permetti importazioni DLL Se il file DLL non funziona, compilare autonomamente. Tutti i file necessari sono contenuti in BPNN. zip. Hybrid Neural Network Stop-and Reverse-Strategie per Forex dalle reti di Michael R. Bryant neurali sono stati utilizzati in sistemi di trading per molti anni, con vari gradi di successo. La loro attrazione principale è che la loro struttura non lineare è meglio in grado di cogliere la complessità del movimento dei prezzi rispetto, regole commerciali basate su indicatori standard. Una delle critiche che è stata neurali strategie di trading basate sulla rete tendono ad essere over-fit e quindi dont eseguire bene sui nuovi dati. Una possibile soluzione a questo problema è quello di combinare reti neurali con logica strategia basata su regole per creare un tipo ibrido di strategia. Questo articolo vi mostrerà come questo può essere fatto utilizzando Adaptrade Builder. In particolare, questo articolo illustrerà la seguente: logica di combinazione di reti neurali e basato su regole per il commercio voci Un approccio dati a tre segmenti saranno utilizzati, con il terzo segmento utilizzato per convalidare le strategie finali. Il codice di strategia risultante sia per MetaTrader 4 e TradeStation verrà mostrato, e si sarà dimostrato che i risultati della convalida sono positivi per ogni piattaforma. Reti Neurali come Commercio Entry Filtri Matematicamente, una rete neurale è una combinazione lineare di uno o più ingressi ponderati che genera uno o più valori di uscita. Per negoziazione, una rete neurale è generalmente utilizzato in due modi: (1) come una previsione di movimento del prezzo futuro, o (2) come indicatore o un filtro per la negoziazione. Qui, il suo uso come filtro indicatore o commerciale sarà considerato. Come indicatore, una rete neurale agisce come una condizione aggiuntiva o un filtro che deve essere soddisfatta prima un commercio può essere inserito. Gli ingressi alla rete sono tipicamente altri indicatori tecnici, come slancio, stocastico, ADX, media mobile, e così via, così come i prezzi e combinazioni dei precedenti. Gli ingressi sono in scala e la rete neurale è progettato in modo che l'uscita è un valore tra -1 e 1. Un approccio è quello di consentire una lunga ingresso se l'uscita è maggiore o uguale ad un valore di soglia, come 0,5, e bREVE se l'uscita è inferiore o uguale al negativo della soglia es -0.5. Questa condizione sarebbe in aggiunta a qualsiasi condizioni di ingresso esistenti. Per esempio, se ci fosse una condizione entrata lungo, dovrebbe essere vero e l'uscita rete neurale dovrebbe essere almeno uguale al valore di soglia per un lungo ingresso. Quando si imposta una rete neurale, un commerciante sarebbe tipicamente il compito di scegliere gli ingressi e la topologia della rete e per quottrainingquot la rete, che determina i valori ottimali pesi. Come verrà illustrato di seguito, Adaptrade Builder esegue queste operazioni automaticamente come parte del processo di generazione evolutivo che il software è basato su. Utilizzando la rete neurale come filtro commercio permette di essere facilmente combinato con altre regole per creare una strategia di trading ibrido, che combina le migliori caratteristiche di approcci tradizionali basati su regole con i vantaggi di reti neurali. Come semplice esempio, Builder potrebbe combinare una regola di crossover media mobile con una rete neurale in modo che una posizione long viene presa quando i rapido movimento croci sopra la media la media mobile lenta e l'uscita di rete neurale è uguale o superiore la soglia. Stop-and-Reverse Strategie di Trading Una strategia di trading stop-and-reverse è uno che è sempre nel mercato, sia lungo o corto. A rigor di termini, quotstop-e-reversequot significa che si inverte il commercio quando l'ordine di arresto è colpito. Tuttavia, lo uso come una breve mano per qualsiasi strategia di trading che inverte da lungo a breve a lungo e così via, in modo che tu sei sempre sul mercato. Secondo questa definizione, non è necessario che gli ordini di essere ordini stop. Si poteva entrare e invertire usando gli ordini di mercato o limitare pure. Il relativo anche non necessario che ogni lato usa la stessa logica o anche lo stesso tipo di ordine. Ad esempio, è possibile immettere lunga (e l'uscita a breve) su un ordine di arresto ed entrare a breve (e lunga uscita) su un ordine di mercato, utilizzando le regole e le condizioni diversi per ogni entryexit. Questo sarebbe un esempio di una strategia stop-and-reverse asimmetrica. Il vantaggio principale di una strategia di stop-and-reverse è che, essendo sempre nel mercato, non perdere mai grossi movimenti. Un altro vantaggio è la semplicità. Quando ci sono le regole e le condizioni per entrare e uscire mestieri distinti, non vi è più la complessità e quanto altro può andare male. La combinazione di entrate e le uscite significa un minor numero di decisioni di temporizzazione devono essere fatte, che può significare un minor numero di errori. D'altra parte, si può affermare che le migliori condizioni per uscire da un commercio sono raramente le stesse per entrando nella direzione opposta che entrano ed escono commerci sono decisioni intrinsecamente separati che devono pertanto impiegare regole e logica separati. Un altro potenziale svantaggio di essere sempre sul mercato è che la strategia sarà il commercio attraverso ogni varco di apertura. Una grande fessura di apertura contro la posizione può significare una grande perdita prima strategia è in grado di invertire. Le strategie che entrare e uscire in modo più selettivo o che l'uscita entro la fine del giorno può ridurre al minimo l'impatto delle lacune di apertura. Dal momento che l'obiettivo è quello di costruire una strategia Forex, MetaTrader 4 (MT4) è una scelta ovvia per la piattaforma di trading, dato che MetaTrader 4 è stato progettato principalmente per forex ed è ampiamente utilizzato per la negoziazione quei mercati (si veda, ad esempio, MetaTrader vs. TradeStation : un linguaggio di confronto). Tuttavia, negli ultimi anni, TradeStation ha preso di mira i mercati forex molto più aggressivo. A seconda del volume di scambio livello di account Andor, la sua possibile scambiare i mercati forex attraverso TradeStation senza incorrere in alcun costo di piattaforma o pagare eventuali commissioni. Gli spread sono riferito stretto con buona liquidità sulle principali coppie di forex. Per queste ragioni, entrambe le piattaforme sono stati presi di mira per questo progetto. Diversi problemi sorgono quando si mira più piattaforme contemporaneamente. In primo luogo, i dati possono essere diversi su piattaforme diverse, con differenze di fuso orario, le quotazioni di prezzo per alcuni bar, il volume e intervalli di date disponibili. Per appianare queste differenze, i dati sono stati ottenuti da entrambe le piattaforme, e le strategie sono state costruite più di entrambe le serie di dati simultaneamente. Le migliori strategie erano dunque quelli che hanno lavorato bene su entrambe le serie di dati, nonostante le differenze nei dati. Le impostazioni dei dati utilizzati in Generatore Di seguito sono riportati in Fig. 1. Come si evince dalla tabella dei dati di mercato in figura, il mercato del forex dell'Eurodollaro stato preso di mira (EURUSD) con una dimensione della barra di 4 ore (240 minuti). Altre dimensioni o mercati a barre sarebbe servito altrettanto bene. Sono stato solo in grado di ottenere quanti più dati attraverso la mia piattaforma MT4 come indicato dalla intervallo di date indicato in Fig. 1 (serie di dati 2), così lo stesso intervallo di tempo è stata usata per ottenere la serie di dati equivalente da TradeStation (serie di dati 1). 80 dei dati è stato utilizzato per l'Edilizia (combinati in-campione e quotout-di-samplequot), con 20 (62.014-21.015) mettere da parte per la convalida. 80 dell'originale 80 è stato poi impostato quotin-samplequot con 20 set di quotout-campionari, quot come mostrato in Fig. 1. La diffusione bidask è stato fissato a 5 pip, e costi di negoziazione di 6 semi o 60 per lotto full-size (100.000 azioni) sono stati assunti per round-turn. Entrambe le serie di dati sono stati inclusi nella build, come indicato dai segni di spunta nella colonna di sinistra della tabella Dati di mercato. Figura 1. impostazioni dei dati di mercato per la costruzione di una strategia forex per MetaTrader 4 e TradeStation. Un altro potenziale problema quando si mira più piattaforme è che Builder è stato pensato per duplicare il modo in cui ogni piattaforma supportata calcola i propri indicatori, che può significare che i valori degli indicatori saranno diversi a seconda di quale sia selezionata la piattaforma. Per evitare questo possibile fonte di discrepanza, eventuali indicatori che valutano in modo diverso in MetaTrader 4 che in TradeStation dovrebbero essere eliminati dalla compilazione, che significa che i seguenti indicatori dovrebbero essere evitati: Tutti gli altri indicatori che sono disponibili per entrambe le piattaforme sono calcolate nello stesso modo in entrambe le piattaforme. TradeStation comprende tutti gli indicatori che sono disponibili in Builder, mentre MetaTrader 4 non lo fa. Pertanto, per includere solo gli indicatori che sono disponibili in entrambe le piattaforme, la piattaforma MetaTrader 4 deve essere selezionato come il tipo di codice in Builder. Che rimuoverà automaticamente eventuali indicatori del set build che non sono disponibili per MT4, che lascerà gli indicatori che sono disponibili in entrambe le piattaforme. Inoltre, dal momento che ho notato differenze tra i dati del volume ottenuti da ciascuna piattaforma, ho rimosso tutti gli indicatori di volume dipendente dal set di costruzione. Infine, l'indicatore del tempo del giorno è stato rimosso a causa delle differenze nei fusi orari tra file di dati. In Fig. 2, di seguito, l'elenco degli indicatori utilizzati nel set di scorte è indicata ordinato secondo se l'indicatore è stato considerato dal processo di generazione (colonna quotConsiderquot). Gli indicatori rimossi dalla considerazione per le ragioni di cui sopra sono mostrati in cima alla lista. I restanti indicatori, a partire da quotSimple Mov Avequot, erano tutti parte del set di costruzione. Figura 2. selezioni indicatore nella Builder, che mostrano gli indicatori rimosse dal set di costruzione. Le opzioni di valutazione utilizzati nel processo di generazione sono mostrati in Fig. 3. Come discusso, MetaTrader 4 è stata selezionata come la scelta di uscita codice. Dopo strategie sono costruite in Builder, una delle opzioni nella scheda Opzioni di valutazione, tra cui il tipo di codice, può essere modificata e le strategie rivalutati, che sarà anche riscrivere il codice in qualsiasi lingua sia selezionata. Questa caratteristica è stata utilizzata per ottenere il codice di TradeStation per la strategia finale dopo le strategie sono state costruite per MetaTrader 4. Figura 3. Opzioni di valutazione in Builder per la strategia EURUSD forex. Per creare strategie di stop-and-reverse, tutti i tipi di uscita sono state rimosse dal set di costruzione, come mostrato di seguito in Fig. 4. Tutti e tre i tipi di ordini di ingresso - mercato, stop, e limite - sono stati lasciati come quotconsiderquot, il che significa che il processo di compilazione potrebbe prendere in considerazione uno di essi durante il processo di compilazione. Figura 4. tipi ordine selezionato in Builder per creare una strategia di stop-and-reverse. Il software Builder genera automaticamente le condizioni di logiche basate su regole per l'uscita di entrata Andor. Per aggiungere una rete neurale alla strategia, il suo unico necessario selezionare l'opzione quotInclude una rete neurale in ingresso conditionsquot nella scheda Opzioni di strategia, come mostrato di seguito in Fig. 5. Le impostazioni di rete neurale sono stati lasciati al loro valore predefinito. Come parte della logica stop-and-reverse, l'opzione di mercato Lati è stato impostato su LongShort, e la possibilità di quotWait per l'uscita prima di entrare in nuovo tradequot era incontrollato. Quest'ultima è necessaria per consentire l'ordine di entrata per uscire dalla posizione corrente su un'inversione. Tutte le altre impostazioni sono stati lasciati ai valori di default. Figura 5. Scelte strategiche selezionate in Builder per creare una strategia ibrida utilizzando sia le condizioni basati su regole e di rete neurale. La natura evolutiva del processo di generazione in Builder è guidata dal fitness. che viene calcolato dagli obiettivi e le condizioni definite nella scheda metriche, come mostrato di seguito in Fig. 6. Gli obiettivi di compilazione sono state mantenute semplice: massimizzare il profitto netto, riducendo al minimo la complessità, che è stato dato un piccolo peso relativo al risultato netto. Maggiore enfasi è stata posta sulle condizioni di compilazione, che comprendeva il coefficiente di correlazione e il significato per la qualità strategia generale, così come le barre di media nei traffici e il numero di transazioni. Inizialmente, solo le barre di media nei traffici è stato incluso come condizione build. Tuttavia, in alcuni dei primi build, l'utile netto era stato favorito per tutta la lunghezza del commercio, così è stato aggiunto il numero-di-compravendite metriche. L'intervallo specificato per il numero di contratti (tra il 209 e il 418) è equivalente a lunghezze commerciali medie tra 15 e 30 bar in base al numero di barre nel periodo di costruzione. Di conseguenza, l'aggiunta di questa metrica mettere maggiormente l'accento sul gol di lunghezza commercio, che ha portato a più membri della popolazione con l'intervallo desiderato di lunghezze commerciali. Figura 6. obiettivi costruire e condizioni stabilite nella scheda Metriche determinano come il fitness è calcolata. I quotConditions per la selezione Top Strategiesquot duplicare le condizioni di compilazione, tranne che i primi strategie condizioni vengono valutate su tutta la gamma di dati (che non includono il segmento di convalida, che è separato), e non solo durante il periodo di costruzione, come è il caso per la costruire condizioni. Le condizioni migliori strategie vengono utilizzati dal programma di mettere da parte tutte le strategie che soddisfano tutte le condizioni di una popolazione separata. Le impostazioni finali sono effettuati sulla scheda Opzioni di creazione, come mostrato di seguito in Fig. 7. Le opzioni più importanti sono la dimensione della popolazione, il numero di generazioni, e la possibilità di ripristinare in base alle prestazioni quotout-di-samplequot. La dimensione della popolazione è stato scelto per essere grande abbastanza per ottenere un buon diversità nella popolazione pur essendo abbastanza piccolo da costruire in un tempo ragionevole. Il numero di generazioni è basata su quanto tempo ha preso nel corso di un paio preliminare costruisce per i risultati cominciano a convergere. Figura 7. opzioni BTO includono la dimensione della popolazione, numero di generazioni, e le opzioni per il ripristino della popolazione in base alle prestazioni quotout-di-samplequot. L'opzione per quotReset su Out-of-campione (OOS) Performancequot avvia il processo di compilazione dopo che il numero specificato di generazioni se la condizione specificata è soddisfatta in questo caso, la popolazione si azzera l'utile netto quotout-di-samplequot è inferiore a 20.000. Questo valore è stato scelto sulla base di test preliminari per essere un valore sufficientemente alto che probabilmente non verrebbe raggiunto. Di conseguenza, il processo di generazione è stata ripetuta ogni 30 generazioni fino all'arresto manuale. Questo è un modo per lasciare che il programma di identificare le strategie in base alle condizioni Top Strategie per un periodo prolungato di tempo. Periodicamente, la popolazione Top Strategie può essere controllato e il processo di costruzione cancellato quando si trovano strategie adeguate. Si noti che ho messo quotout-di-samplequot tra virgolette. Quando viene utilizzato il termine quotout-di-samplequot per ripristinare la popolazione in questo modo, il periodo quotout-di-samplequot non è più vero out-of-campione. Da quel periodo viene ora utilizzato per guidare il processo di generazione, la sua efficacia una parte del periodo in-campione. Ecco perché è consigliabile mettere da parte un terzo segmento per la convalida, come è stato discusso in precedenza. Dopo diverse ore di elaborazione e una serie di ricostruzioni automatiche, una strategia adeguata è stata trovata nella popolazione Top Strategies. La sua curva di commercio equità chiusa Di seguito è riportato in fig. 8. La curva di equità dimostra prestazioni coerenti in entrambi i segmenti di dati con un numero adeguato di mestieri e sostanzialmente gli stessi risultati su entrambe le serie di dati. Figura curva di equità 8. chiuso commercio per la stop-and-reverse strategia EURUSD. Per controllare la strategia nel corso del periodo di convalida, i controlli di data nella scheda Markets (vedi Fig. 1) sono stati modificati per la data di fine dei dati (2112015), e la strategia è stata rivalutati selezionando il comando Valutare dalla strategia menu Builder. I risultati sono illustrati nella Fig. 9. I risultati della convalida nel riquadro rosso dimostrano che la strategia ha tenuto su dati non utilizzati durante il processo di compilazione. Figura curva di equità 9. chiuso commercio per la strategia di stop-and-reverse EURUSD, compreso il periodo di convalida. Il controllo finale è quello di vedere come la strategia eseguita su ogni serie di dati separatamente utilizzando l'opzione di uscita codice per quella piattaforma. Questo è necessario perché, come spiegato sopra, possono esserci differenze nei risultati seconda (1) il tipo di codice, e (2) la serie di dati. Dobbiamo verificare che le impostazioni scelte ridotti al minimo tali differenze, come previsto. Per verificare la strategia per MetaTrader 4, la serie di dati da TradeStation è stata deselezionata nella scheda mercati, e la strategia è stata rivalutata. I risultati sono illustrati nella Fig. 10, che duplica la curva inferiore in Fig. 9. Figura curva di equità 10. chiuso commercio per la strategia di stop-and-reverse EURUSD, compreso il periodo di convalida, per MetaTrader 4. Infine per testare la strategia per TradeStation, è stato selezionato, le serie di dati da TradeStation e la serie per MetaTrader 4 è stata deselezionata nella scheda Mercati, l'uscita del codice è stato cambiato in quotTradeStation, quot e la strategia è stata rivalutata. I risultati sono illustrati nella Fig. 11 e sembrano essere molto simile alla curva centrale in Fig. 9, come previsto. Figura curva di equità 11. chiuso commercio per la strategia di stop-and-reverse EURUSD, compreso il periodo di convalida, per TradeStation. Il codice per entrambe le piattaforme è fornito di seguito in Fig. 12. Fare clic sull'immagine per aprire il file di codice per la piattaforma corrispondente. Esaminando il codice rivela che la parte basato sulle regole della strategia utilizza diverse condizioni di volatilità legati per i lati lunghi e corti. Gli ingressi di rete neurale sono costituiti da una serie di indicatori, tra cui il giorno della settimana, tendenza (ZLTrend), intraday alti, oscillatori (InvFisherCycle, InvFisherRSI), le bande di Bollinger, e la deviazione standard. La natura ibrida della strategia può essere visto direttamente nella dichiarazione codice (dal codice TradeStation): Se EntCondL e NNOutput GT 0.5 poi iniziare Buy (quotEnMark-Lquot) azioni NShares bar accanto al mercato di La quotEntCondLquot variabile rappresenta la voce di rule-based condizioni, e quotNNOuputquot è l'uscita della rete neurale. Entrambe le condizioni devono essere vere per effettuare l'ordine di entrata lungo. La condizione di ingresso corta funziona allo stesso modo. Figura Codice 12. Trading strategia per la strategia di stop-and-reverse EURUSD (sinistra, destra MetaTrader 4, TradeStation). Fare clic sul valore per aprire il file di codice corrispondente. Scaricare un file di progetto Builder (.gpstrat) contenente le impostazioni descritte in questo articolo. Questo articolo ha esaminato il processo di costruzione di una strategia di rete regola-basedneural ibrido per l'EURUSD con uno stop-and-reverse (sempre nel mercato) approccio con Adaptrade Builder. E 'stato dimostrato come il codice strategia può essere generato per più piattaforme per la selezione di un sottoinsieme comune di indicatori che funzionano allo stesso modo in ogni piattaforma. Le impostazioni necessarie per generare strategie che invertire da lungo a breve e posteriore sono stati descritti, ed è stato dimostrato che la strategia risultante eseguita positivamente un segmento separato convalida dei dati. Si è inoltre verificato che la strategia generato risultati simili con l'opzione dati e codici per ogni piattaforma. Come discusso in precedenza, l'approccio stop-and-reverse ha diversi svantaggi e non può piacere a tutti. Tuttavia, un approccio sempre-in-the-mercato può essere più attraente con i dati forex, perché i mercati forex commercio tutto il giorno. Di conseguenza, non ci sono lacune di sessione-apertura, e le proposte di negoziazione sono sempre attivi e disponibili per invertire il commercio quando il mercato cambia. L'utilizzo dei dati intraday (barre di 4 ore) ha fornito più barre di dati da utilizzare nel processo di generazione, ma è stato comunque abbastanza arbitrario che la natura sempre-in-the-mercato della strategia significa che le operazioni sono effettuate durante la notte. Il processo di costruzione è stato permesso di evolvere condizioni diverse per l'inserimento di lungo e breve, con conseguente una strategia di stop-and-reverse asimmetrica. Nonostante il nome, la strategia conseguente entra compravendite sia lunghe e corte su ordini di mercato, anche se di mercato, stop, e gli ordini limite sono stati tutti considerati dal processo di compilazione in modo indipendente per ogni lato. In pratica, invertendo da lungo a breve significherebbe vendita allo scoperto il doppio del numero di azioni al mercato come la strategia è attualmente lungo es se la posizione lunga corrente era 100.000 azioni, si dovrebbe vendere allo scoperto 200.000 azioni al mercato. Allo stesso modo, se l'attuale posizione corta era 100.000 azioni, si dovrebbe acquistare 200.000 azioni al mercato di invertire da breve a lungo. Una storia prezzo più breve è stato utilizzato più sarebbe l'ideale. Tuttavia, i risultati sono stati positivi sul segmento convalida, suggerendo la strategia non era over-fit. Questo supporta l'idea che una rete neurale può essere utilizzato in una strategia di trading senza necessariamente over-montaggio della strategia per il mercato. La strategia qui presentata non è destinato ad trading reale e non è stato testato in tempo reale il monitoraggio e il commercio. Tuttavia, questo articolo può essere utilizzato come modello per strategie simili per il EURUSD o altri mercati. Come sempre, qualsiasi strategia di trading sviluppate dovrebbe essere testato a fondo nel monitoraggio in tempo reale o su dati separati per convalidare i risultati e per familiarizzare con le caratteristiche commerciali della strategia prima di vivere di trading. Questo articolo è apparso nel numero di febbraio 2015 della newsletter Adaptrade Software. RISULTATI DEL RENDIMENTO ipotetici o simulate HANNO LIMITI DETERMINATI. A DIFFERENZA DI UN RECORD effettive prestazioni, risultati simulati NON RAPPRESENTANO trading reale. Inoltre, poiché i mestieri NON SONO EFFETTIVAMENTE stato eseguito, i risultati possono avere sovra o sotto-compensato l'eventuale impatto, dei fattori di mercato certi, come la mancanza di liquidità. Programmi di trading simulato in GENERALI sono inoltre soggetti a FATTO CHE sono stati progettati con il senno di poi. Non viene stato fatto che qualsiasi account volontà o sia idonea a conseguire profitti o le perdite simili a quelli mostrati. Se youd come per essere informato su nuovi sviluppi, notizie, e offerte speciali da Adaptrade Software, si prega di unirsi alla nostra mailing list. Grazie you. Neural Networks nel Trading: la scelta di ingressi e uscite Quando si crea una rete neurale una delle prime cose che dovete decidere è quali valori saranno gli ingressi e quali valori saranno le uscite della rete. Le uscite sono i valori che si desidera per predire 8211 per fare profitto all'interno di un sistema di scambio 8211 e gli ingressi sono i valori che vi permetterà di prevedere le uscite con sufficiente accuratezza da costituire una inefficienza. Ora ingressi e le uscite scelta non è un compito banale come questo costituisce la maggior parte del successo o il fallimento di una rete commerciale neurale. All'interno today8217s post ho intenzione di condividere con voi alcuni consigli su come scegliere ingressi e le uscite e come si possa portare a inefficienze in modi che non può essere molto intuitivo. Ho anche intenzione di spiegare a voi il motivo per cui le soluzioni InputOutput più computazionalmente sonori potrebbero non essere la migliore e perché questo è il caso. Una rete neurale è formata da una serie di strati funzionali che trasformano un certo insieme di variabili di input (livello di input) in un dato insieme di valori di uscita (strato di uscita). Tra gli strati di input e output troverete una variegata quantità di strati e funzioni (neuroni) 8211 a seconda di ciò che si sceglie 8211 che tenterà di trasformare gli input in output con l'errore meno possibile. Ciò viene fatto con l'aiuto di insiemi di formazione che permettono la rete per regolare i suoi coefficienti strato nascosto per adattarsi a un insieme di dati per i quali i dati di ingresso e di uscita sono già noti. La speranza, naturalmente, è che la rete terrà almeno lo stesso potere predittivo all'interno di un insieme non addestrato. The first thing you need to choose when you build a neural network for trading is exactly what values you want to predict. Do you want to predict the next day8217s close The next week8217s close The next support or resistance level Choosing the output of the network first allows you to know how you8217re going to build your inputs as you need to choose values that are able to predict the desired output. A very important thing here is to consider how you will normalize the output and if the output falls into what the neural network is 8220best at doing8221. Remember that in neural networks output values need to range from -1 to 1 (when using efficient sigmoid symmetric functions) since arbitrary outputs require the use of linear functions which are 8220very bad8221 at fitting the network. Once you choose the output you want the next logical step is to build inputs that you believe are predictive towards this output. Certainly before building the network there is no way of telling if one input will be better than another but you can obviously reduce the amount of variables you will use by doing a PCA (Principal Component Analysis) to filter out those variables which are evidently and heavily correlated. For example you might be interested in predicting the next week8217s close and you decide to use as inputs past weekly closes, open, highs and lows but it turns out that a PCA analysis 8211 as an example, I don8217t know if this is the case 8211 tells you that the close and open are very correlated and therefore it makes sense to only use the close, high and low. The PCA technique allows us to eliminate those variables which might be redundant within the network and therefore only increase complexity without increasing the quality of the results. Once you have a set of variables which are not correlated it is time to test how much predictive power they actually have against your desired output. If the results are initially discouraging it may be because you are missing an important piece of information within your inputs or because the shape of your output isn8217t appropriate. For example if you want to predict the weekly close and you have attempted to normalize it by diving it over the last week8217s close and then dividing it by two then doing a different mathematical operation over the output might increase the predictive quality of your network. Sometimes including information related with all inputs within the output can be a handy trick to 8220force8221 the network into 8220using8221 every piece of knowledge it has although the results will vary and you will need to assess which one works better. A very difficult aspect of neural network development for trading systems is to actually choose outputs which are useful for trading system development and yet accurate enough. For example you may be tempted to choose outputs and inputs that are very efficient for the neural network 8211 such as an output between 0 an 1 attempting to predict a week8217s change 8211 but it turns out that this is not predicted as well as predicting the week8217s close because predicting the weekly change using weekly change data makes the network loose a very important piece of information (absolute support and resistance levels) which are derived from direct price information. From a computational point of view it seems like the best solution but from a trading point of view you8217re missing a vital piece of information which is not included in weekly change data. A very interesting thing I have found out in the networks I have developed for Sunqu is that the use of absolute price values is very good since the network learns about support and resistance levels as they develop, actually trading around them in a certain way. Obviously the actual calculations done by the networks and their meaning are not known (remember that a neural network is for all practical purposes a black box) but looking at how trades are executed by the network shows a certain 8220taking into account8221 of things such as support and resistance. Since price is what you want to capture then taking into account absolute price values and basing predictors on them is a more straighforward way to system building than attempting to develop indicator output based networks. However this doesn8217t mean that you couldn8217t get good results in this way. Predicting things like RSI extremes will allow you to take advantage of rapid price movements before they happen and predicting moving average shifts in the long term will allow you to take long term trend following positions. Nonetheless whatever you want to predict (your output choice) needs to be accompanied by a very judicious decision of which inputs you will use, reinforced by an adequate PCA analysis which can show you the quality of your inputs and how well separated they are from one another. The pair choice will also be very important as certain pairs need fundamental inputs as they deeply affect the way in which they behave (a good example is a USDCAD neural network using US oil futures data). If you would like to learn more about my work in automated trading and how you too can get a true education in this field please consider joining Asirikuy. a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading in general. I hope you enjoyed this article. o)Neural Networks I personally feel that in order for us to create a truly robust Trading System we need to think outside the box. I also feel that we need to develop new tools rather than try to optimize old methods. It is amazing to see everyone here work so hard at building systems and for the benefit of all. I guess thats why I stopped lurking and would like to contribute. A few things I have been interested in and have been working on. Spectral Analysis. I have some software to create digital filters of raw price action. Neural Networks: cool but still boggles my mind. Market Sentiment: ideas in PDFs Attached Is anyone interested in brainstorming I think I will start with a lagging digital filter on the 30 minute euro. Neural Network Indicators Development Im trying to make some neural network indicators for metatrader4, and would like some sugestions, mostly regarding inputs and outputs of the net, and maybe the structure or type of net that you consider the best for this application. As far as in know the best outputs for financial series forecasting, are price range forcasting, tops or bottoms forecasting, and that tipe of things. Forecasting directly the price (open, close) doesnt get good results because to numerous reasons, for example a little shift on the time between the open time and the close time could change their values considerately. If anyone has a sugestion ill be glad to listen to it and try it. By the way, im no expert neural network programmer, i just have a good overall idea on the subject P. Thanks in advance, Im trying to make some neural network indicators for metatrader4, and would like some sugestions, mostly regarding inputs and outputs of the net, and maybe the structure or type of net that you consider the best for this application. As far as in know the best outputs for financial series forecasting, are price range forcasting, tops or bottoms forecasting, and that tipe of things. Forecasting directly the price (open, close) doesnt get good results because to numerous reasons, for example a little shift on the time between the open time and the close time could change their values considerately. If anyone has a sugestion ill be glad to listen to it and try it. By the way, im no expert neural network programmer, i just have a good overall idea on the subject P. Thanks in advance, NN is my thesis couple years ago. but almost forgotten now This idea can refresh my mind again. I think NN based on pattern recognition using backpropagation is good for forex data mining. Im prefer using high low data to feed the NN in order to predict the next daily range data.. I also think using high and low is much better than using open or close, to be truth i dont really like the open and close values for intraday analisis, as they seem rather inestable values if you make a displacement on when you place your start point. Median price also looks good, but i prefer highlow as the information loss in less. Ill probably use a moving average of the high and one of the low. Ive found the JMA to be a really good filter in comparison to regular MAs so ill do my first tests using a short period JMA without phase changes to avoid distorsion. So far the inputs im considering for predicting future ranges are: - JMA of High JMA of Low. - Date (Day of Month, ex. Monday, Thuesday. ). The other idea i have in mind is to use NN to forecast news events direction. I have a quite big database of forex fundamentals since some years, so i may use those as inputs. As for what type of neural network to use, im still doing some research, backpropagation NNs are the common standard for NNs, but there are others that seem to have very good results, like the time lagged recurrent networks (but they are hard to train and understand). Other idea i had, was to use a Fukushima NN, those are mainly made for image processing, but with some modifications i think they could be used for pattern recognition on timeseries. It is the thread where people are developing Neural Networks indicator for MT4. In Russian language, sorry. - they started with some e-books and articles - then some library files for Delphi 4 (NeuralBase, Neural Network Wizard, GeneBase, SOMBase, WavUtils) - then they coded many versions of indicator NeuroProba. mql4 (author is Rosh) - then they tested it and found many bugs and mistakes in calculation. This thread is not closed yet and seems they are continuing to development (it is necessary to register on their forum to see the attachments). Besides I found this link about Neural Networks (in English). It is the thread where people are developing Neural Networks indicator for MT4. In Russian language, sorry. - they started with some e-books and articles - then some library files for Delphi 4 (NeuralBase, Neural Network Wizard, GeneBase, SOMBase, WavUtils) - then they coded many versions of indicator NeuroProba. mql4 (author is Rosh) - then they tested it and found many bugs and mistakes in calculation. This thread is not closed yet and seems they are continuing to development (it is necessary to register on their forum to see the attachments). Besides I found this link about Neural Networks (in English). Awsome New Digital Ill look at the material in a few minutes. gotta break out the russian..which isnt so great, but I think that coupled with AltaVista ill be able to make a decent attempt. Im currently coding in CORTEX on other Neural Networks (NN from now on) and im planning to convert into MQ4. I think we should DEFINATLY keep this thread going because (and this is an opinion) NN are THE future of tecnical anaylsis. NNs, for those who arent geek enough to know..are basically algorythms that mimic the brain (not nessisarily the human brain..cuz that would be Mind bustingly complicated) in that it learns as it goes. Im writing the EAs to give advice on whether or not to take a particular signal based on small patterns that have come before when a similer signal was given. Thats what most NNs do, they search data for small patterns that would be meaningless to us, or even other algorthms and see what those patterns do over time. The first EA will feature Brain Trend. I ask that everyone be patient though, CORTEX coding takes time. rather, it takes time to train the NNs and perfect them. If anyone here is familier with CORTEX or Code conversion, any help would be appreciated. I understand why russian forum would go commercial. NNs are the current style with big money traders. Così. what do you guys say i say take 2 moving averages, few sup-res lines and 1 or two filters and trade if you cant make money of simple system like this than dont expect from some NN to make you rich from my 3 years forex expirience i know how i would build perfect system but it will be long long coding. at leats 3 time frames to look, covering all possible situations, range, trend. and then aplying few systems together to get perfect results my advice to you is if you know how to trade than first trade, make money and one day when you have enaugh you can try to make NN JUST JOKING but botom line you dont need some NN to make money trading i spent second year of my trading making programms and testing dosens of systems and one day i realise i am not trading any of them and lot was good, profitable. i had first to reprogramm my brain to avoid fear, greed. and to discipline myself (and lost almost 70 of my account during that time) first find good system (there is several good here) make money, learn and than try to teach this NN to trade this system or just make EA to autotrade for you and when you make enaugh money you can buy comercial NN i say take 2 moving averages, few sup-res lines and 1 or two filters and trade if you cant make money of simple system like this than dont expect from some NN to make you rich from my 3 years forex expirience i know how i would build perfect system but it will be long long coding. at leats 3 time frames to look, covering all possible situations, range, trend. and then aplying few systems together to get perfect results my advice to you is if you know how to trade than first trade, make money and one day when you have enaugh you can try to make NN JUST JOKING but botom line you dont need some NN to make money trading i spent second year of my trading making programms and testing dosens of systems and one day i realise i am not trading any of them and lot was good, profitable. i had first to reprogramm my brain to avoid fear, greed. and to discipline myself (and lost almost 70 of my account during that time) first find good system (there is several good here) make money, learn and than try to teach this NN to trade this system or just make EA to autotrade for you and when you make enaugh money you can buy comercial NN I know what you mean I spend months going over historical data for all kinds of indicators and systems. and the bottom line is that any number of them could make pips on any given trade. All im saying here is that it would be nice to have an INDIPENDANT system, that works in a DIFFERENT way to either confirm or deny what your indicator or system is telling you. I trade with Brain Trend, MTFMACD, MoneyMap (MQ4 version) and I do pretty well. But it would still be nice to have that secondary system running in the background to say based on 15 years of historical data, this signal when occuring with this currency pair, in this time frame, with this volume, has proven to be unreliable, I cant advice this trade Yes, some might call it overkill. but I call it having a FOREX pro wathcing over my shoulder. For as long as humans are creatures of habit and continue to create cycles (of any size) I would argue that this is what a well trained FOREX NN would be. I dont call that overkill if it keeps me from losing some chips. Our experiances seem strikingly similer, though, im a newbie. just starting my second year as a trader trading with real money. I spent the last several months just going over indicators THAT I KNEW WORKED. and just spinning my wheels..for fear of making bad trades. But..I guess thats why I want to develope the NN. it doesnt know fear, and responds to market data the way no human can. They can find meaning in the smallest of price patterns. things that our ordinary indicators cant. If MQ4 indicators are binoculars..then the NN is the hubble. I think its worth developing here. Thanks NewDigital, I found a copy of neuroproba. It looks interesting. I dont see any bugs in the MQ4 file, but without seeing the script for the NN I cant say if it is accurate or not. one reason people might have given up on it is that for it to do anything but show two horizontal lines (one red and one yellow, with the version I have) you have to set the StudyNumber to above 100. I tweaked it and got it to match the signals that Brain Trend gives. That setting is 200. Im not sure about the NN aspect of this indicator though. Do you possibly know where a copy of the script file for the NN might be floating around Oh, and the second link you gave is to snowseed, where they talk about CORTEX, which is a very good freeware program for programming NNs. Thanks New Digital Join us download MetaTrader 5 Copyright 2000-2016, MQL5 Ltd.

No comments:

Post a Comment