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
Hola Stringo,
lamentablemente, este error persiste.
Cuando se ejecuta el script de prueba de abajo y se cambia de una cuenta a otra (en mi caso de prueba usé cuentas de 2 o 3 corredores diferentes y cambié de una a otra), se puede ver que después de unos cuantos accountChanges (un número bastante aleatorio) el connectionState realmente no cambia de nuevo a 1, se mantiene 0 a pesar de que el Terminal _está_ conectado.
A sus ojos, esto podría no ser un error crítico. Sin embargo, para algunas personas que desarrollan scripts que muestran el connectionState, los resultados de las pruebas realizadas son bastante alarmantes.
Por eso le agradezco mucho que vuelva a echar un vistazo a este problema.
Aquí está el testScript:
Atentamente,
Daniel.
También debo confirmar el mismo error. En mi EA compruebo simultáneamente si la conexión existe. Si no es así, mi script se cierra.
¿Ha encontrado alguien una solución para esto?
El script no puede determinar el problema debido al bucle sin fin y la independencia de las garrapatas entrantes.
El problema sólo puede mostrar el experto. Experto simple con sólo una línea de código - Print(IsConnected());
Ticks entrantes (significa que la terminal está conectada) - la función de inicio se ejecuta - ¡Ups! IsConnected() devuelve 0 (es decir, falso)
gracias
Sí, yo uso
¡el problema es que la carta cuando la conexión está de vuelta IsConnected() mantiene el valor antiguo falso y no cambia a verdadero! Pero estoy viendo que el precio se mueve y la terminal está conectada al 100%. Esto es un error porque el bucle infinito se rompió y el inicio se ejecutó como nada sucedió en la primera garrapata después de la conexión fue restaurada. Pero por alguna razón Is Connected() sigue devolviendo false. Si quito el EA del gráfico y lo vuelvo a poner todo funciona bien hasta que se pierde la siguiente conexión.
Esto me vuelve loco. Por favor, hagan algo al respecto.
Gracias
Liliput - si lo anterior es el esquema de start() usando, ¿por qué quedarse en él con el bucle infinito?
Lo pregunto porque lo normal es entrar > ¿quiero trabajar? no:volver > hacer el trabajo > volver
(normal - es subjetivo por supuesto ;o)
¡no te digo como diseñar - eso es tu negocio, solo pregunto tu razonamiento, luego aprendo más/veo diferentes formas de hacer las cosas!
¿Qué me hizo preguntar?
No tengo ni idea de cómo se comporta el Terminal si, por ejemplo, un EA se niega a volver a él por tal vez muchos ticks de datos que, como el EA no vuelve - el Termial simplemente no hace la llamada a start()... o - ¿simplemente no hace la llamada y eventualmente debido a muchos ticks de datos que fluyen sin haber podido llamar a start() del EA el Terminal entra en profundidades inexploradas y manifiesta el problema conectado?
;)
¿Esto podría resolver el problema...?
Liliput - si lo anterior es el esquema de start() usando, ¿por qué quedarse en él con el bucle infinito?
Lo pregunto porque lo normal es entrar > ¿quiero trabajar? no:volver > hacer el trabajo > volver
(normal - es subjetivo por supuesto ;o)
¡no te digo como diseñar - eso es tu negocio, solo pregunto tu razonamiento, luego aprendo más/veo diferentes formas de hacer las cosas!
¿Qué me hizo preguntar?
No tengo ni idea de cómo se comporta el Terminal si, por ejemplo, un EA se niega a volver a él por tal vez muchos ticks de datos que, como el EA no vuelve - el Termial simplemente no hace la llamada a start()... o - ¿simplemente no hace la llamada y eventualmente debido a muchos ticks de datos que fluyen sin haber podido llamar a start() del EA el Terminal entra en profundidades inexploradas y manifiesta el problema conectado?
;)
ukt, no hay problema, voy a responder. Hago un bucle infinito porque necesito hacer muchas operaciones y no quiero esperar a un nuevo tick para hacerlas. Así que tomo el control de la terminal de esta manera y hago mi trabajo cuando lo necesito y quiero. Uso RefreshRates() para obtener los datos reales.
Así que es lógico comprobar si la conexión con el broker existe porque envío/cierro/modifico órdenes y si no hay conexión entonces no funciona. simple es eso. también hay otras comprobaciones para salir del bucle que utilizo. por ejemplo IsStoped() y así sucesivamente pero el problema no está en mi código está en el IsConnected().