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
¿Alguien sabe cuál es el error?
El indicador funciona correctamente, pero se muestran más barras,
de lo que se estableció.
No he mirado el código, pero supongo que tras la aparición de cada nueva barra, no tiene en cuenta que las líneas del indicador también se desplazan automáticamente hacia la izquierda (si te fijas en el gráfico). En otras palabras, cuando aparece una nueva barra, desplaza las líneas del indicador hacia la derecha (al mirar el gráfico).
El toque final...
Resulta que no es el último ....
Necesita algo más de optimización.
Lo terminaré y lo probaré...
Si este es el caso, mantenga el indicador de garrapatas - indicador de interés abierto (ejecutado en una cuenta real conectada a la bolsa).
Se ha descubierto un grave problema:
Ticks duplicados con diferente start_time :(
start_time es diferente y los ticks se copian repetidamente si
tienen el mismo tiempo
Lo describiré en detalle mañana.
Última construcción
No puedo dormir, así que pensé en escribir lo que está pasando.
(El código completo del indicador está en el post anterior).
Los ticks de la bolsa no llegan al terminal estrictamente por intervalos de tiempo,
pero en bloques (véase la captura de pantalla) Bloque 1, Bloque 2, etc.
El terminal los "almacena" y los muestra en la tabla, a medida que los recibe de la central (bloque a bloque).
Enambos bloques puede haber transacciones con la misma hora.
Si llamamos a CopyTicks() NO en tiempo real (digamos al día siguiente o a los pocos segundos),
entonces la función CopyTicks() devolverá los datos exactos.
Pero en tiempo real, ocurre lo siguiente:
Si start_time = (23:49:58.114), obtenemos el bloque 1 por completo (marcado en rojo).
A continuación, esperamos el cambio de hora para obtener el bloque 2 (marcado con un círculo verde).
Para evitar la duplicación del bloque 1 (el OnBookEvent puede activarse muy rápidamente)
introducimos una comprobación para asegurarnos de que la hora ha cambiado
if(start_time==ulong(ticks[copied-1].time_msc)) return;
Cuando start_time = (23:49:58.596), deberíamos haber obtenido el bloque 2,
pero la función CopyTicks() devuelve tanto el bloque 2 como todos los ticks con el tiempo (23:49:58.114),
si el bloque 2 tiene al menos un tick con la misma hora (23:49:58.114).
Esto es una noticia muy triste.... :(
A menos que los desarrolladores arreglen esto, es imposible conseguir una cinta en tiempo real de las operaciones.
¿Y por qué crees que los ticks se descargan de un tiempo determinado y FUTURO a la historia cuando consultas por tiempo? De hecho, cuando se solicitan ticks por tiempo, los ticks se descargan desde un tiempo determinado y en el FUTURO. Por ejemplo:
Datos de entrada (solicitud de 20000 ticks), tiempo 2016.08.25 20-00-00:
Recibir:
Es decir, los ticks se reciben desde la hora solicitada2016.08.25 20:00:00 hacia el FUTURO (el último tick tiene la hora2016.08.26 00:02:08)
¿Y por qué crees que los ticks se descargan de un tiempo determinado y FUTURO al historial cuando se consulta por tiempo? De hecho, cuando se solicitan ticks por tiempo, los ticks se descargan desde un tiempo determinado y en el FUTURO. Por ejemplo:
Datos de entrada (solicitud de 20000 ticks), tiempo 2016.08.25 20-00-00:
Recibir:
Es decir, los ticks se reciben desde la hora solicitada2016.08.25 20:00:00 hacia el FUTURO (el último tick tiene la hora2016.08.26 00:02:08)
No pienso en la profundidad, veo "hilvanada" la profundidad.
¿Por qué pensar?
Ejecute el indicador y compruébelo usted mismo.
¿Y acaso lees lo que está escrito?