Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
En ese caso, sin duda CopyRates desde el primer compás 10s. Y no hay que llamarlo cada vez que aparezca una barra nueva, sino lo suficiente.
¿Cómo puedo saber si ha aparecido una nueva barra sin CopyRates? Es decir, tienes que coger el nuevo evento del bar primero. ¿Sin CopyRates es posible? Estoy un poco confundido).
Eso es lo que significa, nunca he tratado este tema en MT5. Por favor, comprenda)).
Oh, Vladimir. Aunque lo solté, pero por desgracia, no hice una reserva. Si sólo necesitamos el precio o la hora de apertura, por ejemplo, no es necesario utilizar CopyRates(), en este caso CopyOpen o iOpen es suficiente... respectivamente CopyTime o iTime. Se elige según sus preferencias religiosas.
Y añado mi advertencia: en términos de costes de rendimiento, no hay una diferencia apreciable. En consecuencia, sólo quedan los prejuicios religiosos.El fxsaber estaba comprobando el coste de CopyRates() - es más caro que obtener la propiedad requerida por separado. No se aplica a la situación en la que necesitamos obtener todos los precios a la vez.
¿Y cómo sé que ha aparecido una nueva barra sin CopyRates? Es decir, tienes que coger el nuevo evento del bar primero. ¿Es posible hacerlo sin CopyRates? Estoy un poco confundido).
Sin prestar atención a nada, vigila la aparición de una nueva barra y llama a CopyRates
Hay muchas funciones y formas diferentes de detectar una nueva barra en el sitio.
¿Cómo puedo saber si ha aparecido una nueva barra sin CopyRates? Es decir, tienes que coger el nuevo evento del bar primero. ¿Sin CopyRates es posible? Estoy un poco confundido).
Eso es lo que significa, nunca se ha tratado este tema en MT5. Por favor, comprenda).
La forma más sencilla es comparar la hora de apertura de la barra actual. Si no es igual a la memorizada anteriormente - tiene un nuevo compás - haga lo que tenga que hacer en el nuevo compás y memorice este tiempo para el siguiente control.
Sin prestar atención a nada, rastreamos la aparición de una nueva barra y llamamos a CopyRates
Hay muchas funciones y formas diferentes de definir una nueva barra en el sitio.
fxsaber hizo una comprobación del coste de CopyRates() - es más caro que obtener la propiedad requerida por separado. Esto no se aplica a la situación en la que usted necesita obtener todos los precios a la vez.
La forma más sencilla es comparar la hora de apertura de la barra actual. Si no es igual a la memorizada anteriormente - tiene un nuevo compás - haga lo que tenga que hacer en el nuevo compás y memorice este tiempo para el siguiente control.
Entonces, ¿llamas a los CopyRates en cada tic? Si no, ¿cómo sabrías que la hora de apertura del bar actual ha cambiado?
puede clasificar CNewbar, o buscar en el foro NewBar
SZZ: ¡artículo completo!https://www.mql5.com/ru/articles/159
Igor, necesitas ir al primer grado. Allí enseñan las letras y después de aprenderlo entenderás la diferencia entre CopyRates y CopyBuffer.
Aquí hay una sugerencia mejor para resolver este problema SIN CopyRates
OK, lo de siempre... oops, oops... y ni una sola línea de código ))))
He citado mi ejemplo para mostrar que no siempre es conveniente (y rara vez es necesario) obtener una matriz de OHLC consecutivos. En las tareas prácticas solemos necesitar obtener una selección de valores de OHLC de diferentes barras (no se tienen en cuenta los indicadores)
¡Bien, cuídate!
Entonces, ¿en cada tic llamada CopyRates? Si no, ¿cómo sabemos que la hora de apertura del bar actual ha cambiado?
Sí, en cada tictac comprobamos la hora:
Y en pocas palabras, es así:
Sólo lo escribí en mi mano - para mostrar la idea, no la precisión de la escritura
Entonces, ¿en cada tic deberíamos llamar a CopyRates? Si no, ¿cómo saber que la hora de apertura del bar actual ha cambiado?
if(prevTime!=iTime(...))
{
// cambio de la hora de apertura de la barra actual
}
prevTime=iTime(...);