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
Ya he contestado que los bares se abren independientemente de la llegada de una cotización. Si no hay cotización, el precio de la nueva barra será el precio de cierre de la barra anterior. El hecho de una nueva barra se fijará independientemente de la llegada de las cotizaciones, por los propios contadores, que funcionan con un temporizador.
El marco de tiempo específico no importa, porque es sólo un contador que alcanza su valor y establece el evento de la nueva barra de ese marco de tiempo. Se trata simplemente de un método de sincronización con la aparición de nuevas barras de diferentes marcos temporales. SINCRONIZACIÓN.
El instrumento tampoco importa. Si las cotizaciones son de un mismo servidor, significa que tienen la misma hora de aparición de las nuevas barras. Por lo tanto, no importa qué instrumento, siempre y cuando estos instrumentos sean de un punto del mundo.
Terminaré lo que he dicho y haré otras cosas. Un poco de algo bueno).
Con respeto.
P.D. la formación de una nueva barra comienza con la llegada de un nuevo tick, que es el precio de apertura de una nueva barra. en su algoritmo hay un cálculo de temporizador que no tiene nada que ver con la llegada de un nuevo tick, de ahí el desacuerdo. de hecho su algoritmo no da el hecho de la apertura de una nueva barra, sino el inicio del tiempo tras el cual se puede esperar la llegada de la primera cotización en una barra.
Eres tú, en tu algoritmo, quien piensa que el bar está abierto. De hecho - físicamente - aún no está presente en el terminal. Esto es una total incoherencia con las realidades del servidor.
El plazo concreto también es importante.
Todos los que se han acercado a los robots de comercio multidivisa lo saben.
Es una pena que no quieras llegar a la conclusión a la que te estamos llevando, de forma visual y con un ejemplo tangible.
Para el caso de una nueva barra no importa el símbolo que sea. Las nuevas barras de diferentes símbolos aparecen de forma sincronizada (para cada marco temporal).
Hay un contador para cada plazo. Cuando el contador alcanza el valor de su marco temporal, se pone a cero y se establece un nuevo evento de barra para este marco temporal.
Además, la llamada a la función devuelve un nuevo evento de barra una vez durante la barra actual.
Gracias a todos y adiós.
No hay ninguna diferencia en el símbolo que se utiliza para el nuevo evento de la barra. Las nuevas barras de diferentes símbolos aparecen de forma sincronizada (para cada marco temporal).
El temporizador tiene un contador para cada marco de tiempo. Cuando el contador alcanza el valor de su marco temporal, se pone a cero y se establece un nuevo evento de barra para este marco temporal.
Además, el acceso a la función devolverá el evento de una nueva barra una vez durante la barra actual.
Ahí se acaba la explicación.
Gracias a todos y adiós.
No eres tú quien lo está explicando, tu lógica es clara. Pero, por desgracia, es un error. Hay que obtener los datos del entorno comercial, eventualmente del servidor.
Y si no hay una nueva cotización en el servidor, entonces no se abre una nueva barra en el terminal.
Su algoritmo, trabajando en el temporizador, "estampará" nuevas barras cuando el mercado esté cerrado. Pero no hay ninguno en el servidor y por lo tanto en el terminal del cliente.
Y créame, la diferencia en la llegada de las cotizaciones para diferentes símbolos también causará una diferencia en la apertura de una nueva barra - el comienzo de la formación de una nueva barra se activará sólo cuando llegue el tick (cotización) correspondiente al momento de esta barra. Si el tick se recibe 4 minutos y 15 segundos después del cierre de la última barra en M1, entonces se perderán tres barras porque no hay cotización para realizarlas.
Te he dado una pista.
te equivocas.
Sinceramente.
P.D. La formación de una nueva barra comienza con la llegada de un nuevo tick, que es el precio de apertura de una nueva barra. En su algoritmo, hay un cálculo basado en el temporizador que no tiene nada que ver con la llegada de un nuevo tick, de ahí el desacuerdo.
Sí, con un temporizador. Aparece una nueva barra sin comillas. Nos interesa exactamente el evento de aparición de una barra y podemos fijar la cita en Optisk();
La barra aparecerá en cualquier caso. Si es un fin de semana y no hay bares, no pasa nada. La función no cambiará y estará sincronizada con la llegada de las barras en el momento en que se inicie la sesión.
No es usted quien lo mastica, su lógica es comprensible. Pero, por desgracia, es defectuoso. Hay que obtener los datos del entorno comercial, eventualmente del servidor.
Y si no hay una nueva cotización en el servidor, entonces no se abre una nueva barra en el terminal.
Su algoritmo, trabajando en el temporizador, "estampará" nuevas barras cuando el mercado esté cerrado. Pero no hay ninguno en el servidor y por lo tanto en el terminal del cliente.
Y créame, la diferencia en la llegada de las cotizaciones para diferentes símbolos también causará una diferencia en la apertura de una nueva barra - el comienzo de la formación de una nueva barra se activará sólo cuando llegue el tick (cotización) correspondiente al momento de esta barra. Si el tick llega 4 minutos y 15 segundos después de la última barra en M1, entonces se perderán tres barras porque no hay cotización para construirlas.
Te he dado una pista.
Sí, con un temporizador. Aparece una nueva barra sin comillas. Nos interesa exactamente el caso de aparición de una barra mientras podemos fijar la cotización en Optisk();
La barra aparecerá de todos modos. Si es un fin de semana y no hay bares, no pasa nada. La función no se colapsará y se sincronizará con la llegada de barras en el momento en que se inicie la sesión.
Sinceramente.
Artyom Trishkin:
Y, créanme, la diferencia en la llegada de las cotizaciones para los diferentes símbolos también hace una diferencia en la apertura de una nueva barra - el inicio de la construcción de una nueva barra se activa sólo con la llegada de un tick (cotización), correspondiente a la hora de esta barra. Si el tick se recibe 4 min 15 seg después de la última barra en M1, entonces se perderán tres barras, porque no hay cotización para construirlas.
En cuanto a la pregunta, creo que se equivoca. Por favor, consulte con servicedesk. Que respondan a la pregunta: si se forman nuevas barras en la plataforma, independientemente de la llegada de cotizaciones, o no. Si no, entonces en el caso de una nueva barra comprueba si había una cita en ella. Si lo era, el nuevo bar se ha formado. Podemos hacerlo así. No necesitas cambiar mucho.
Supongamos que quiere tomar lecturas del indicador en 1 y 2 barras según el evento de un nuevo inicio de barra. Procediendo desde la lógica de su algoritmo, obtendrá un nuevo inicio de barra antes de que llegue la cotización y la barra aparezca en el gráfico. Como consecuencia, al intentar leer el indicador no obtendrá los valores de 1 y 2 barras como debería ser cuando llegue la cotización, sino los valores de 1 y 2 barras que se desplazarán 1 barra cuando llegue la nueva cotización y serán 2 y 3 barras.
Saludos.
Es posible. Añade un control de llegada de la cotización en cada nuevo evento del bar y ya está. No trabaja con el evento de una nueva barra, sino con el evento de una barra y una cita, por ejemplo.
Con respeto.
Obtenga sus cotizaciones de OnTick(). Puede asociar el evento de apertura de un nuevo bar con la confirmación de recepción de una cotización. Yo no lo haría. Pero esto es una cuestión personal.
Sé cómo conseguir cotizaciones :)
En un programa multidivisa - en un temporizador en un bucle en los símbolos de la derecha. Y la apertura de una nueva barra (física, no virtual -errónea- como en tu caso) se controla por la hora de la última cotización y se compara esta hora con la del símbolo de barra cero.
Por otro lado, usted está haciendo al azar - un bar virtual que puede no existir. No los tienes el fin de semana, pero supuestamente los tienes, es lo más sencillo de poner como ejemplo.
Y, como ves, eres el único que no lo haría así. Los demás lo hacemos de forma correcta y fiable. Pero eso, por supuesto, es sólo asunto suyo.
Quería contarte cómo hacerlo correctamente y mostrar la gran diferencia en la simplicidad de escribir en OOP, y los complejos giros en el estilo procedimental al resolver el mismo problema.
Pero seguramente sabes más y no lo necesitas. No me atrevo a parecer que sé algo más delante de ti. Lo siento.