Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Anche noi usiamo i radianti
Può essere una spiegazione: Nel codice MT4 moltiplichiamo alfa con il prezzo
Suppongo che questo sia il prezzo, i périods prima, no ?
E così abbiamo bisogno di aggiungere, per esempio con una len di 5
alfa*close[4]+alfa*close[3]+alfa*close[2]+alfa*close[1] and alfa*close
oppure
alfa[4]*chiudi[4]+alfa[3]*chiudi[3]+alfa[2]*chiudi[2]+alfa[1]*chiudi[1] e alfa*chiudi?
Ed è strano, perché con una lunghezza di 1 la len è uguale a 4 (4*1+0) e quindi la nonlagma non può essere uguale a close perché aggiungiamo l'alfa*prezzo degli ultimi 4 periodi
Grazie per i vostri prossimi commenti
Zilliq
Uso il tuo codice, ma per capire meglio uso il codice più semplice del NonlagMav3
doppio pi = 3.1415926535;
doppio Coeff = 3*pi;
int Fase = Lunghezza-1;
doppio Len = Lunghezza*Ciclo + Fase;
if ( counted_bars > 0 ) limit=Bars-counted_bars;
se ( counted_bars < 0 ) return(0);
se ( counted_bars ==0 ) limit=Bars-Len-1;
for(shift=limit;shift>=0;shift--)
{
Weight=0; Sum=0; t=0;
for (i=0;i<=Len-1;i++)
{
g = 1.0/(Coeff*t+1);
se (t <= 0,5 ) g = 1;
beta = MathCos(pi*t);
alfa = g * beta;
prezzo = iMA(NULL,0,1,0,MODE_SMA,Prezzo,shift+i);
Somma += alfa*prezzo;
Peso += alfa;
if ( t < 1 ) t += 1.0/(Fase-1);
else if ( t < Len-1 ) t += (2*Ciclo-1)/(Ciclo*Lunghezza-1);
}
se (Peso > 0) MABuffer[shift] = Somma/Peso;Dovresti usare la forma alfa[4]*chiusura[4]+alfa[3]*chiusura[3]+alfa[2]*chiusura[2]+alfa[1]*chiusura[1] e alfa*chiusura (alfa è diversa per ogni elemento)
Perché non fai una versione semplice che visualizza i valori di alfa e li confronta con i valori di alfa in metatrader 4?
Grazie Mladen,
Proverò questo
Infatti su MT4, ho il prezzo cfd del mio broker (Activtrade), e su Prorealtime questo è un altro flusso in Cash, quindi ci sono alcune grandi differenze
Grazie mille e ci vediamo dopo
Zilliq
Beh, ho provato molte cose diverse ma non funziona e non so assolutamente perché
Il mio codice sembra essere ok:
****************************
peso=0
somma=0
per i=0 a Len
se i<=Fase-1 allora
t = 1.0*i/(Fase-1)
altrimenti
t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*Length-1.0)
endif
beta = Cos(pi*t)
g = 1,0/(Coeff*t+1)
se t <= 0,5 allora
g = 1
endif
alfa = g * beta
somma=somma+alfa*chiusura
peso=peso+alfa
successivo
nonlagma=somma/peso
***************************
E simile al tuo, ma come vedi nel mio grafico, il nonlagma è molto lontano dal close
Hai un'idea del perché, e hai il codice NonlagMa in linguaggio Easy (spesso più facile da trascrivere)??
Grazie mille Mladen, sono stanco...
Vedi U
Zilliq
Beh, ho provato molte cose diverse ma non funziona e non so assolutamente perché
Il mio codice sembra essere ok:
****************************
peso=0
somma=0
per i=0 a Len
se i<=Fase-1 allora
t = 1.0*i/(Fase-1)
altrimenti
t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*Length-1.0)
endif
beta = Cos(pi*t)
g = 1,0/(Coeff*t+1)
se t <= 0,5 allora
g = 1
endif
alfa = g * beta
somma=somma+alfa*chiusura
peso=peso+alfa
successivo
nonlagma=somma/peso
***************************
E simile al tuo, ma come vedi nel mio grafico, il nonlagma è molto lontano dal close
Hai un'idea del perché, e hai il codice NonlagMa in linguaggio Easy (spesso più facile da trascrivere)??
Grazie mille Mladen, sono stanco...
Vedi U
Zilliq
Ecco una versione che calcola solo le alfa: _nonlag_ma_alphas.mq4
Fate qualcosa di simile in protrader. Una volta che sono uguali, dovrebbe essere facile rendere uguale anche la ma non lag. L'esempio è per il periodo 50
Grazie mille Mladen,
Lo testerò con questo primo passo
Vedi U
Zilliq
Bene,
Primo: buona notizia che ho lo stesso EUR/USD come te, perché sarà più facile da confrontare
Ma in realtà non ci riesco
Il tuo codice per calcolare l'alfa è
double Cycle = 4.0;
doppio Coeff = 3.0*Pi;
int Phase = NlmPeriod-1;
int len = NlmPeriod*4 + Phase;
if (ArraySize(alphas) != len) ArrayResize(alphas,len);
for (int k=0; k<len; k++)
{
se (k<=Fase-1)
doppio t = 1.0 * k/(Fase-1);
altrimenti t = 1.0 + (k-Fase+1)*(2.0*Ciclo-1.0)/(Ciclo*NlmPeriodo-1.0);
doppio beta = MathCos(Pi*t);
doppio g = 1.0/(Coeff*t+1); se (t <= 0.5 ) g = 1;
alfa[k] = g * beta;
}
for(int i=len-1; i>=0; i--) nlm = alphas;
Quindi, se ho ben capito:
1/ Primo sted: Calcola tutti gli alfa da 0 a len-1
Questo è:
alphas[k] = g * beta;
2/ Secondo passo, aggiunge tutti gli alfa da 0 a len-1
Questo è
for(int i=len-1; i>=0; i--) nlm = alphas;
Il problema è che ho sempre la stessa alfa sul mio grafico ? Come si può avere un'alfa diversa su ogni candela dato che k, t e così via sono sempre gli stessi su ogni candela e non dipendono dalla chiusura?
Il codice che ho su Prorealtime sembra essere lo stesso:
Pi=3.14159265358979323846264338327950288
Cyclee = 4.0
Coeff = 3.0*Pi
Fase = NlmPeriodo-1
len = NlmPeriodo*4 + Fase
alph=0
per k=0 a len-1
t=0
se (k<=Fase-1) allora
t = 1.0 * k/(Fase-1)
altrimenti
t = 1.0 + (k-Fase+1)*(2.0*Ciclo-1.0)/(Ciclo*NlmPeriodo-1.0)
endif
beta = Cos(Pi*t)
g = 1.0/(Coeff*t+1)
se (t <= 0,5 ) allora
g = 1
endif
alphas= g * beta
alph=alph+alphas
successivo
Bene,
Primo: buona notizia che ho lo stesso EUR/USD come te, perché sarà più facile da confrontare
Ma in realtà non ci riesco
Il tuo codice per calcolare l'alfa è
double Cycle = 4.0;
doppio Coeff = 3.0*Pi;
int Phase = NlmPeriod-1;
int len = NlmPeriod*4 + Phase;
if (ArraySize(alphas) != len) ArrayResize(alphas,len);
for (int k=0; k<len; k++)
{
se (k<=Fase-1)
doppio t = 1.0 * k/(Fase-1);
altrimenti t = 1.0 + (k-Fase+1)*(2.0*Ciclo-1.0)/(Ciclo*NlmPeriodo-1.0);
doppio beta = MathCos(Pi*t);
doppio g = 1.0/(Coeff*t+1); se (t <= 0.5 ) g = 1;
alfa[k] = g * beta;
}
for(int i=len-1; i>=0; i--) nlm = alphas;
Quindi, se ho ben capito:
1/ Primo sted: Calcola tutti gli alfa da 0 a len-1
Questo è:
alphas[k] = g * beta;
2/ Secondo passo, aggiunge tutti gli alfa da 0 a len-1
Questo è
for(int i=len-1; i>=0; i--) nlm = alphas;
Il problema è che ho sempre la stessa alfa sul mio grafico ? Come si può avere un'alfa diversa su ogni candela dato che k, t e così via sono sempre gli stessi su ogni candela e non dipendono dalla chiusura?
Il codice che ho su Prorealtime sembra essere lo stesso:
Pi=3.14159265358979323846264338327950288
Cyclee = 4.0
Coeff = 3.0*Pi
Fase = NlmPeriodo-1
len = NlmPeriodo*4 + Fase
alph=0
per k=0 a len-1
t=0
se (k<=Fase-1) allora
t = 1.0 * k/(Fase-1)
altrimenti
t = 1.0 + (k-Fase+1)*(2.0*Ciclo-1.0)/(Ciclo*NlmPeriodo-1.0)
endif
beta = Cos(Pi*t)
g = 1.0/(Coeff*t+1)
se (t <= 0,5 ) allora
g = 1
endif
alphas= g * beta
alph=alph+alphas
prossimoZilliq
Come ho detto: c'è un array di aplha
Quello che ho visualizzato lì è un array di alfa - ignora la componente temporale. Quelli sono i valori di ogni singolo valore alfa nell'array di alfa, Quelli sono i pesi che vengono applicati ad ogni elemento del prezzo che si usa per il calcolo
Probabilmente non capisco come chiami l'array di alphas (capisco alphas differenti su ogni candela), mi dispiace
Proverò un'altra volta...
Probabilmente non capisco come chiami l'array di alphas (capisco alphas differenti su ogni candela), scusa
Proverò ancora una volta...Zilliq
Coefficiente (alfa) per il prezzo 0 == 1
Coefficiente (alfa) per il prezzo 1 == 0.9nnnnn
e così via (come viene visualizzato dall'indicatore non lag ma alphas) e tutto ciò utilizzato per i prezzi len per ottenere il valore attuale non lag ma
Ok, penso di aver capito le tue spiegazioni (sei grande ) e ho fatto diversi test su MT4 con il tuo codice
l'alfa che come valore diverso da 1 a len-1 ponderano il prezzo e alla fine dividiamo per la somma degli alfa
Ecco perché il primo valore di alfa a destra è sempre 1 ed ecco perché anche se cambiamo il valore di nlm l'aspetto degli alfa sul grafico è sempre lo stesso tipo di serpente)
Bene, so che devo cercare come posso fare questo su Prorealtime...