[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 322

 
Si el EA no fue diseñado originalmente como un EA multidivisa, probablemente tenga un filtro de símbolos y un magik. Permitir sólo un pedido por EA.
 
yosuf:
Gracias, otra pregunta por favor: El EA se ejecuta en 29 instrumentos simultáneamente, es decir, en 29 terminales correspondientes en una cuenta común. Tengo que asegurarme de que el número total de posiciones abiertas nunca supere las 30. Había puesto ese límite al EA y pensé que contaría por el número mágico total pero no fue así, siguió poniendo más de 30 órdenes. Parece que di una instrucción errónea y el EA lo tomó como 30 órdenes por símbolo. ¿Qué debo hacer? Todavía lo estoy siguiendo visualmente.

Como decimos en Odessa, hay dos grandes diferencias entre 29 símbolos en una terminal y 29 terminales con un símbolo en cada una. No sé tú :)
 
La diferencia es la multiplicidad de hilos (posibilidad de abrir varios pedidos simultáneamente) el resto es lo de siempre
 
FAQ:
La diferencia está en los hilos múltiples (posibilidad de abrir varios pedidos simultáneamente) el resto es lo mismo de siempre

... y - la causa del problema del autor de la pregunta.
 
Yusuf, haz lo mismo en un terminal abriendo 29 ventanas de herramientas. Cuando empiece a funcionar adecuadamente, haz la arquitectura más compleja si es necesario.
 
FAQ:
La diferencia está en los flujos múltiples (la posibilidad de abrir varias órdenes simultáneamente) el resto es como siempre

Si fijamos una orden a la vez, los instrumentos "rápidos", que podrían abrir órdenes más a menudo, perderían esa oportunidad. Además, otros 8 instrumentos están esperando un momento oportuno y ahora deberían hacer cola para abrirse, tuve que cerrar urgentemente 10 órdenes positivas adicionales:


 
Entonces hay que cambiar la lógica. Para empezar, elimina el filtro de caracteres.
 

¡Ahora preguntaré y el hilo volverá a su lugar original!

Aquí va una pregunta: A veces me sale el error común(2) cuando una posición se cierra por Stop Loss y el EA intenta cerrarla por Close. La función permite 3 intentos de cerrar la posición, así que lo intenta hasta 3 veces y obtiene Invalid ticket(4108) dos veces. ¿Cómo puedo hacer que deje de intentarlo? El billete no se ha abierto entre otras órdenes y no hay ninguna otra posición, pero seguimos obteniendo el mismo resultado.

¿Y estos intentos se envían a DC o no? Tal vez, se queda sólo en el terminal y no me molesta DC para nada? ¡Gracias de antemano por la aclaración!

 

borilunad:

Aquí va una pregunta: A veces ocurre en Real que sale el ERR_COMMON_ERROR, cuando se cierra una posición por Stop Loss y el Asesor Experto intenta cerrarla por Close, y como la función prevé 3 intentos de cierre, lo intenta hasta 3 veces. ¿Cómo puedo evitar que lo intente?

Realiza el OrderSelect y comprueba el OrderCloseTime antes de intentar el cierre. Si ya es superior a 0, la orden se cierra.

 
sergeev:

antes de intentar el cierre, ejecutar OrderSelect y comprobar OrderCloseTime. Si ya es mayor que 0, la orden se cierra.


Tengo Select, ¿y dónde debo colocar OrderCloseTime? ¿Después de seleccionar o en la función CloseOrder()?

Mirado en Doc. No tengo History Select, sólo Trad. Así que intentaré poner este History Select después de la condición de cierre y antes de CloseOrder(). Gracias.