Si basa sulla media mobile personalizzata della cartella con esempi di indicatori.
La funzione di calcolo SMA non è stata modificata. Il GMA è calcolato in una funzione separata. Alla fine calcoliamo la loro differenza.
Grazie! Si può vedere dal grafico sopra che l'indicatore sta adempiendo alla sua funzione. O non lo è? Ho ancora bisogno di lavorarci molto per capirlo meglio.
Yuriy Asaulenko: Non vedo niente, tranne quello che si può vedere senza indicatori.
Perché non vuoi vedere. Vedo che l'indicatore ha inequivocabilmente previsto un calo anche prima (al rialzo) di quanto il prezzo sia effettivamente sceso.
Yousufkhodja Sultonov: Grazie! Dal grafico qui sopra, si può vedere che l'indicatore sta adempiendo alla sua funzione. O forse sì?
L'indicatore legge ciò che è dato nella formula. Ma l'interpretazione dei risultati e lo sviluppo della ST sulla sua base è un compito molto più difficile. A proposito, per favore controllate se il GMA sta contando correttamente?
void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[]) { int i,limit; //--- first calculation or number of bars was changed double powr=1/(double)InpMAPeriod; if(prev_calculated==0)// first calculation { limit=InpMAPeriod+begin; //--- set empty value for first limit bars for(i=0;i<limit-1;i++) gma[i]=1.0; //--- calculate first visible value double firstValue=1;
Yousufkhodja Sultonov: Perché non vuoi vedere. Vedo che l'indicatore ha inequivocabilmente previsto un calo anche prima (al rialzo) di quanto il prezzo sia effettivamente sceso.
Lo è?
L'ha anche guardato di nuovo.
Zy Un derivato da MA avrebbe dato la stessa cosa. Anche ancora prevedeva la direzione).
elibrarius: L'indicatore conta ciò che è dato nella formula. Ma interpretare i risultati è un compito molto più difficile. A proposito, per favore controllate se il GMA è corretto?
void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[]) { int i,limit; //--- first calculation or number of bars was changed double powr=1/(double)InpMAPeriod; if(prev_calculated==0)// first calculation { limit=InpMAPeriod+begin; //--- set empty value for first limit bars for(i=0;i<limit-1;i++) gma[i]=1.0; //--- calculate first visible value double firstValue=1;
Sfortunatamente, non so molto del codice, lasciate che qualcuno esperto controlli confrontando con le formule date o inserendo i prezzi del test dato nella tabella originale. Sento, dall'ordine dei numeri, che state contando correttamente.
Allego l'indicatore richiesto.
Si basa sulla media mobile personalizzata della cartella con esempi di indicatori.
Funzione di calcolo SMA senza modifiche.
Il GMA è calcolato in una funzione separata.
Alla fine calcoliamo la loro differenza.
Allego l'indicatore richiesto.
Si basa sulla media mobile personalizzata della cartella con esempi di indicatori.
Funzione di calcolo SMA senza modifiche.
Il GMA è calcolato in una funzione separata.
Alla fine calcoliamo la loro differenza.
Allego l'indicatore richiesto.
Si basa sulla media mobile personalizzata della cartella con esempi di indicatori.
La funzione di calcolo SMA non è stata modificata.
Il GMA è calcolato in una funzione separata.
Alla fine calcoliamo la loro differenza.
Grazie! Si può vedere dal grafico sopra che l'indicatore sta adempiendo alla sua funzione. O non lo è? Ho ancora bisogno di lavorarci molto per capirlo meglio.
Domanda: che periodo si usa?
Non si vede nulla, tranne quello che si vede senza indicatori.
Periodo M1. È scritto nell'angolo sinistro).
Non vedo niente, tranne quello che si può vedere senza indicatori.
Grazie! Dal grafico qui sopra, si può vedere che l'indicatore sta adempiendo alla sua funzione. O forse sì?
A proposito, per favore controllate se il GMA sta contando correttamente?
void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
{
int i,limit;
//--- first calculation or number of bars was changed
double powr=1/(double)InpMAPeriod;
if(prev_calculated==0)// first calculation
{
limit=InpMAPeriod+begin;
//--- set empty value for first limit bars
for(i=0;i<limit-1;i++) gma[i]=1.0;
//--- calculate first visible value
double firstValue=1;
for(i=begin;i<limit;i++)
firstValue*=price[i];
firstValue=MathPow(firstValue, powr);
gma[limit-1]=firstValue;
}
else limit=prev_calculated-1;
//--- main loop
for(i=limit;i<rates_total && !IsStopped();i++){
gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
}
//---
}
Non si vede niente, tranne quello che si vede senza indicatori.
Periodo M1. È scritto nell'angolo sinistro).
Perché non vuoi vedere. Vedo che l'indicatore ha inequivocabilmente previsto un calo anche prima (al rialzo) di quanto il prezzo sia effettivamente sceso.
Lo è?
L'ha anche guardato di nuovo.
Zy Un derivato da MA avrebbe dato la stessa cosa. Anche ancora prevedeva la direzione).
L'indicatore conta ciò che è dato nella formula. Ma interpretare i risultati è un compito molto più difficile.
A proposito, per favore controllate se il GMA è corretto?
void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
{
int i,limit;
//--- first calculation or number of bars was changed
double powr=1/(double)InpMAPeriod;
if(prev_calculated==0)// first calculation
{
limit=InpMAPeriod+begin;
//--- set empty value for first limit bars
for(i=0;i<limit-1;i++) gma[i]=1.0;
//--- calculate first visible value
double firstValue=1;
for(i=begin;i<limit;i++)
firstValue*=price[i];
firstValue=MathPow(firstValue, powr);
gma[limit-1]=firstValue;
}
else limit=prev_calculated-1;
//--- main loop
for(i=limit;i<rates_total && !IsStopped();i++){
gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
}
//---
}