Gracias por este interesante artículo.
¿Era obligatorio utilizar un archivo para almacenar los datos?
¿No era posible almacenar los datos históricos en memoria, utilizando una matriz estadística?
Saludos
¡Buenas tardes!
Me gustaría ver gráficos de segundos - una vela es de unos pocos segundos (5 seg, 6 seg, 10, 12,15). Para ver los cambios de precios en relación con el tiempo.
¿Un error tipográfico?
En el texto del artículo. En el ejemplo, es correcto, AskBuffer¡Buenos días!
¿Es posible utilizar los archivos de ticks recibidos por el indicador propuesto para las pruebas multidivisa en el tester, desactivando al mismo tiempo la creación de ticks virtuales en el tester y realizando la sincronización de los datos sobre los precios de los instrumentos por tiempo?
Gracias.
- www.mql5.com
¡Buenas tardes!
Me gustaría ver gráficos de segundos - una vela es de unos pocos segundos (5 seg, 6 seg, 10, 12,15). Para ver los cambios de precios en relación con el tiempo.
Buenas tardes
¿Es posible utilizar los archivos de ticks recibidos por el indicador propuesto para las pruebas multidivisa en el tester, desactivando al mismo tiempo la creación de ticks virtuales en el tester y realizando la sincronización de los datos sobre los precios de los instrumentos por tiempo?
Gracias.
Los archivos con cotizaciones creados por el indicador, por supuesto, pueden ser utilizados para otros fines. Le sugiero que desactive las funciones innecesarias (por ejemplo, dibujar gráficos) y el procesamiento de datos (por ejemplo, la sincronización de los datos de diferentes instrumentos). Por cierto, en mi opinión, es más fácil escribir cotizaciones en un archivo con la ayuda de un Asesor Experto (también está en el archivo adjunto):
int h; void OnInit() { string s; StringConcatenate(s,Symbol(),".txt"); h=FileOpen(s,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ); FileSeek(h,0,SEEK_END); } void OnTick() { string s; StringConcatenate(s,TimeCurrent()," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits)," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits)); FileWrite(h,s); FileFlush(h); } void OnDeinit(const int reason) { FileClose(h); }
¡Gran artículo, gracias por los indicadores!
Tengo este problema cuando se ejecuta tickindicator.mq5.
He compilado el indicador. Lo ejecuto.
Aparece la ventana del indicador. Hay una escala con grandes números de mínimo y máximo. Y el indicador se mueve a lo largo de la línea horizontal. He intentado fijar el mínimo y el máximo del indicador. El indicador parece aparecer, pero hay algunas líneas verticales en la oferta.
¡Gran artículo, gracias por los indicadores!
Tengo este problema cuando se ejecuta tickindicator.mq5.
He compilado el indicador. Lo ejecuto.
Aparece la ventana del indicador. Tiene una escala con grandes números de mínimo y máximo. Y el indicador se mueve a lo largo de la línea horizontal. He intentado fijar el mínimo y el máximo del indicador. El indicador parece aparecer, pero hay algunas líneas verticales en la oferta.
Es necesario inicializar todos los valores en el búfer del indicador.
Lo más probable IMHO - No he mirado el código)
Dime dónde tengo que arreglar algo.
En timeframes mayores que M30 la escala empieza a mostrar números salvajes.
Como sugirió mi colega Dima_S, al inicializar el indicador conviene llenar los buffers con algo.
Y ya que tenemos el código TickIndicator.mq5:
//+------------------------------------------------------------------+ //| Función OnInit()| //+------------------------------------------------------------------+ void OnInit() { // array BidBuffer[] es un buffer indicador SetIndexBuffer(0,BidBuffer,INDICATOR_DATA); // El array AskBuffer[] es un buffer indicador SetIndexBuffer(1,AskBuffer,INDICATOR_DATA); // los valores cero de la línea de oferta no se dibujan PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); // los valores cero de la línea Ask no se dibujan PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); }
Es necesario insertar las siguientes líneas:
ArrayInitialize(BidBuffer,0); ArrayInitialize(AskBuffer,0);
Como sugirió mi colega Dima_S, al inicializar el indicador conviene llenar los búferes con algo. Así lo hice:
ArrayInitialize(BidBuffer,EMPTY_VALUE); ArrayInitialize(AskBuffer,EMPTY_VALUE);
Lo hice, pero no sirvió de nada.
ArrayInitialize(BidBuffer,0.0); ArrayInitialize(AskBuffer,0.0);Así también.
- 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 Creación de indicadores de tick en MQL5:
En este artículo vamos a ver la creación de dos indicadores: el indicador de tick, que representa el gráfico de tick del precio, y el indicador de vela de tick, que representa las velas con el número de ticks especificados. Cada uno de los indicadores escribe los precios de llegada en un archivo y utiliza los datos guardados tras el reinicio del indicador (estos datos pueden ser usados también por los demás programas).
Autor: Denis Zyatkevich