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
In questo caso, inequivocabilmente CopyRate dalla prima barra 10s. E non per essere chiamato ogni tick, ma abbastanza all'apparizione di una nuova barra.
Come faccio a sapere se è apparsa una nuova barra senza CopyRate? Prima devi prendere il nuovo evento del bar. Senza CopyRate è possibile? Sono un po' confuso).
Questo è quello che significa, non ho mai trattato questo argomento su MT5. Per favore, capite)).
Oh, Vladimir. Anche se l'ho spifferato, ma purtroppo non ho prenotato. Se abbiamo bisogno solo del prezzo di apertura o dell'ora, per esempio, non c'è bisogno di usare CopyRates(), in questo caso CopyOpen o iOpen sono sufficienti... rispettivamente CopyTime o iTime. Si sceglie in base alle proprie preferenze religiose.
E aggiungo il mio avvertimento: in termini di costi di prestazione, non c'è una differenza apprezzabile. Di conseguenza, rimangono solo i pregiudizi religiosi.Il fxsaber stava controllando il costo di CopyRates() - è più costoso che ottenere la proprietà richiesta separatamente. Non si applica alla situazione in cui abbiamo bisogno di ottenere tutti i prezzi in una volta sola.
E come faccio a sapere che è apparsa una nuova barra senza CopyRate? Prima devi prendere il nuovo evento del bar. È possibile farlo senza CopyRate? Sono un po' confuso).
Senza prestare attenzione a nulla, controllate la comparsa di una nuova barra e chiamate CopyRates
Ci sono molte funzioni e modi diversi di rilevare una nuova barra sul sito.
Come faccio a sapere se è apparsa una nuova barra senza CopyRate? Prima devi prendere il nuovo evento del bar. Senza CopyRate è possibile? Sono un po' confuso).
Questo è ciò che significa, mai trattato questo argomento su MT5. Per favore, cerca di capire.))
Il modo più semplice è confrontare il tempo di apertura della barra corrente. Se non è uguale a quello memorizzato in precedenza - avere una nuova barra - fare ciò che deve essere fatto sulla nuova barra e memorizzare questo tempo per il prossimo controllo.
Senza prestare attenzione a nulla, tracciamo la comparsa di una nuova barra e chiamiamo CopyRates
Ci sono molte funzioni e modi diversi di definire una nuova barra sul sito.
fxsaber ha fatto un controllo dei costi di CopyRates() - è più costoso che ottenere la proprietà richiesta separatamente. Questo non si applica alla situazione in cui è necessario ottenere tutti i prezzi in una volta.
Il modo più semplice è confrontare il tempo di apertura della barra corrente. Se non è uguale a quello memorizzato in precedenza - avere una nuova barra - fare ciò che deve essere fatto sulla nuova barra e memorizzare questo tempo per il prossimo controllo.
Quindi, chiamate il CopyRates ad ogni tick? Altrimenti, come fareste a sapere che l'orario di apertura del bar attuale è cambiato?
potete o classificare CNewbar, o cercare nel forum NewBar
SZZ: tutto l'articolo!https://www.mql5.com/ru/articles/159
Igor, devi andare in prima elementare. Lì insegnano le lettere e dopo averle imparate capirete la differenza tra CopyRates e CopyBuffer.
Ecco un suggerimento migliore per risolvere questo problema SENZA CopyRate
OK, il solito...oops, oops...e non una sola linea di codice ))))
Ho citato il mio esempio per mostrare che non è sempre conveniente (e raramente necessario) ottenere un array di OHLC consecutivi. Nei compiti pratici di solito abbiamo bisogno di ottenere una selezione di valori OHLC da barre diverse (gli indicatori non sono inclusi)
Bene, mi raccomando!
Quindi, su ogni tick chiama CopyRates? Altrimenti, come facciamo a sapere che il tempo di apertura della barra corrente è cambiato?
Sì, ad ogni spunta controlliamo l'ora:
E in poche parole, è così:
L'ho appena scritto sulla mia mano - per mostrare l'idea, non la precisione della scrittura
Quindi, ad ogni tick dovremmo chiamare CopyRates? Altrimenti, come sapere che il tempo di apertura della barra corrente è cambiato?
if(prevTime!=iTime(...))
{
// il tempo corrente di apertura della barra è cambiato
}
prevTime=iTime(...);