¡¡¡AYUDA A QUIEN PUEDA!!! - página 11

 
Techno:
De ninguna manera, es la misma cosa, un experto completamente diferente. Usa el mío, completa los detalles que faltan

NO ESTOY HABLANDO DEL ORIGINAL, ESTOY HABLANDO DEL QUE HICE CON SUS PARTES... ¡PERO MUCHAS GRACIAS POR LA LECCIÓN CON EL ARRAY !
 
sllawa3:
PERO LA PREGUNTA SIGUE SIENDO... CÓMO EVITAR EL ERROR DE SELECCIÓN... SÓLO HAN REUNIDO A UN EXPERTO CON UNA MATRIZ... NO SE PUEDE SEGUIR SIEMPRE ESTE PATRÓN...
en lugar de arrays podríamos haber utilizado un montón de variables. La diferencia en los Asesores Expertos es que el bloque de evaluación de órdenes es independiente del resto del programa. La modificación tampoco depende del borrado, mientras que en tu caso todo está en un solo lugar. Para escribir todo junto, hay que tener mucha experiencia, y acabas de cometer un error en alguna parte, sería más fácil escribir un nuevo EA que lidiar con ese lío.
 

En resumen, si no pones a cero las variables, no se ponen a cero en ningún otro sitio, y nada de tu versión original funciona. Si los pone a cero al final, el EA funciona, pero tiene una línea, por ejemplo, if(OrderType() == OP_BUYSTOP&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);}

Y no funciona nada, porque una orden limitada puede ir primero y la orden de mercado sólo después, y esta condición nunca se cumplirá y la orden pendiente no se eliminará. Por lo tanto, su Asesor Experto sólo funciona cuando la secuencia de órdenes en el terminal está de acuerdo con el algoritmo, como usted ha entendido rara vez sucede en 11 años 90 operaciones se han abierto, lo he comprobado. Así que la conclusión es la estructura errónea del programa, o más bien la dependencia total de una iteración de otra durante el rebasamiento.

 
BUENO, ES OBVIO QUE HAY ALGO MAL... ASÍ QUE LO ESTABA BUSCANDO... PERO TU CÓDIGO ES MUCHO MÁS CORTO... MUCHO MÁS CORTO...
 
sllawa3:
BUENO, OBVIAMENTE HAY ALGO QUE NO FUNCIONA... ASÍ QUE HE ESTADO BUSCANDO...
por lo que te escribí el error de arriba. La estructura del programa no es correcta, es decir, no se trata de un error en un símbolo, sino en el 70% de todo el programa.
 

TAMBIÉN TIENES UN ERROR EN TU CÓDIGO... NO MODIFICA LAS POSICIONES DE COMPRA, POR LO QUE SI SE ACTIVA UN STOP DE COMPRA, LA ORDEN SE COLOCA SIN STOP Y SE RETIRA Y NO SE ABREN OTRAS

SIN DATOS DB[2]==0 DB[3]==0 TAMBIÉN

 
lo he resuelto... set DB[0] not > 1 a >=1....
 
Sí, lo he arreglado en el mío, sólo que me olvidé de ponerlo en el archivo subido
 
sllawa3:

TAMBIÉN TIENES UN ERROR EN TU CÓDIGO... NO MODIFICA LAS POSICIONES DE COMPRA, POR LO QUE SI SE ACTIVA UN STOP DE COMPRA, LA ORDEN SE COLOCA SIN STOP Y SE RETIRA Y NO SE ABREN OTRAS

SIN DATOS DB[2]==0 DB[3]==0 TAMBIÉN

Slava, tu problema es que no aceptas nuevas ideas... Se te ha dado un enfoque diferente, pero esperas una solución lista...

Es usted quien decide cómo tratar los posibles problemas con los pedidos: recotizaciones, precios incorrectos, etc...

 
Techno:
Sí, lo he arreglado yo mismo, sólo que me olvidé de poner
en el archivo subido.

He decidido reescribir todos mis EAs utilizando una matriz... estoy pensando en cómo añadir 2 variables más - lote de la orden y el beneficio de la orden y 2 órdenes para bylimit y selligit

en la tabla de búsqueda de pedidos

¿hay alguna limitación en el número de variables horizontales y verticales? y las variables antes del inicio [4] ¿es el número de órdenes o el número de variables en cada orden?

Razón de la queja: