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
потому что вы берете каждый раз новое время тика, и оно конечно не равно предыдущему.
Nell'ultima funzione hai preso il tempo di inizio della barra. quindi anche qui, prendi il tempo della barra, non il tempo del tick.
Spiegate a qualcuno che non capisce quale parametro del codice cambiare in quale.
Come descrivere il tempo della barra e non il tempo del tick?
Spiegate a qualcuno che non capisce quale parametro del codice cambiare in quale.
Come descrivere il tempo della barra piuttosto che il tempo del tick?
Spiegate a qualcuno che non capisce quale parametro nel codice cambiare in quale.
Come descrivere il tempo di una barra, non un tick?
Ecco una descrizione popolare del gestore dell'evento "nuova barra"
In generale, non siate pigri a guardare qualche volta gli articoli e il codice base prima di fare una domanda
Вот тут все популярно описано Обработчик события "новый бар"
In generale, non siate pigri a guardare articoli e basi di codice prima di fare una domanda.
In mql4 si poteva scoprire in cinque righe se la barra era nuova o no. E ora un sacco di file sono stati scritti, non è chiaro dove metterli, cosa scrivere dentro il programma...
In breve, se ci sono esperti, poi darmi un esempio di codice, in modo che non soffro, e posso inviare chiunque alla biblioteca me stesso, elettronico o reale.
Non ne dubito, ma lo chiedo solo per controllare - qualcuno ha creato uno stesso EA in mql4 e mql5 e ha confrontato i risultati dei test? Dovrebbe essere perfettamente simile se il codice è trasformato correttamente, no? O mi sbaglio?
Se il test è parallelo lì e in mql5 la logica è posta in onTick, allora sarà simile.
L'unica differenza potrebbe essere negli spread. In 5, la storia contiene gli spread. Nella versione 4, lo spread del tester è uguale allo spread attuale del terminale.
Se si testa "ogni tick", sembra che sarà ancora più piccolo, poiché gli algoritmi di generazione dei tick sono diversi nelle versioni.
In mql4 si poteva scoprire in cinque righe se la barra era nuova o no. E ora un sacco di file sono stati scritti, non è chiaro dove metterli, cosa scrivere dentro il programma...
In breve, se ci sono esperti, poi darmi un esempio di codice, in modo che non soffro, e posso inviare chiunque alla biblioteca me stesso, elettronico o reale.
Qui, dichiarate la variabile lastbar come statica o globalmente, l'array iTime globalmente
C'è un esempio nella pagina con la funzione isNewBar
https://www.mql5.com/ru/forum/2804/38752#comment_38752
1. Non ho chiesto nulla sui risultati dei test delle stesse strategie su mql4 e mql5.
Ero solito entrare nel mercato su una nuova barra se le condizioni soddisfano i requisiti di ingresso e chiudere la posizione se gli indicatori mostrano il segnale opposto ed entrare nuovamente su una nuova barra.
Su mql4 ho usato questa procedura per entrare su una nuova barra:
void Fun_New_Bar() // Ф-ия обнаружения ..
{ // ... nuova barra
static datetime New_Time=0; // Ora della barra corrente
New_Bar=false; // nessuna nuova barra
if(New_Time!=Time[0]) // Confronta i tempi
{
New_Time=Time[0]; // Ora il tempo è
New_Bar=true; // La nuova barra è catturata
}
}
Questo è il risultato del test del robot su mql4 con la mia strategia:
Grazie per aver inviato le procedure per determinare la nuova barra. Stanno lavorando. Ho fatto uno script che scrive Alert su una nuova barra e l'ho testato su M1 quindi non ho aspettato troppo.
Ma la stessa strategia dà risultati completamente diversi (e gli stessi) usando entrambe le procedure in mql5 Expert Advisor:
Non mi sono strappato la camicia e battuto i piedi per niente. Voglio ripetere i risultati, ma non coincidono.
Ecco come appare approssimativamente la funzione onStart in mql4
int start()
{
GetIns();
Fun_New_Bar();
se (New_Bar==false) return(0);
se (Totale()>0)
{
CloseSellEnd();
CloseBuyEnd();
}
se (Totale()<1)
{
OpenBuy();
OpenSell();
}
ritorno(0);
}
Lo stesso in mlq5:
void OnTick()
{
GetIns();
se (NewBar())
{
se (Totale()>0) TryToClose();
se (Totale()<1)
{
OpenBuy(Lots,10, "EUR/USD (Buy)",102406);
OpenSell(Lots,10, "EUR/USD (Sell)",102406);
}
}
}
GetIns per elaborare i parametri dell'indicatore, e Total() - dà il numero di posizioni con la magia richiesta per mql4 o con il simbolo richiesto per mql5.
Aiuto.
Penso di aver trovato la ragione della discrepanza. Non ci crederete. L'MT4 e l'MT5 hanno una storia di quotazione diversa. Sembra essere leggermente diverso e la strategia è testata con un'enorme differenza!!!!
Ecco una trama su diversi terminali:
Se si guarda più da vicino, c'è una differenza. Una piccola? E qual è la differenza tra i risultati dei test della strategia, anch'essa piccola?
Contatterò gli sviluppatori! Che beta!!!