Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 134
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
C'è un problema con l'Expert Advisor nel tester. Sto facendo dei test su dati di 1 minuto. Calcolo lo stocastico per il TF superiore da solo usando i dati dei minuti.
La storia dei verbali è stata scaricata dal 2001. Nella scheda "Charts" impostate il numero massimo di barre nella storia, e visualizzate.
L'intera storia sul grafico viene fatta scorrere.
Il problema è che, come si è scoperto con la stampa di debug, non importa da quale data avvio il tester, il numero massimo di barre
nella variabile Bars sulla prima barra del test (all'inizio) è sempre 1001 o 1002. Il valore di Bars aumenta di 1 ad ogni barra successiva.
Pertanto, è impossibile calcolare la TF superiore all'inizio.
C'è una soluzione. Dovremmo aggiungere un divieto di commercio prima che Bars raggiunga il valore desiderato.
Possiamo risolvere questo problema in un altro modo? Questo valore iniziale di Bars nel tester aumenta in qualche modo?
C'è un problema con l'Expert Advisor nel tester. Sto facendo dei test su dati di 1 minuto. Calcolo lo stocastico per il TF superiore da solo usando i dati dei minuti.
La storia dei verbali è stata scaricata dal 2001. Nella scheda "Charts" impostate il numero massimo di barre nella storia, e visualizzate.
L'intera storia sul grafico viene fatta scorrere.
Il problema è che, come si è scoperto con la stampa di debug, non importa da quale data avvio il tester, il numero massimo di barre
nella variabile Bars sulla prima barra del test (all'inizio) è sempre 1001 o 1002. Il valore di Bars aumenta di 1 ad ogni barra successiva.
Pertanto, è impossibile contare i TF superiori all'inizio.
C'è una soluzione. Dovremmo aggiungere un divieto di commercio prima che Bars raggiunga il valore desiderato.
Possiamo risolvere questo problema in un altro modo? Questo valore iniziale di Bars nel tester aumenta in qualche modo?
P.S. Ho premuto il pulsante di compilazione.
Ho davvero bisogno di capire l'algoritmo per calcolare la media mobile lisciata. Ci sono diverse ragioni per cui la funzione iMA non è adatta.
Come ho capito le informazioni da https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
Il primo elemento è calcolato come la somma dei prezzi di chiusura divisa per il periodo.
I seguenti sono calcolati secondo la formula SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Prendiamo un periodo di 5 e i prezzi di chiusura di EUR/USD H1 per il periodo dal 24.02.2017 19:00 al 24.02.2017 23.00 (GMT+2) cioè le ultime 5 candele
I prezzi di chiusura sono 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Corrispondentemente, 1° elemento - 1.056452; 2° elemento - 1.056852 3° elemento - 1.05676 4° elemento - 1.056632 5° elemento - 1.056489
Ma sul grafico SMMA 5, la chiusura è 1,05706, cioè la differenza è già nella terza cifra
Cosa sto contando di sbagliato?
E come devo calcolare correttamente per ottenere 1,05706?
Ho davvero bisogno di capire l'algoritmo per calcolare la media mobile lisciata. Ci sono diverse ragioni per cui la funzione iMA non è adatta.
Come ho capito le informazioni da https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
Il primo elemento è calcolato come la somma dei prezzi di chiusura divisa per il periodo.
I seguenti sono calcolati secondo la formula SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Prendiamo un periodo di 5 e i prezzi di chiusura di EUR/USD H1 per il periodo dal 24.02.2017 19:00 al 24.02.2017 23.00 (GMT+2) cioè le ultime 5 candele
I prezzi di chiusura sono 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Corrispondentemente, 1° elemento - 1.056452; 2° elemento - 1.056852 3° elemento - 1.05676 4° elemento - 1.056632 5° elemento - 1.056489
Ma sul grafico SMMA 5, la chiusura è 1,05706, cioè la differenza è già nella terza cifra
Cosa sto contando di sbagliato?
E come devo calcolare correttamente per ottenere 1,05706?
Signori sviluppatori! Buona giornata a tutti. Mi interessa una domanda su come creare un modello di Expert Advisor (script) al momento della creazione. Si può editare da qualche parte e come si fa?
Guardate l 'indicatore stesso, avrà più senso.
doppio SMMA(int periodo)
{
/riempire la matrice con i prezzi di chiusura
int k=periodo;
for(int i=1; i<=periodo; i++)
{
H1_Close[i]=Close[k];
// Print("H1_Close [",i,"] ",H1_Close[i]," Close [",k,"] ",Close[k]);
k--;
}
//calcolare il primo elemento come prezzo medio di chiusura
doppio Summ=0;
per (int i=1; i<=periodo;i++)
Summ=Summ+H1_Close[i]; //SUM1 = SUM(CLOSE, N)
double TmpSMMA=Summ/periodo; //SMMA1 = SUM1/N
//calcolare l'i-esimo elemento come SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N
for(int i=2;i<=periodo;i++)
TmpSMMA=(TmpSMMA*(periodo-1)+H1_Close[i])/periodo;
}
Il risultato è ancora molto diverso dai dati dell'indicatore nel terminale. PERCHE'?
Ho davvero bisogno di capire l'algoritmo per calcolare la media mobile lisciata. Ci sono diverse ragioni per cui la funzione iMA non è adatta.
Come ho capito le informazioni da https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
Il primo elemento è calcolato come la somma dei prezzi di chiusura divisa per il periodo.
I seguenti sono calcolati secondo la formula SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Prendiamo un periodo di 5 e i prezzi di chiusura di EUR/USD H1 per il periodo dal 24.02.2017 19:00 al 24.02.2017 23.00 (GMT+2) cioè le ultime 5 candele
I prezzi di chiusura sono 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Corrispondentemente, 1° elemento - 1.056452; 2° elemento - 1.056852 3° elemento - 1.05676 4° elemento - 1.056632 5° elemento - 1.056489
Ma sul grafico SMMA 5, la chiusura è 1,05706, cioè la differenza è già nella terza cifra
Cosa sto contando di sbagliato?
E come devo calcolare correttamente per ottenere 1,05706?
C'è un algoritmo di calcolo nell'inluder.
Ho scritto il codice della funzione nella risposta di Vitaly Muzichenko , ma non riesco a capire qual è l'errore
Quindi mi sembra di fare tutto come nei calcoli, ma il risultato non esce. Sono seduto qui per il 4° giorno e non riesco a capirlo.
Ho scritto il codice della funzione nella risposta di Vitaly Muzichenko , ma non riesco a capire qual è l'errore