Strategie di trading basate su filtri digitali - pagina 73

 

Bande di frequenza

MadCow:
Simba,

Poiché qualsiasi componente ciclica nel segnale finale (diciamo H1) deve essere stata nel segnale originale M1, ma con un miglior rapporto segnale/rumore, mi sembra che si dovrebbe usare il segnale M1 per estrarre le componenti cicliche. Naturalmente il problema è che quelle componenti che sono a periodi di 20 ore saranno molto difficili da estrarre dai dati M1 perché il periodo M1 richiederà 60 volte più campioni di M1. D'altra parte, ci possono essere molte componenti che sono ad alte frequenze nella serie M1, che si alias nella serie H1 più volte causando più picchi di quelli che ci sono realmente.

L'unico modo semplice per indagare su questo è guardare lo spettro di un segnale M1 e un segnale H1 sullo stesso periodo (assoluto), per esempio 200 ore o giù di lì. Questo non può essere fatto con gli strumenti R_MESA attualmente disponibili perché la lunghezza richiesta a M1 supera la capacità dell'algoritmo come codificato.

MadCow...

Madcow,

Si ad entrambi,si dovrebbe usare il segnale M1 e confrontarlo con l'H1,M5,15,M30..sullo stesso periodo assoluto...questo è esattamente quello che ho fatto(partendo da M5) e mostrato sulle pics ...ho scansionato 540 barre h1 in h1,m30(1080 barre m30),m15,m5....per la stessa gamma di frequenze assolute H1 da 1/90 a 1/180...quindi, ho cercato cicli con periodicità da 90 a 180 periodi H1 (da 180 a 360 periodi m30, ecc, ecc)...e ho trovato gli stessi 2 cicli in tutti i timeframes.

Se rifaccio la scansione per cercare cicli da 8 a 80 periodi h1, su un arco assoluto di 240 barre h1, quello che trovo è un quadro molto diverso, ogni timeframe mi restituisce un numero diverso di cicli, periodi, ampiezze e fasi...è un pasticcio non negoziabile come potete vedere nella foto....Quindi, usare le giuste bande di frequenza, quelle che ti restituiscono cicli chiari è una delle chiavi per lavorare con i cicli...per farlo, hai bisogno di uno scanner che possa scansionare almeno 7k -9k m1 bar e restituirti periodi ciclici fino a 2k -3k m1 bar.

Cicli frattali...Fondamentalmente:Il numero di iterazioni o passaggio di tempo prima che un frattale si ripeta(caveat emptor:Può ripetersi allo stesso O in un diverso timeframe)....le linee verticali nella foto segnano le successive iterazioni di un frattale,il ciclo frattale è di 22 o 23 barre(è frattale )...BTW,alla chiusura di venerdì abbiamo completato un'iterazione frattale...Sono estremamente intrigato dal movimento direzionale di apertura di oggi per le prossime 22 barre.

http://www.elliottfractals.com/triggers/

Lammert Saturazione nonstocastica Macroeconomia: Luglio 2005 Macroeconomia nonstocastica di saturazione - Una nuova scienza

Saluti

S

File:
campc24.gif  66 kb
 
MadCow:
Simba,

Ho letto la roba di Lammert e finora non riesco a capirci niente. Sembra molto simile all'astrologia, ma un sacco di gente gli crede a quanto pare, quindi devo scavare più a fondo. Sembra usare la definizione di frattale usata nel MT4 "fractal.mq4", essenzialmente gli estremi. Cosa c'entra questo con i cicli frattali?

Ma permettetemi di iniziare a dimostrarmi utile:

1. Non usare le serie di prezzo TF più alte quando si cercano componenti cicliche. Saranno più rumorose di M1. Sembra che tu lo stia già facendo... e il resto del forum?

2. Utilizzare un filtro anti-aliasing sui dati M1 e sotto-campionare il suo output per ridurre la complessità di calcolo quando si cercano componenti cicliche di lunga periodicità. Abbinate il filtro aa alle frequenze che cercate.

3. Non "appiattire il punto finale" la serie dei prezzi quando si applica la FFT o Geortzel.

I primi due punti sono stati discussi sopra.

Considerate il terzo. Si può dimostrare che il periodogramma è il rilevatore di massima verosimiglianza di una sinusoide nel rumore bianco gaussiano stazionario. So che il rumore FX non è stazionario, bianco e nemmeno gaussiano, ma c'è ancora un argomento per cui il periodogramma è una buona cosa da usare. Il periodogramma è essenzialmente il quadrato della trasformata di Fourier del segnale, e soffre del fatto che la sua varianza non diminuisce all'aumentare della lunghezza della sequenza elaborata. Quando viene usato per stimare la densità spettrale, i dati vengono finestrati per ridurre questo effetto "punto finale". Ma noi siamo interessati a rilevare la componente, non a stimare lo spettro. Se dovessimo usare una serie di filtri passa-banda per trovare il segnale, non appiattiremmo prima il punto finale della serie dei prezzi. Sarebbe chiaramente controproducente, poiché diminuirebbe il peso dei campioni più recenti. Quindi non appiattire il punto finale della serie dei prezzi prima di applicare la FFT o Geortzel.

4. La FFT o la Geortzel sono equivalenti se aggiustate per la risoluzione. Il Geortzel è più efficiente quando si cerca su un piccolo insieme di frequenze. Usateli in modo intercambiabile a seconda dell'efficienza di calcolo determinata dalla banda da ricercare e dalla risoluzione richiesta.

5. Il MESA è buono per stimare lo spettro, e in alcuni casi (in particolare per sinusoidi variabili nel tempo) può essere migliore della FFT. Tuttavia, stimare lo spettro e rilevare le sinusoidi sono compiti diversi, e se la sinusoide dura per la durata della FFT, il MESA non è migliore della FFT nel senso della massima verosimiglianza, e molto probabilmente non altrettanto buono. Quindi usa la FFT e abbina la sua risoluzione alla durata prevista della sinusoide. Dimenticate il MESA, nonostante l'eccellente software di RC.

Queste sono solo le mie opinioni, ma possono essere sostenute matematicamente se il modello è semplificato come detto. So anche che non tutti saranno d'accordo, e che RC e Ehlers sarebbero particolarmente in disaccordo, ma sto solo cercando di essere utile come richiesto.

Saluti ...MadCow...

Non so il resto del Forum, alcuni di loro potrebbero fare cose interessanti, altri probabilmente aspetteranno di essere imboccati.

Saluti

S

 

Simba,

Ho letto la roba di Lammert, e finora non riesco a fare testa o croce. Sembra molto simile all'astrologia, ma un sacco di gente gli crede a quanto pare, quindi devo scavare più a fondo. Sembra usare la definizione di frattale usata nel MT4 "fractal.mq4", essenzialmente gli estremi. Come si relaziona questo con i cicli frattali?

Saluti ...MadCow...

 

Lunghezza variabile Goertzel

Voglio scusarmi per aver modificato bruscamente il mio post precedente. (Potete leggerlo interamente nella risposta di Simba). La mia ragione era che avevo scoperto che l'appiattimento del punto finale non era quello che pensavo. Semplicemente imposta i due punti finali a 0 e aggiunge una piccola quantità ad ogni campione in mezzo per compensare questo. Aggiunge essenzialmente una componente di periodo molto lungo, che possiamo ignorare. Non distorce l'uscita di corrente per una frequenza sufficientemente alta. Inoltre ho sbagliato a scrivere Goertzel.

E non credo più che la FFT o Goertzel sia il modo migliore per trovare le componenti cicliche.

Guardando l'appiattimento del punto finale e l'algoritmo di Goertzel ho scoperto che potrebbe esserci un modo migliore per trovare il contenuto spettrale quando il nostro obiettivo è quello di utilizzare lo spettro stimato per prevedere i prossimi campioni. Potremmo voler usare filtri di Goertzel di lunghezza variabile invece dei filtri di lunghezza fissa in tutte le implementazioni di Goertzel. L'immagine allegata mostra la differenza tra il Goertzel a lunghezza fissa implementato come Goertzel_v1.mq4 e un Goertzel a lunghezza variabile. Una bella differenza.

Ho l'abitudine di scrivere note a me stesso mentre analizzo un problema. Con l'avanzare dell'età, ho scoperto che questo aiuta con i problemi di memoria a breve termine, che mi affliggono (da qui MadCow...). Il documento allegato è la mia serie di note sulla lunghezza variabile Goertzel, e perché la preferisco. Apprezzerei qualsiasi feedback.variable_length_goertzel_filters.doc

Saluti ...MadCow...

 

Feedback

MadCow:
Voglio scusarmi per aver modificato bruscamente il mio post precedente. (Potete leggerlo integralmente nella risposta di Simba). La mia ragione è che ho scoperto che l'appiattimento dei punti finali non è quello che pensavo. Semplicemente imposta i due punti finali a 0 e aggiunge una piccola quantità ad ogni campione in mezzo per compensare questo. Aggiunge essenzialmente una componente di periodo molto lungo, che possiamo ignorare. Non distorce l'uscita di corrente per una frequenza sufficientemente alta. Inoltre ho sbagliato a scrivere Goertzel.

E non credo più che la FFT o Goertzel sia il modo migliore per trovare le componenti cicliche.

Guardando l'appiattimento del punto finale e l'algoritmo Goertzel ho scoperto che potrebbe esserci un modo migliore per trovare il contenuto spettrale quando il nostro obiettivo è quello di utilizzare lo spettro stimato per prevedere i prossimi campioni. Potremmo voler usare filtri di Goertzel di lunghezza variabile invece dei filtri di lunghezza fissa in tutte le implementazioni di Goertzel. L'immagine allegata mostra la differenza tra il Goertzel a lunghezza fissa implementato come Goertzel_v1.mq4 e un Goertzel a lunghezza variabile. Una bella differenza.

Ho l'abitudine di scrivere note a me stesso mentre analizzo un problema. Con l'avanzare dell'età, ho scoperto che questo aiuta con i problemi di memoria a breve termine, che mi affliggono (da qui MadCow...). Il documento allegato è la mia serie di note sulla lunghezza variabile Goertzel, e perché la preferisco. Apprezzerei qualsiasi feedback.variable_length_goertzel_filters.doc

Saluti ...MadCow...

MadCow,

Come vedo dal tuo .doc

1-La base di tutto il tuo pensiero è che Goertzel ha bisogno di 3 * massimo periodo tassi di campionamento, quindi, se si desidera eseguire la scansione per i cicli fino a 200 periodi, è necessario almeno 600 campioni ... Giusto.

2-Conseguentemente, i cicli a bassa periodicità (alta frequenza) potrebbero non essere rappresentativi di ciò che sta realmente accadendo al momento...per esempio, un ciclo di 13 barre trovato su un arco delle ultime 600 barre potrebbe non essere lì ora, e, sì, hai assolutamente ragione.

3-Concettualmente, ci può essere una soluzione più semplice, però, ed è solo per la scansione separatamente per diverse bande di frequenza ... quindi se si vuole confermare il ciclo di 13 periodi che hai trovato, devi rifare una scansione sulle ultime 39 barre ... o, ancora meglio, fare una scansione sulle ultime 60 barre per i cicli con freq 1/10 a 1/5.

Conclusione...devi fare diverse scansioni...questo è stato accennato da JM Hurst nel suo corso di 1600 pagine, e spiegato da Brian Millard in dettaglio.... oppure, puoi costruire uno scanner multifreq, multispan che scansioni in "blocchi" di "periodo massimo vs lunghezza della scansione" correlati...questo sarà davvero originale e innovativo

Saluti

S

 
SIMBA:
MadCow,

Come vedo dal tuo .doc

1-La base di tutto il tuo ragionamento è che Goertzel ha bisogno di 3*periodi massimi di campionamento, quindi, se vuoi cercare cicli fino a 200 periodi, hai bisogno di almeno 600 campioni...Giusto.

2-Conseguentemente, i cicli a bassa periodicità (alta frequenza) potrebbero non essere rappresentativi di ciò che sta realmente accadendo al momento...esempio, un ciclo di 13 barre trovato su un arco delle ultime 600 barre potrebbe non essere lì ora, e, sì, hai assolutamente ragione.

3-Concettualmente, ci può essere una soluzione più semplice, però, ed è solo per la scansione separatamente per diverse bande di frequenza ... quindi se si vuole confermare il ciclo di 13 periodi che hai trovato, devi rifare una scansione sulle ultime 39 barre ... o, ancora meglio, fare una scansione sulle ultime 60 barre per i cicli con freq 1/10 a 1/5.

Conclusione...devi fare diverse scansioni...questo è stato accennato da JM Hurst nel suo corso di 1600 pagine, e spiegato da Brian Millard in dettaglio.... oppure, puoi costruire uno scanner multifreq, multispan che scansioni in "blocchi" di "periodo massimo vs lunghezza della scansione" correlati...questo sarà davvero originale e innovativo

Saluti

S

Chiaramente sei molto più avanti di me su questo. È bello avere la conferma che posso ancora pensare in modo logico.

Ho guardato l'uso di diverse scansioni, e ho deciso che cercare di trovare cicli brevi in blocchi lunghi potrebbe mancarli, quindi potrei non tornare mai indietro per confermare che erano lì. Inoltre ci vorrebbe un sacco di calcolo extra per guardare molti blocchi. Così ho guardato il codice e ho deciso che potevo modificare il codice Goertzel_v1 per fare lo scanner multifreq e multispan direttamente. Il codice è effettivamente più semplice e richiede meno cicli di calcolo dell'originale _v1. Innovazione o solo fortuna? Il Goertzel_v1 modificato (ora _v2) è stato usato nel mio post precedente.

In allegato ci sono due modifiche, _v2 fa il lavoro senza l'appiattimento del punto finale, anche se può essere aggiunto rimuovendo alcuni commenti nel codice. _v3 fa l'intero lavoro incluso l'appiattimento del punto finale per ogni blocco/periodo. Puoi variare il numero minimo di cicli da cercare usando la variabile numcycles. Questo cambia la risoluzione dei filtri, con più cicli che danno una migliore risoluzione, ma richiedono più campioni, permettendo così ai segnali passati di interferire con quelli attuali. Potete anche usare il prezzo mediano invece della chiusura impostando useclose a false. Non fa alcuna differenza che io possa vedere.

Le mie capacità di codifica sono piuttosto arrugginite, quindi potrebbe esserci un problema di codifica con l'appiattimento del punto finale, ma non credo. Se non c'è un problema di codice, allora EPF non aiuta per la scansione multi freq.

I prossimi passi che farò sono decidere come selezionare i componenti da usare per la predizione, e come stimare la longevità della predizione. Sono incline a utilizzare una misura del SNR in ogni filtro che tiene un picco per selezionare i picchi, piuttosto che solo l'ampiezza, ma non ho ancora alcun indizio sulla longevità di predizione... forse la sperimentazione aiuterà. Qualche suggerimento?

Saluti ... MadCow...

goertzel_v3.mq4[/ATTACH]

File:
 

Suggerimenti

MadCow:
Chiaramente sei molto più avanti di me su questo. E' bello avere la conferma che posso ancora pensare in modo logico.

Ho esaminato l'uso di diverse scansioni, e ho deciso che cercare di trovare cicli brevi in blocchi lunghi potrebbe mancarli, quindi potrei non tornare mai indietro per confermare che erano lì. Inoltre ci vorrebbe un sacco di calcolo extra per guardare molti blocchi. Così ho guardato il codice e ho deciso che potevo modificare il codice Goertzel_v1 per fare lo scanner multifreq e multispan direttamente. Il codice è effettivamente più semplice e richiede meno cicli di calcolo dell'originale _v1. Innovazione o solo fortuna? Il Goertzel_v1 modificato (ora _v2) è stato usato nel mio post precedente.

In allegato ci sono due modifiche, _v2 fa il lavoro senza l'appiattimento del punto finale, anche se può essere aggiunto rimuovendo alcuni commenti nel codice. _v3 fa l'intero lavoro incluso l'appiattimento del punto finale per ogni blocco/periodo. Puoi variare il numero minimo di cicli da cercare usando la variabile numcycles. Questo cambia la risoluzione dei filtri, con più cicli che danno una migliore risoluzione, ma richiedono più campioni, permettendo così ai segnali passati di interferire con quelli attuali. Potete anche usare il prezzo mediano invece della chiusura impostando useclose a false. Non fa alcuna differenza che io possa vedere.

Le mie capacità di codifica sono piuttosto arrugginite, quindi potrebbe esserci un problema di codifica con l'appiattimento del punto finale, ma non credo. Se non c'è un problema di codice, allora EPF non aiuta per la scansione multi freq.

I prossimi passi che farò sono decidere come selezionare i componenti da usare per la predizione, e come stimare la longevità della predizione. Sono incline a utilizzare una misura del SNR in ogni filtro che tiene un picco per selezionare i picchi, piuttosto che solo l'ampiezza, ma non ho ancora alcun indizio sulla longevità di predizione... forse la sperimentazione aiuterà. Qualche suggerimento?

Saluti ... MadCow...

goertzel_v3.mq4[/ATTACH]

MadCow,

1-Come decidere quali componenti prendere per la predizione: Usa 3 dei tuoi v3, imposta ognuno di loro su (MaxPer-MinPeriod):50-10,100-50,200-100.

2-Poi selezionate un solo ciclo per v3, quello con l'ampiezza più alta.

3-Poi usando, periodicità, ampiezza e fase di ognuno dei 3 cicli, aggiungeteli in un composito.

4-Lunghezza della previsione?...Oltre a calcolare l'esponente di Lyapunov ? regola empirica, IMO, è quella di utilizzare un terzo a metà delle barre del ciclo più breve ..

Ora, puoi credermi o no, e, sinceramente, non ne hai motivo, perché non ti spiegherò il perché, oltre a dirti che ci sono stato e l'ho fatto...

5-SNR:Lascia perdere..non funziona,puoi provare tutti i modi che vuoi..non funzionano per selezionare buoni cicli.

6-Utilizzando tutti i cicli?...;)...Provalo e comincerai a credermi...NON FUNZIONA...la lunghezza della previsione sarà inferiore a 1 bar.

7-Utilizzare 3 cicli, ma solo quelli di massima ampiezza da 10-200? Può funzionare, di solito no, finirai per perdere tutti i cicli di breve periodicità.

8-Vuoi usare molti cicli? Non funziona, ma può funzionare se usi ampiezze quadrate, in ogni caso non usare più di 8 cicli.

Ora...il miglior consiglio che posso darti...di gran lunga, il modo migliore per TRADERE (non prevedere) questi cicli è quello di fare come ho scritto nei numeri 1 e 2 e poi...

9- Solo il commercio sull'allineamento dei 3 cicli (dimenticare i compositi)...io uso le fasi in gradi non in radianti, quindi quando i 3 cicli si allineano sopra i 180 gradi, ci si può aspettare un upmove, quando si allineano tra 0 e 179 gradi ci si può aspettare un downmove...in pratica, la regola che uso è sopra 180 e sotto 270(per i long)..e sopra 0 e sotto 90(per i short)...poi, una volta che hai l'allineamento, aspetta la conferma del prezzo, specialmente i breakout delle trendline, prima di entrare nel trade, usa un target relativo all'ATR del timeframe che stai negoziando e usa uno stop sotto il minimo precedente/sopra il massimo precedente...se il TP è >dello SL allora prendi il trade, se non lo è, allora passa....Oh, e un piccolo dettaglio, fai sempre trading nella direzione del timeframe più grande

Saluti

S

 

Link su Hurst

Link interessante... http://wintrend. com/Reports/TCPToday.pdf

A proposito..il 16 ottobre è la data di svolta per sp500,poi il 2 novembre e poi,DA TOP..tra il 13 novembre e il 9 dicembre(scusate,dat esatti jut per beneficenza )..si,si,il tizio del report dice diversamente,ma o lui o io mi sbaglio...indovinate chi?..hahahhahah..controllate il 16 ottobre quando arriva e decidete.

S

 
SIMBA:
MadCow,

1-Come decidere quali componenti prendere per la predizione: Usate 3 dei vostri v3, impostate ognuno di loro su (MaxPer-MinPeriod):50-10,100-50,200-100.

2-Poi selezionate un solo ciclo per v3, quello con l'ampiezza più alta.

3-Poi usando, periodicità, ampiezza e fase di ognuno dei 3 cicli, aggiungeteli in un composito.

4-Lunghezza della previsione?...Oltre a calcolare l'esponente di Lyapunov ? regola empirica, IMO, è quella di utilizzare un terzo a metà delle barre del ciclo più breve ..

Ora, puoi credermi o no, e, sinceramente, non ne hai motivo, perché non ti spiegherò il perché, oltre a dirti che ci sono stato e l'ho fatto...

5-SNR:Lascia perdere..non funziona,puoi provare tutti i modi che vuoi..non funzionano per selezionare buoni cicli.

6-Utilizzando tutti i cicli?...;)...Provalo e comincerai a credermi...NON FUNZIONA...la lunghezza della previsione sarà inferiore a 1 bar.

7-Utilizzare 3 cicli, ma solo quelli di massima ampiezza da 10-200? Può funzionare, di solito no, finirai per perdere tutti i cicli di breve periodicità.

8-Vuoi usare molti cicli? Non funziona, ma può funzionare se usi ampiezze quadrate, in ogni caso non usare più di 8 cicli.

Ora...il miglior consiglio che posso darti...di gran lunga, il modo migliore per TRADERE (non prevedere) questi cicli è quello di fare come ho scritto nei numeri 1 e 2 e poi...

9- Solo il commercio sull'allineamento dei 3 cicli (dimenticare i compositi)...io uso le fasi in gradi non in radianti, quindi quando i 3 cicli si allineano sopra i 180 gradi, ci si può aspettare un upmove, quando si allineano tra 0 e 179 gradi ci si può aspettare un downmove...in pratica, la regola che uso è sopra 180 e sotto 270(per i long)..e sopra 0 e sotto 90(per i short)...poi, una volta che hai l'allineamento, aspetta la conferma del prezzo, specialmente i breakout delle trendline, prima di entrare nel trade, usa un target relativo all'ATR del timeframe che stai negoziando e usa uno stop sotto il minimo precedente/sopra il massimo precedente...se il TP è >dello SL allora prendi il trade, se non lo è, allora passa....Oh, e un piccolo dettaglio, fai sempre trading nella direzione del timeframe più grande

Saluti

S

Simba...

Grazie per la tua generosità. Penso che mi hai risparmiato molti giorni di ricerca infruttuosa. Userò le informazioni nel miglior modo possibile.

Ci sono un paio di cose che dovrei spiegare al forum nel caso in cui qualcuno voglia usare _v2 o _v3.

In primo luogo, il calcolo della fase sembra essere in contraddizione con la definizione MT4 della funzione MathArctan. Non ho ancora testato il calcolo della fase, quindi state attenti ad usarlo. L'ho semplicemente lasciato così com'è in _v1.

In secondo luogo, anche se potete selezionare i componenti da vari blocchi come suggerisce Simba, non c'è bisogno di dividere lo spettro in più blocchi quando fate il calcolo. Infatti, potreste perdere una componente importante ai margini di un blocco se lo fate. L'intera periodicità può essere calcolata in un solo passaggio poiché la lunghezza del blocco è calcolata indipendentemente per ogni periodo. Ma, come dice Simba, un'immagine vale 1000 parole. Ecco lo spettro calcolato in un solo passaggio, confrontato con porzioni calcolate in passaggi separati con periodicità limitata.

Saluti ...MadCow...

File:
 

Benvenuto

MadCow:
Simba...

Grazie per la vostra generosità. Penso che mi avete risparmiato molti giorni di ricerca infruttuosa. Userò le informazioni nel miglior modo possibile.

Ci sono un paio di cose che dovrei spiegare al forum nel caso in cui qualcuno voglia usare _v2 o _v3.

In primo luogo, il calcolo della fase sembra essere in contraddizione con la definizione MT4 della funzione MathArctan. Non ho ancora testato il calcolo della fase, quindi state attenti ad usarlo. L'ho semplicemente lasciato così com'è in _v1.

In secondo luogo, anche se potete selezionare i componenti da vari blocchi come suggerisce Simba, non c'è bisogno di dividere lo spettro in più blocchi quando si fa il calcolo. Infatti, potreste perdere una componente importante ai margini di un blocco se lo fate. L'intera periodicità può essere calcolata in un solo passaggio poiché la lunghezza del blocco è calcolata indipendentemente per ogni periodo. Ma, come dice Simba, un'immagine vale 1000 parole. Ecco lo spettro calcolato in un solo passaggio, confrontato con porzioni calcolate in passaggi separati con periodicità limitata.

Saluti ...MadCow...

Benvenuto,

Penso che se non si divide lo spettro in blocchi allora si è morti...ma, ok, np..vediamo tra qualche mese cosa ne pensi.

Vado in vacanza per 3 settimane, cercherò di tenermi in contatto una volta alla settimana.

Saluti

S