Calcolo PPZ - aiuto per perfezionare

 

Ciao a tutti.

Ho scritto un indicatore per calcolare automaticamente PPZ usando tre frattali. L'idea di base: prendiamo una finestra di N barre e determiniamo i livelli in cui si trovano 3 frattali alla distanza più breve. L'indicatore traccia 4 di questi livelli. Il problema è nella velocità. L'indicatore usa un overshooting smussato, non mi viene in mente niente. Ora che la finestra della barra è 100-300, non è un problema in linea di principio. Ma ora sto pensando di aggiungere un quarto frattale e mi rendo conto che devo cambiare l'algoritmo di calcolo. Quali sono i vostri pensieri? Imho, lo strumento costruisce già livelli interessanti. Allego il codice e un'immagine con le spiegazioni.


File:
 

Migliorato l'indicatore, ora i livelli sono ricercati da 4 frattali.

A 150 bar il calcolo richiede fino a 30 secondi, non allarmatevi. È categoricamente sconsigliato impostare più di 200 barre.

In questo caso i livelli sono molto più forti e corretti. Sembra che questa cosa funzioni davvero!


File:
 

Eurobucks l'altro giorno:


 

È un ottimo indicatore.

Ricevo un errore:

2010.02.22 15:46:17 Dsergf-wPA_v2.0 EURUSD,M15: numero intero non valido come parametro 1 per la funzione SetIndexEmptyValue


PS

Sarebbe molto bello specificare l'arco di tempo da cui sono costruiti i livelli.

 

Riposto gli indicatori.

Strano che abbia funzionato per me, c'era ovviamente un errore

 

Eurobucks M15

Nessun commento.


 

No, sembra funzionare, ma il messaggio di errore è un po' confuso.

 

Ho corretto l'errore.

Non è un problema fissare il tempo, lo farò domani, ora non ho tempo.

La cosa brutta è che è così lento, mi piacerebbe rendere la finestra più ampia, ma devo ottimizzare seriamente l'algoritmo, e non ho ancora capito come farlo. :-(

 
Ottimizzato l'algoritmo, è sicuro di mettere in 300 bar
File:
 

Penso che ci sia un piccolo errore nel codice:



se(k!=j && k!=j && MathAbs(Ind0[i]-Ind0[k])>minBars && MathAbs(Ind0[k]-Ind0[j])>minBars) {


è necessario correggere una j per i


 

Sì, un errore. Non influisce sul risultato, ma deve essere corretto.

Riscaricato l'indicatore versione 2.3