template <typename T> void f( T& ) {} // Funciona sólo para objetos de estructuras y clases. template <typename T> void OnlyObjects( T& ) { const T Tmp; f((T)Tmp); // .... } void OnStart() { int i; MqlTick Tick; OnlyObjects(Tick); // OK OnlyObjects(i); // Error }
En el artículo he visto una característica de MQL que no conocía. Un ejemplo de su uso.
Probablemente pertenece a otro artículo ;-) - https://www.mql5.com/es/articles/8028/ - plantillas se utilizaron allí, y el ejemplo de allí fue simplemente trasladado aquí listo.

- www.mql5.com
Stanislav, ¡gracias por tu trabajo!
¿Por qué los cuatro tipos de gráficos (equi-, renge-, tick- y renko) no están combinados en un EA? ¿Había alguna razón para separarlos, o simplemente era más fácil rehacer algo ya hecho?
Muy buena idea. Además de comercio de la carta trabajaría inbuilt.
¿A quién debo contactar? @Renat Fatkhullin @Slava
¿Por qué los cuatro tipos de gráficos (equi-, renge-, tick-, y renko) no están combinados en un EA? ¿Había razones para separarlos, o simplemente era más fácil rehacer algo ya hecho?
En primer lugar, históricamente se han hecho por separado (para empezar algunas cosas no son mías ;-). En segundo lugar, IMHO cada tipo de gráfico tiene sus propios adeptos y no se solapan mucho (por ejemplo, los fans del tick no son fans del renko, y el timeshift es un tema totalmente aparte). En tercer lugar, tienen en común sólo la inicialización, y no completamente, porque la continuación de la generación después de reiniciar debe hacerse de manera diferente. Hubo una idea de poner el común en un includnik separado, pero teniendo en cuenta el punto 2, es más fácil para todos a elegir un archivo sin dependencias.
En primer lugar, históricamente se han hecho por separado (para empezar algunos no son lo mío ;-). En segundo lugar, IMHO, cada tipo de gráficos tiene sus propios adeptos y no se solapan mucho (por ejemplo, los fans del tick no son fans del renko, y el timeshift es un tema aparte). En tercer lugar, tienen en común sólo la inicialización, y no completamente, porque la continuación de la generación después de reiniciar debe hacerse de manera diferente. Hubo una idea de poner el común en un includnik separado, pero teniendo en cuenta el punto 2, es más fácil para todos a elegir un archivo sin dependencias.
Bueno, todos tienen el mismo significado - para tomar las garrapatas (o minutos), y construir un gráfico de ellos sin una línea de tiempo.
La preparación de la historia (idealmente una sola vez, con la continuación después de una pausa desde el lugar correcto), la generación de nuevas barras, y la emulación de los ticks son todos similares. Sólo las reglas para "nueva barra" son diferentes.
Pero entiendo la respuesta, yo también empezaría con la adaptación de una ya hecha, en lugar de inventar una bicicleta.
Divertido) ¿y quién y dónde lo posiciona así?
El servidor MT5 de mi broker no puede ejecutar una orden pendiente en 100ms, así que cómo puede ser HFT).
Por no hablar de que las órdenes pendientes se ejecutan como órdenes de mercado.
Divertido) y ¿quién y dónde lo posiciona así?
El servidor MT5 de mi broker no puede ejecutar una orden pendiente en 100ms, qué es HFT).
Por no hablar de que las órdenes pendientes se ejecutan como órdenes de mercado.
https://www.mql5.com/en/welcome/en-metatrader-5-high-frequency-trading

- www.mql5.com
Renko
Para realizar gráficos renko, utilizamos el Asesor Experto no comercial RenkoTicks.mq5. Genera renko en forma de cotizaciones de un instrumento personalizado mediante el procesamiento de ticks reales (disponibles en MetaTrader 5 desde su broker). Las cotizaciones (barras) del símbolo original y el marco temporal del gráfico de trabajo donde se coloca RenkoTicks no importan.
Una alternativa a los símbolos personalizados a la hora de trazar renko podría ser un indicador o un dibujo (usando objetos o sobre lienzo),pero en ambos casos sería imposible aplicar indicadores o scripts sobre tales pseudo-gráficos.
Bueno, por qué ser tan categórico. Se puede dibujar sobre el lienzo, escribir los valores en el buffer del indicador y aplicar otros indicadores al precio "Datos del indicador anterior". Y ésta es sólo una de las variantes más primitivas. Hay otras más avanzadas.
¿Por qué tan categórico? Puede dibujar en el lienzo, escribir los valores en el búfer del indicador y aplicar otros indicadores al precio "Datos del indicador anterior". Y esta es sólo una de las variantes más primitivas. Hay otras más avanzadas.
Esta solución no cubre toda la variedad de herramientas utilizadas en la práctica.
Esta solución no abarca toda la variedad de herramientas utilizadas en la práctica.
Esta solución no pretende cubrir toda la diversidad, sino sólo como refutación de la afirmación de que no hay posibilidad de utilizar indicadores en un gráfico con un esquema de temporización de barrasno estándar .
Repito - hay soluciones más avanzadas (aunque mucho más complicadas), que ya pueden afirmar que cubren "toda la diversidad".

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Símbolo personalizados: fundamentos de uso en la práctica:
El presente artículo está dedicado a la generación programática de los símbolos personalizados que sirven para mostrar varios métodos populares de representación de cotizaciones. Asimismo, ofrecemos una adaptación poco invasiva de asesores para comerciar con un símbolo real desde el gráfico del símbolo personalizado derivado. Los códigos fuente se adjuntan al artículo.
Para los instrumentos bursátiles, el asesor experto nos permite usar el modo de volumen real, por ejemplo, de la forma siguiente:
Gráficos inicial (a) y de equivolumen (b) de LKOH con un volumen real de 10000 por barra generado por EqualVolumeBars EA en MetaTrader 5
No importa el marco temporal del símbolo en el que se ejecuta el asesor, ya que las barras M1 o la historia de ticks siempre se usan para los cálculos.
El marco temporal de los gráficos de los símbolos personalizados debe ser igual a M1 (el menor marco temporal disponible en el terminal). Por consiguiente, el tiempo de las barras, en general, se corresponde con sus momentos de formación de manera bastante próxima. No obstante, durante los movimientos intensos del mercado, cuando el número de ticks o el tamaño de los volúmenes forman varias barras por minuto, el tiempo de las barras adelantará al real. Cuando el mercado se tranquiliza, las marcas temporales de las barras de equivolumen vuelven a la normalidad. Probablemente, esta limitación de la plataforma no resulte especialmente crítica para las barras de equivolumen o de igual rango, ya que la propia idea de dichos gráficos consiste en desvincularlos del tiempo absoluto.
Autor: Stanislav Korotky