MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 42

 
zigan:


Questa è una novità per me! Sono così abituato al doppio cinque per cinque:

Non mi era mai venuto in mente che ci potesse essere un intero... c'è una gamma da 1 a 3. E che senso ha la rappresentazione dei numeri interi? Solo per farlo funzionare più velocemente?



Non so, penso che gli sviluppatori avessero qualche scopo o nessuno scopo...
 
St0nE:

Sì, è così che definisco la nuova barra e ora, su 509 funziona in modo stabile.

Oggi ho aggiornato al 537 e ho avuto un errore quando lavoravo con un array. Ho aperto il nuovo documento e sì, ci sono due modi per usare Bars.

Ecco perché ho chiesto qui. Se non ti dispiace, puoi suggerire un altro modo praticabile per definire una nuova barra?

Grazie...


void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
Ma bisogna capire che se si cambia il periodo del grafico, la funzione si blocca... Non ho tempo per codificare ora, il fallimento è corretto da iTime()
 
alexvd:

Puoi descrivere le impostazioni impostate nel tester della strategia, i parametri di input, il modello di generazione dei tick... + allegare l'Expert Advisor da testare.

Inviate tutto questo al Service Desk.


Applicazione #882960
 

Agli sviluppatori di

Si prega di implementare REASON_TEMPLATE come motivo per la deinizializzazione di EA.

Naturalmente mi piacerebbe anche avere una "lista completa" di tutte le possibili ragioni, non diversa da MT5.

 
VOLDEMAR:

Ma dovete capire che la funzione fallirà quando il periodo del grafico viene cambiato ... Non ho tempo per codificare ora. Il fallimento è corretto tramite iTime()

Grazie! Questo è tutto...

Il mio periodo non cambia al volo, quindi non è ancora rilevante... :-)

Ho capito che questa funzione lavorerà su ogni tick, non sarà più lenta della mia variante?

 
St0nE:

Grazie! Questo è tutto...

Il mio periodo non cambia al volo, quindi non è ancora rilevante... :-)

Immagino che questa funzione funzionerà su ogni tick, non sarà più lenta della mia variante?



La tua versione non può essere utilizzato, si richiede il numero di barre nella storia e confrontare, ha senso logicamente, ma con il tipo di storia che broker ci danno, questo approccio non può essere utilizzato ... Semplicemente non funziona correttamente...

Ci sono spesso dei buchi nella storia, molti broker hanno un periodo di storia diverso, alcuni dal 1970 e alcuni dall'inizio del 2012, il numero di barre sarà diverso, se cambiate timeframe a uno più piccolo o più grande anche il numero di barre cambierà, il terminale pomperà la storia o i buchi saranno chiusi, il numero cambierà anche ....

 

Rilasciata la build 538 con le correzioni.

In particolare è stato risolto il bug di iVolume

 
VOLDEMAR:


La tua versione non può essere utilizzata, si richiede il numero di barre nella storia e si confronta, sì logicamente ha senso, ma con il tipo di storia che i broker ci danno, questo approccio non può essere utilizzato ... Semplicemente non funziona correttamente...

Ci sono spesso dei buchi nella storia, molti broker hanno un periodo di storia diverso, alcuni dal 1970 e alcuni dall'inizio del 2012, il numero di barre sarà diverso, se cambiate timeframe in uno più piccolo o più grande anche il numero di barre cambierà, il terminale aggiornerà la storia o i buchi saranno chiusi, il numero cambierà anche ....


che differenza fa quante barre ci sono dal 1970 o dal 2012? quello di cui abbiamo bisogno è determinare se c'è una nuova barra. quando si cambia il timeframe, il terminale si reinizializza, ExpertBars=Bars; la nuova barra ExpertBars!=Bars è apparsa, quindi codice
bool isNewBar=false;

if (ExpertBars!=Bars) {
ExpertBars=Bars;
isNewBar=true;
}
lavorando
 
Il Service Desk ha ricevuto le descrizioni dei problemi, compresa l'ultima versione - 538. I programmi sono allegati.
 
mr_Johns:

Che differenza fa quante barre ci sono dal 1970 o dal 2012? Quello che dobbiamo fare è rilevare quando c'è una nuova barra. Quando cambiamo timeframes, lo reinizializziamo, ExpertBars=Bars; è apparsa una nuova barra ExpertBars!=Bars, quindi il codice
Il bool isNewBar=false;

se (ExpertBars!=Bars) {
ExpertBars=Barre;
isNewBars=true;
}
lavorare

allora buona fortuna ))))