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
- Indicatori ZigZag Potenziati: Scopri le Nuove Funzionalità per MetaTrader 4
- Volatilità Stocastica: Indicatore per MetaTrader 5 da Utilizzare sul Grafico
- Indice di Volatilità Chaikin: Scegli il Giusto Algoritmo di Smussamento per MetaTrader 5
- Indicatore di Equità e Bilancio per MetaTrader 5: Monitoraggio della Tua Performance di Trading
- Notis: L'Indicatore per Misurare la Volatilità su MetaTrader 5