2012-05-29 23 views
5

Sto lavorando a un progetto per prevedere il prezzo delle azioni utilizzando ANN. Ho addestrato il sistema utilizzando i dati precedenti di 7 anni e funziona bene per prevedere i dati per un giorno. Ora voglio pronosticare il prezzo delle azioni per i prossimi sette giorni.Predizione a lungo termine utilizzando la rete neurale artificiale

L'idea è di prevedere i dati del giorno 2 utilizzando i dati del giorno 1, giorno 3 utilizzando i dati previsti del giorno 2 e del giorno 1 e così via. Ma non funziona correttamente.

Ho addestrato ANN per prevedere il prezzo di chiusura utilizzando il prezzo di apertura, il prezzo massimo e minimo di un giorno.

Qual è l'idea di prevedere i dati dei prossimi sette giorni ??

+4

Penso che questo richiede una sfera di cristallo –

risposta

3

Maruf, se si dispone di un predittore ANN affidabile per 1 giorno in anticipo, contattatemi per ulteriori informazioni! LOL

Scherzi a parte. Le reti neurali e altri predittori non lineari sono proprio questo: i predittori. I dati con i quali hai a che fare (dati sul prezzo delle azioni) sono in gran parte casuali. Se non mi credete, provate a generare una passeggiata casuale usando il seguente pseudo-codice e tracciando sullo schermo:

let min = -0.5 
let max = +0.5 
let bias = 0.01 
let random = rand(min, max) 
y[i] = y[i-1] + random + bias 

Regolare orientamento leggermente (da -0,01 a 0,01) e si finisce con la serie che sembra molto come un prezzo delle azioni di tendenza. La ragione di questo è in ogni tendenza sottostante ci sono persone che stanno prendendo decisioni non meglio di un coin flip. Sapevi che il trader medio ha ragione il 55% delle volte? Questo è tutto ciò di cui ha bisogno ...

Ora, se i dati sono in gran parte casuali, diventa molto difficile da prevedere. Stai cercando un segnale in una grande quantità di rumore. Ogni giorno in anticipo provi a prevedere che la tua previsione diventa meno accurata.

Posso chiedere: quali input avete inserito in ANN per ottenere una previsione in anticipo di un giorno? Se ad esempio si utilizzano prezzi delle azioni giornaliere più altri fattori derivati ​​(come tasso di cambio, volumi, divergenze, ecc ...) per ottenere una previsione accurata di 1 giorno, è possibile che si possa ottenere una previsione accurata di 1 settimana entro sostituendo tutto quanto sopra con i dati di magazzino settimanali.

Edit:

In secondo luogo, che cosa stai facendo per testare l'accuratezza del predittore? Per aumentare la risposta di mikera suggerirei una strategia come la seguente.

Data una finestra dati di 1000 giorni, prendi 800 di questi e allena la tua ANN. Ora prevedi un giorno nel futuro. Confrontare la direzione prevista (Su, Giù) con il prezzo di chiusura previsto (differenza%) per valutare l'accuratezza di quel risultato. Ora fai scorrere la finestra 1 giorno a destra. Riorganizzare la RNA ed eseguire una previsione di 1 giorno, prendendo nota dei risultati.

Se continui per i restanti 200 giorni, quale percentuale di risultati ha ottenuto la direzione corretta (su, giù)? Quale percentuale di risultati era compresa nel 10% del prezzo di chiusura previsto effettivo? Se la tua ANN stava effettuando ordini alla chiusura degli affari di ogni giorno e chiudendoli alla fine del giorno successivo, quanti soldi avrebbe fatto? Contabilità per le tariffe di slippage e trading ovviamente ...

Questo ti darà un'idea di quanto sia accurato e utile il sistema.

+0

Grazie per la vostra risposta veloce (io sono con Maruf in questo progetto). usiamo il giorno precedente 1. giorno 2. prezzo più basso 3. prezzo più alto 4. prezzo di apertura e 5. volume di transizione. non capiamo la tua idea "scorri la finestra da 1 giorni a destra". Dopo la formazione di 800 giorni, dovremmo prevedere l'801 ° giorno con i dati dell'800 ° giorno (5 righe). quindi necessario confrontare con i dati originali. poi? Cosa intendi per "far scorrere la finestra 1 giorno a destra"? Mi dispiace per la mia ignoranza. – shantanu

+1

Ciò che intendo con questo è: se hai usato questa ANN in un sistema di trading reale, avresti solo accesso ai dati passati. Ogni sera, dopo la chiusura del mercato, dovrai riorganizzare l'ANN e prevedere il prezzo di chiusura di domani. Poi al mercato aperto faresti un trade, e al mercato chiudi il trade. La prossima notte ripeteresti la riqualificazione sui dati passati (incluso il nuovo giorno) e creerai un pronostico per il giorno successivo, metti uno scambio il giorno successivo ecc ... Il tuo test dovrebbe cercare di emulare questo comportamento. Se hai creato un test che ha fatto quanto sopra, riportato su% vincenti/perdenti, quanto è buono? –

2

Hai fatto molto bene se si può prevedere anche un solo giorno di anticipo in modo efficace - i temi usuali sono:

  • Sei sicuro non si sovradattamento, per esempio imparando a replicare esattamente le caratteristiche dei tuoi dati di allenamento? Se non l'hai ancora provato, ti consiglio vivamente di testare la tua ANN sul 20% dei tuoi dati dopo averlo addestrato con l'altro 80% per essere sicuro di ciò.
  • Inoltre, stai imparando a prevedere i valori di prezzo assoluti o i delta? se si tratta del primo, allora si sta probabilmente ottenendo un buon risultato dal fatto che il miglior predittore del prezzo di chiusura del giorno successivo è di gran lunga il prezzo di chiusura di oggi (perché i dati hanno una correlazione seriale così elevata). Non è raro ottenere errori del 99% + R al quadrato facendo questo errore ....

Presumendo che non sei caduto in una delle trappole sopra, quindi il modo di fare più giorni di previsione è quello di semplicemente hanno variabili predeterminate separate per ciascuno dei giorni futuri indipendentemente. Non c'è molto valore addizionale nell'alimentare le previsioni del giorno dopo nel secondo giorno ecc. (Poiché non hai nuove informazioni nei dati di input), ma puoi provarlo se vuoi (non puoi fare del male , potrebbe accelerare l'apprendimento fornendo un rilevatore di funzioni utile ecc.).

Inoltre, ci si aspetterebbe che le previsioni incongruenze/variazioni siano maggiori (perché ci sono più giorni di movimenti incerti dei prezzi delle azioni da ora in poi). Vale la pena provare a prevedere la varianza delle statistiche e la media per questo motivo.

+1

Ho fatto +1 su questo "per testare la tua ANN sul 20% dei tuoi dati dopo averlo addestrato con l'altro 80% per essere sicuro di ciò". Inoltre stavo per menzionare che vale la pena fare una tecnica a finestra scorrevole, ad es. con 800 giorni di dati di allenamento, prevedere 1 giorno prima, confrontare la previsione con quella effettiva, quindi far scorrere la finestra di allenamento/previsione 1 giorno a destra, risciacquare e ripetere. Da ciò è possibile valutare l'accuratezza del predittore su una finestra estremamente lunga. Aggiornerò il mio commento in effetti :) –

Problemi correlati