Home Indicatore tecnico Post

Stochastic con Riduzione del Rumore: Un Indicatore per MetaTrader 4

Allegato
9279.zip (2.09 KB, Scarica 0 volte)

Descrizione:

Oscillatore Stocastico Standard con funzione di sensibilità.

Questo indicatore mantiene i parametri di uno stocastico standard, ma include un ulteriore parametro di "sensibilità" (Sens nella finestra dei parametri).

La funzione consente di considerare solo le oscillazioni che si trovano al di sotto di una certa soglia predefinita, specificata in punti. In questo modo, possiamo ridurre notevolmente i falsi segnali.

Il classico Stocastico di Lane posiziona il prezzo corrente tra un massimo e un minimo per un certo numero di barre, definito dal valore di %K (periodo K), e non distingue tra le differenze tra gli estremi. Ad esempio, per 1 punto o 100 punti, i risultati sono identici e riceviamo i segnali di ipercomprato/ipervenduto.

Utilizzando una soglia, possiamo considerare solo le oscillazioni significative.

Immagine:

Fig 1.

Il campo dell'indicatore è lo stesso dell'iStochastic; l'unica differenza è che c'è un parametro aggiuntivo Sens - sensibilità.

I buffer di output sono gli stessi: 0 - valore dello Stocastico stesso, 1 - linea del segnale.

double iCustom(string symbol, int timeframe, "_StochNR", int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift); // StochNR aggiunto nuovo Sensfield

double iStochastic(string symbol, int timeframe, int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift) // stocastico standard 

Per un utilizzo pratico, è possibile richiamarlo come specificato sopra, ma è meglio farlo in un altro modo. Basta aggiungere del codice alla vostra funzione Stoch:

double Stoch(int Kperiod, int Slowing, int PriceFild, double sens, int i) {  
   // massimi e minimi prezzi
   double max,min,c;
   for(int j=i; j<i+Slowing; j++) {
      if(PriceFild==1) { // per Close
         max+=Close[ArrayMaximum(Close,Kperiod,j)];
         min+=Close[ArrayMinimum(Close,Kperiod,j)];
        }
      else { // per High/Low
         max+=High[ArrayMaximum(High,Kperiod,j)];
         min+=Low[ArrayMinimum(Low,Kperiod,j)];
        }
      c+=Close[j];
     }
   
   double delta=max-min;
   if(delta<sens) {
      sens/=2;
      max+=sens; min-=sens;
     }
   delta=max-min;
   if(delta==0) double s0=1;
   else s0=(c-min)/delta;

   return(100*s0);
  }

È chiaro che, se hai bisogno di una linea di segnale, necessiti di una media mobile aggiuntiva del suo valore. Un'altra possibilità è ottenerla dal primo buffer di iCustom, ma questo sarà più lento.

Come vedi, ora il nome è più informativo, includendo il tipo di calcolo del prezzo. Se la sensibilità è definita maggiore di 0, il suo valore viene aggiunto al nome dell'oscillatore.


Nota dell'editore:

Si noti che si tratta di una traduzione speculare della versione originale in russo.

Se hai domande per l'autore, suggerimenti o commenti, è meglio postare lì.

Se hai trovato utile questo codice per il trading o per scopi educativi, non dimenticare di ringraziare l'autore.

Post correlati

Commento (0)