una strategia di trading basata sulla teoria dell'onda di Elliott - pagina 259

 
cooper123 19.03.07 15:15

Forse sto pensando troppo, ma non capisco cosa sia il channel crossover.
L'immagine è una situazione tipica, ma non c'è un crossover di canali come tale.
Ci sono canali con scale diverse. Non capisco come una zona pivot si formi incrociando i canali.
Forse qualcuno può spiegare questa immagine.


Ecco una delle tipiche zone di inversione



Volevo mostrare una parvenza di gradiente di probabilità in questa zona usando diversi colori.

ZZZ Prima l'ho fatto in Paint, poi mi sono imbarazzato e l'ho rifatto in Photoshop
 
<br/ translate="no"> Quindi, se mi date il diritto di scegliere, scelgo MQL. :-))
Qui o direttamente alla mia casella di posta elettronica - come preferite.
Grazie in anticipo.


Ok!


Il codice stesso:

//+------------------------------------------------------------------+
//|                                     Moving Average Batteruot.mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Blue
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=300, K=1;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=Open[Start+1];
	 MA[Start+2]=Open[Start+2];
	 for (i=0;i<=Start;i++) {Y[i]=Open[i];}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}	 
    for (i=Start-2;i>=0;i--) {Y[i]=MA[i];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



Quindi, si mette l'indicatore sul grafico e si lavora. Questo è un filtro passa-basso (LPF) ottimale (nel senso del ritardo di fase (PD)). Ho messo due precursori nelle impostazioni:
FLFPeriod è un numero naturale nell'intervallo da 2 a quello desiderato. È responsabile della larghezza di banda del LPF.
K è un numero naturale nell'intervallo da 1 a quello desiderato. Questa variabile imposta l'ordine del LPF, che a sua volta determina la pendenza del LPF. Tutti i dettagli del funzionamento e della progettazione dell'LPF sono forniti al link qui sopra. Bisogna ricordare che a K>2 le armoniche ad alta frequenza sono soppresse MOLTO fortemente e un ulteriore aumento dell'ordine non ha senso - porta solo a un grande aumento di FS e alla comparsa di bip parassiti debolmente smorzati (fenomeno Gibson) nel punto di partenza (da me è 5000 bar). La media è fatta usando i prezzi di apertura.
Per esperienza, ho trovato che per scopi pratici, è ottimale selezionare K=1, e si raggiunge il massimo rapporto qualità lisciatura/FZ.

 
Grazie mille Jhonny
Ora è tutto più o meno chiaro, e anche dove mettere l'energia potenziale sembra essere immaginabile.


Buona fortuna.
 
a Neutron.
Naturalmente mi sono perso molto in questo thread, ma guardando il codice dell'indicatore, e ancora prima guardando ciò che questo indicatore disegna, non capisco - qual è il punto?
In primo luogo, questo mouwing ha lo stesso ritardo e non ha nessun vantaggio sulle sue controparti (è sul grafico).
In secondo luogo, dal codice dell'indicatore, non ho visto alcuna evidenziazione. Ora andrò a vedere le ultime 5 pagine del thread, forse troverò la risposta.

PS. Il codice dell'indicatore è tutt'altro che perfetto.
 
a Rosh

Tutto dipende dallo scopo che si persegue con questo o quel LPF. Per il mio TS è importante avere il più basso SPF possibile con la massima stabilità nella larghezza di banda del filtro. Queste sono le qualità che i filtri Butterloot soddisfano (dettagli nel link qui sopra). Per esempio, ecco una schermata del terminale che esegue due muwenges - Butterluot (blu) e la semplice somma scorrevole (rosso).



Si può vedere che con maggiore PZ, il filtro standard mostra meno qualità di levigatura, si manifesta nella trasmissione delle componenti ad alta frequenza (interruzioni sul grafico) e la soppressione delle componenti a bassa frequenza dello spettro (mancanza di cali e colline medie). In particolare nel mio TS, questo porta a più della metà della redditività. Inoltre, cambiando il parametro K possiamo, a nostra discrezione, cambiare la forma della larghezza di banda del filtro, avvicinandola all'ideale o, al contrario, andando nella direzione di una semplice media mobile. Concordo, è una manopola in più per una mente curiosa!

P.S. Il codice, sono d'accordo, è sub-ottimale dato che l'ho graffiato io stesso :-)
 
Bere cognac e riflettere sull'armonia del Caos. :)
 
2 Neutrone
Ciao Sergei! Grazie per il codice, ho confrontato le immagini. Volevo postare il risultato, ma mql4.com ha avuto problemi con l'editor, e poi ho preso un virus e ho dovuto pulire e ripristinare i dati. Ora lo sto pubblicando.


Non so come il parametro FLFPeriod corrisponda al normale periodo МА, ecco perché ho preso il periodo=100 per tutti e tre i grafici. Inoltre, K=1. La linea blu è la MA di Butterloot, la linea rossa è la mia, CadetBlue è la MA semplice standard.
Forse questa immagine non vi impressionerà, perché la mia curva non è abbastanza liscia con un FP più piccolo.
Tuttavia, non ho perseguito un tale obiettivo, solo "riportare i risultati". :-))
 
Non so come il tuo parametro FLFPeriod sia in relazione con un normale periodo MA, quindi ho preso un periodo di 100 per tutti e tre i grafici. Inoltre, K=1. La linea blu è la MA di Butterloot, la linea rossa è la mia, CadetBlue è la MA semplice standard.
Probabilmente questa foto non vi impressionerà, perché con il mio FP inferiore la curva non è ancora abbastanza liscia.


Yura, ciao!
Onestamente, non mi sono posto il compito di collegare il parametro FLFPeriod alla larghezza di banda FLF, ma non è difficile da fare.
Sarebbe interessante vedere i vostri risultati, se il parametro di tutti i filtri è abbinato in modo che i FLF coincidano.

Qui sotto vi do il codice della LPF di Butterloot con ZERO FZ!!!! :-)))
//+------------------------------------------------------------------+
//|              Moving Average Batteruot Simmetric (ЭТО ШУТКА!).mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=20, K=4;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=(Open[Start+1]+Close[Start+1]+High[Start+1]+Low[Start+1])/4;
	 MA[Start+2]=(Open[Start+2]+Close[Start+2]+High[Start+2]+Low[Start+2])/4;
	 for (i=0;i<=Start;i++) {Y[i]=(Open[i]+Close[i]+High[i]+Low[i])/4;}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}
	 Y[0]=MA[0];
	 Y[1]=MA[1]; 	 
          for (i=2;i<=Start-2;i++) {Y[i]=g*(MA[i]+2*MA[i-1]+MA[i-2])+b*Y[i-1]-ci*Y[i-2];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



NON CERCATE DI USARE QUESTO CODICE PER COSTRUIRE UNA STRATEGIA DI TRADING!!!




 
2 Neutron
Apprezzo la battuta! :-))
Ma quanto è bello!
Ho regolato il mio parametro MA in modo che corrisponda al massimo principale dell'immagine.
Quindi, FLFPeriod=100, K=1, il mio MA ha periodo=136 e il periodo di MAsimple=136.
Si può vedere dall'immagine che la coincidenza di un massimo non significa necessariamente la coincidenza degli altri.


A proposito, devo correggere il codice dell'indicatore. Invece di
MA[Start+1]=Open[Start+1]; MA[Start+2]=Open[Start+2];


scrivere

MA[Start]=Open[Start]; MA[Start-1]=Open[Start-1];



 
<br/ translate="no"> Ok!

Codice proprio:
...............................................................


Grazie per l'indicatore - interessante.

Un'altra cosa: c'è un errore nel codice - supera i limiti dell'array.
Impostare la dimensione del doppio MA[5003];
Y[] potrebbe non essere posizionato, ma lasciare il doppio Y[]; sarà corretto.


Buona fortuna.