Risonanza stocastica - pagina 33

 
Prival, lei è uno specialista di DSP. Ho notato che tali esperti di solito ottengono buoni risultati su Foreh. Potete consigliarmi qualche letteratura, per favore? Sai, DSP stesso, teoria dell'informazione, qualcos'altro...
 

Sembra più o meno chiaro.

Abbiamo bisogno di due matrici di ampiezze, una per il segnale e una per il rumore. Il secondo array è già inserito, dato che abbiamo bisogno di un solo valore da esso, semplicemente lo memorizziamo, liberando così l'array per le nostre necessità. Quindi, la divisione dovrebbe essere qualcosa del genere:

double thr = data1[hmax];
for(i=0;i<N;i++) {
  if (data[i]<thr) {
    data1[i]=data[i]; 
    data[i]=0.0; 
  } else {
    data1[i]=0.0;
  }
}

Ma probabilmente è molto peggio. La ragione è che in realtà la soglia dovrebbe essere definita per la densità spettrale. Il codice per il suo calcolo può essere preso dal mio esempio, ma poiché contiene ampiezze immaginarie e reali per ogni frequenza, dovremmo dividere in due matrici non le ampiezze ma le frequenze (cioè gli indici, con ogni frequenza corrispondente a 2 indici: i e i+1). Quindi sembra che avremo bisogno di altri 3 array - uno per la densità spettrale e due per gli indici (frequenze): segnale e rumore. In una parola, dovremo fare un lavoro serio e prima di tutto capire il formato del file di dati per la FFT dopo la trasformazione. Il link nell'intestazione della libreria di klot ti aiuterà.

Per quanto riguarda la lentezza, senza visualizer sarebbe molto più noioso, ma almeno ci si può godere il processo :). Minimizzare il terminale può accelerare un po' le cose.

P.S. Per le frequenze si può fare con un array - diciamo, scrivere 1 per le frequenze di segnale e -1 per le frequenze di rumore.

 

alla matematica

Mi hai fatto perdere la testa :)

  1. Anche se vedo che il tuo livello di matematica è più alto del tuo. Consiglio di iniziare da "Signal Processing First Encounter" di Yukio Sato. Si tratta di fisica dei processi, almeno per me è sempre stato così. Se non capisco la fisica del processo, non posso nemmeno applicare la matematica (è applicata :)).
  2. Classico. Marp Jr. Analisi spettrale digitale. IHMO il miglior libro, non c'è bisogno di cercarne altri.

Cos'altro penso sia necessario (utile) per il mercato del forex.

Decidere quando entrare e uscire dal mercato

  1. Wald. Funzioni di risoluzione statistica. Prestate particolare attenzione al famoso (almeno nel campo del radar) rilevatore Wald a due soglie.

Per prevedere i movimenti dei prezzi

  1. Farina. Elaborazione digitale delle informazioni radar. Lì si presta particolare attenzione al filtro di Kalman, è matematicamente dimostrato che in certe condizioni è più accurato che non. Ma ci sono spesso problemi con queste condizioni, ho un'idea di come usarlo, inoltre il mercato Forex stesso rimuove molte limitazioni.

Statistica, diversi tipi di distribuzioni e loro analisi.

  1. Boris Ruvimovich Levin. Fondamenti teorici della radiotecnica statistica. L'unica edizione in cui non abbiamo trovato un errore (typo). Il libro da tavolo è stato quando stavo scrivendo la mia tesi di laurea.

La selezione dei libri è un po' specifica, ma basta sostituire la parola target (piano) con il prezzo (Close[0]), il rilevamento della manovra (sull'inversione di prezzo) e poi diventa più chiaro cosa può essere applicato :)

Tutti salvi, libri allegati. Tutti tranne l'ultimo, scusate.

Ancora una volta mi appello a tutti, se avete la possibilità e il desiderio di lavorare in squadra, trovatemi su Skype (privalov-sv). Vod link al walker http://www.skypeclub.ru/skype.htm. È molto utile per la comunicazione.

Ci sono molte idee, abbastanza per tutti, non c'è abbastanza tempo ed energia. Uno tutto non può alzarsi.

Diavolo, il resto non si adatta, non passa il php. Quindi hai 1 via d'uscita :) chi ha bisogno di questi libri -> Skype, sono quasi sempre lì. Libro formato djvu

File:
sato.zip  1353 kb
 

a lna01

"Ma probabilmente è molto peggio di così... "

Hai ragione, lì sarà molto peggio, è solo la prima fase. La cosa principale è capire come costruire correttamente l'indicatore e ottimizzare la velocità, poiché verranno aggiunte delle formule e quelle molto buone IHMO. In futuro avrò bisogno di altri 2 buffer, per l'analisi di fase + voglio sicuramente sperimentare con le finestre, almeno due di sicuro. Hemming e Butterworth. I primi risultati sono incoraggianti. Prova a tracciare solo l'ampiezza della prima armonica dello spettro (senza alcuna soglia o ordinamento). Si ottiene una bella immagine, la prima impressione è che le pieghe determinano il momento in cui si imposta lo Stop Loss. Ma questo deve ancora essere controllato, cercherò di postare una foto domani.

 

Come promesso, sto pubblicando delle foto. Si è rivelato qualcosa di molto bello, si potrebbe scrivere un esperto ora. Ma c'è un errore da qualche parte. Forse sono inciampato accidentalmente su qualcosa. Guarda per favore.

Fig.1.

Fig.2

  1. Se cambio il segno di confronto nella linea, l'istogramma scompare (vedi Fig.2),

se (dati[i]<porog) //il confronto con la soglia in questo caso, c'è un istogramma

e se va così

se (dati[i]>porog) // qui manca

  1. L'energia non può essere negativa e nemmeno l'ampiezza, tanto meno la loro somma!!! :(
  2. Ma visivamente molto bello, lo chiamerei "Trend-curve energy
  3. ".

P.S. L'unica domanda su ciò che volevo fare in questa linea di codice non risponderà (se si trova un errore), vedere sopra un'idea generale dell'indicatore, quello che volevo ottenere, ci tutto nelle immagini. Se si spiega nelle immagini ciò che ho ottenuto a causa delle mie mani deboli. Pagherò per questo. Ho appena preso l'indicatore MACD e l'ho aggiunto, ma non sembrava giusto.

File:
pvf2.mq4  4 kb
 
Prival:

Ma se potete spiegare in immagini quello che ho ottenuto a causa delle mie mani storte. Ti devo un vig.


Questo: for( i=hmax ;i<N ;i++) - Ancora non capisco. Voglio dire, naturalmente non è necessario cercare tutte le frequenze, ma perché da hmax?

In secondo luogo, la trasformata di Fourier risulta in ampiezze complesse. Così l'ampiezza per ogni frequenza corrisponde a due numeri: la parte reale e la parte immaginaria. L'energia è uguale al modulo di sqrt((Re+j*Im)*(Re-j*Im)). Posso aggiungere da me che Re e Im sono spesso in antifase. Tagliare tutto di una soglia è una trasformazione non banale e non riesco a pensare a un significato fisico per essa. Comunque, l'energia non c'entra niente.
Ripeto: è necessario capire il formato del file di dati per la FFT dopo la trasformazione. Il link dell'intestazione della libreria di klot aiuterà
 

lna01

L'ho capito, non c'è altro da dire, l'unica cosa è che ho davvero sbagliato il formato dei dati. Quando scoprirò il formato dei dati (ho posto la domanda a klot nel ramo) mi siederò con un foglio di carta e una penna per controllare i conti. Sono abituato a matcad. Mi sono abituato a trattare con matcad, è questo il mio errore. Per quanto riguarda for( i=hmax ;i<N ;i++) dovresti prenderlo da 1 (o addirittura farne una variabile separata). Pensate, c'è un chiaro significato fisico se usiamo sqrt((Re+j*Im)*(Re-j*Im)).

 
Prival:

renderlo una variabile separata del tutto

Proprio così :) . Se tagliamo alcune frequenze e dividiamo il resto in "sotto-soglia" e "sopra-soglia" per energia, non ci saranno difficoltà con il senso fisico :)

P.S. Forse menziono troppo spesso l'indicatore https://forum.mql4.com/ru/6275 :), ma lì il lavoro con le ampiezze è fatto correttamente - si può solo prendere da esso.
 
Allora cos'è la linea rossa nella Fig.2? La differenza di energie delle parti reali e immaginarie? Molto interessante. E cosa significano i numeri nell'area dei valori dell'indicatore?
 
Sembra che ci sia un bug nella libreria, o le mie mani sono di nuovo storte :( ho postato la mia domanda qui 'FFT Fast Fourier Transform Functions Library') se qualcuno può controllare. Ho ragione o no? Prova in matlab per controllare.