Imparare e scrivere insieme in MQL5 - pagina 21

 

потому что вы берете каждый раз новое время тика, и оно конечно не равно предыдущему.

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?

 
Khomtchenko:

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?

ad esempio https://www.mql5.com/ru/docs/series/copytime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyTime - Документация по MQL5
 
Khomtchenko:

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.

Sì, ho guardato lì. Hanno iniziato per una buona salute e sono finiti con un mucchio di file che fanno qualcosa di specifico, ma io ho solo bisogno di una funzione e basta. Non potevano darmi il codice del prodotto finale. Hanno fatto un casino...
 

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.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Khomtchenko:
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.

 
Khomtchenko:

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

bool NewBar()
  {

   if(CopyTime(_Symbol,_Period,0,1,iTime)<1)return(false);

   if(lastbar!=iTime[0])
     {
      lastbar=iTime[0]];
      return(true);
     }
   else
     {
      return(false);
     }
  }
 

C'è un esempio nella pagina con la funzione isNewBar

https://www.mql5.com/ru/forum/2804/38752#comment_38752

Что меняет режим тестера "только цены открытия"?
Что меняет режим тестера "только цены открытия"?
  • www.mql5.com
Собственно, для советника работающего по onTick, в режиме "Только цены открытия" при тестировании все вычисления индикаторов и вызов функции OnTick() в экспертах происходит только один раз на бар.
 

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:

Risultati dei test di mql4 EA

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:

Risultati dei test del consigliere mql5

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!!!