Prevedere il futuro con le trasformate di Fourier - pagina 4

 
A proposito, ho scritto ieri che il periodo della semionda sinistra dovrebbe essere più corto e quello destro più lungo. E poi anche l'estrapolazione porterebbe la stessa legge. E oggi lo ha certamente confermato. Una rapida caduta dell'euro seguita da un lento ma intenso tentativo di recupero.
 

Naturalmente, dovrei permettere di usare la DLL, la stessa DLL è collegata, ma non vede le funzioni in essa contenute.

Bene, mentre io conto le funzioni a testa alta, poi forse uscirà mq5, e le classi appariranno anche in esso.

 
m_keeper:

Penso che le reti neurali dovrebbero essere usate dove non è possibile trarre conclusioni utilizzando l'analisi matematica, statistica, differenziale o qualsiasi altra analisi.


C'è una logica in questo - NS non è lo strumento più facile sotto ogni aspetto, quindi prima è meglio spremere tutto il possibile da quelli classici.


m_keeper:

Non fare ancora nulla del mio indicatore, è troppo incompiuto.

Ma disegna meravigliosamente :)
 
ANG3110:
goldtrader:

Cosa succede se il segnale dell'indicatore (o piuttosto la differenza tra la lettura e il prezzo corrente) viene inviato all'ingresso NS?

Posso rispondere alla domanda, ma non è stata fatta a me, visto che sto sfogliando questa pagina.

In realtà, la domanda non è molto corretta, perché ci sono diverse reti con diverso numero di ingressi e uscite.

Ci sono quelli approssimativi, classificatori e associativi. Con o senza insegnante.

Ma se si presuppone ciò che l'autore intendeva, si può fare. Ma il risultato sarà soddisfacente?

È chiaro. Avevo un suggerimento più generale che specifico. La risposta di m_keeper è soddisfatta.

 

In difficoltà con l'indicatore per un altro giorno

Sostituita la trasformata veloce di Fourier con quella normale, ora la finestra può essere impostata a qualsiasi lunghezza


Ho sperimentato le dimensioni della finestra cercando di "prendere un'onda" e ho trovato molte cose interessanti

Se ci sono armoniche, non superano i tre o quattro

) Queste armoniche non coincidono precisamente con le corrispondenti onde di mercato per frequenza (sarebbe strano se lo facessero)

)questo provoca dei battimenti durante il movimento della finestra - la fase è persa

abbiamo diverse frequenze non armoniche nel mercato

Possono essere isolati, come ha scritto ANG3110, dall'ampiezza massima

Ho pensato di aumentare il periodo per avere più armoniche nella gamma di cui ho bisogno.

) Se la frequenza desiderata è presente su tutta la gamma, è in ritardo,

poi accelera (la non linearità è evidente), non sfasa correttamente alla fine

)un lungo periodo non è molto buono, c'è un sacco di estranei


In realtà, due idee mi sono venute in mente al momento.

)Chi ha detto che le frequenze devono essere armoniche della frequenza principale (probabilmente l'ha detto Fourier)

1/T 2/T 3/T perché non prendere 10/10T 11/10T 12/10T e otteniamo una densità di frequenza maggiore

nella gamma che ci interessa.

) perché prendere le armoniche? Abbiamo solo bisogno di calcolare le frequenze fondamentali (ampiezza e fase)

per tutte le larghezze di banda inferiori a quella data. Penso che il grafico dell'ampiezza sarà

abbastanza liscia nella gamma delle basse frequenze) dobbiamo prendere i massimi locali e queste armoniche

può già dare una previsione.


E vorrei anche chiedere.

Quale criterio potrebbe essere utilizzato per determinare l'importanza dell'ampiezza in funzione della frequenza?

Dopo tutto, prima di cercare i massimi locali, sarebbe una buona idea pronormalizzare lo spettro.

 

PS Penso di essermi sbagliato sulle frequenze principali solo, almeno 2-3 periodi dovrebbero essere guardati

 

Potete semplicemente normalizzare la finestra e separatamente il segmento di previsione, ci= (Close[i] - min)/(max - min); questo migliora un po' le cose, ma solo leggermente. Ottenere una coincidenza in ampiezza è generalmente abbastanza difficile. L'identificazione di potenziali punti di snodo è piuttosto preziosa in questo caso.


Lì, 2-4 armoniche sono davvero ottimali. Facevo uno script di disegno per vedere rapidamente cosa succedeva lì. Sono riuscito a disegnare delle curve dalle barre. Poi il periodo può essere cambiato con il mouse, e tutto è rapidamente e ben visibile. Oppure, un altro modo è quello di sviluppare un indicatore e uno script per aggiornare i dati nella finestra, altrimenti la funzione start() dell'indicatore non verrà avviata. È possibile utilizzare il canale di regressione nello script e inviare i suoi parametri all'indicatore utilizzando le variabili globali, così come cambiare il numero di armoniche premendo i tasti della tastiera.

#import "user32.dll"
int GetAsyncKeyState(int nVirtKey);
int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
#import
#define WM_COMMAND 0x0111


Poi l'immagine dell'indicatore può essere spostata con il mouse. A proposito, l'RMS è calcolato dc=Close[i]-fx; sq+=dc*dc; e alla fine sq=MathSqrt(sq/T); e le ampiezze totali MathSqrt(ak[k]*ak[k]+bk[k]*bk[k]);

Si fa una combinazione per estremi, prima approssimativamente a occhio, poi per RMS minimo e amk massimo;

Questo è per la ricerca al fine di vedere tutto rapidamente. Per l'automazione è un po' diverso, lì non si fa niente a occhio.

Se la fase è fluttuante, allora non c'è onda stazionaria e la previsione si deteriora. Si può mettere un mouving o una regressione, allora la fase è più stabile. Ma in linea di principio la differenza di fase dovrebbe essere usata nell'automazione per l'autotuning del periodo, come nei ricevitori radio usano l'autotuning di fase della frequenza.

Ma questo è per una sola frequenza. Per aumentare la precisione, si prendono periodi più grandi e più piccoli e il numero di armoniche per tutti loro da 1 a 5, non più è opportuno, e si sommano e si ricava la media. Ma ancora una volta è quasi impossibile ottenere una buona previsione per tutto il tempo con una scala temporale lineare. Piuttosto, abbiamo bisogno di combinare la previsione e l'autotuning continuo. In generale, l'automazione non è semplice, anche se, ovviamente, se avesse successo, credo che i risultati commerciali sarebbero molto buoni.


 
m_keeper:

E vorrei anche chiedere.

Con quale criterio si può determinare il significato dell'ampiezza in funzione della frequenza?

Dopo tutto, prima di cercare i massimi locali, sarebbe una buona idea pronormalizzare lo spettro.

Forse provate la normalizzazione proposta dall'autore dell'articolo (archivio, p.17).

File:
1.zip  246 kb
 

Neutrone

Non ci trovo nessun razionamento normale.


a m_keeper

Prova a normalizzare all'energia totale.

 

Ho tracciato il periodogramma - nella figura qui sotto


il valore più a destra è l'ampiezza della seconda armonica del periodo massimo

ogni successivo (una barra, non un'armonica) più piccolo, e così via, fino a quando il periodo è uguale al 12° armonico del massimo


Come mi aspettavo, il grafico è abbastanza liscio e mostra chiari massimi locali

ogni massimo corrisponde a una frequenza e una fase già calcolate, e la fase al massimo dovrebbe

senza alcuna deviazione.


Non resta che tracciare il tutto.