Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1866

 
Andrey Sokolov #:

Las matrices k_buffer[0] y d_buffer[0] contienen los últimos valores del indicador. ¿Qué problema hay en emitirlos y verlos tú mismo?

Sí, efectivamente, aparentemente mi error está en otra parte. Gracias.

 
Andrey Sokolov #:

¿Qué es exactamente lo que no funciona en la abreviatura del código?

Ya he escrito. Si se cumplen ciertas condiciones, se cerrarán varios pedidos. Se colocan en diferentes pares de divisas y en diferentes direcciones. Aquí hay un trozo de código.

 if ( NormalizeDouble((MaxOpenSell(2) + MaxOpenBuy(2) + MinOpenSell(2))*Point,Digits) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell(2) > 0 && MA1 < MA2)
      {
         LockTicket = 0;
         CalProfHis = 0;
         bool close =  OrderClose((int)MaxOpenSell(5),MaxOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MinOpenSell(5),MinOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MaxOpenBuy(5),MaxOpenBuy(3), Bid, Slippage, clrBlue);
      }

Cierro tres órdenes en él.

Sin embargo, mi empresa de corretaje a veces los pierde, supongo que debido a muchas señales a la vez. Así, puedo comprobar cada orden y repetirla si falla.
La cuestión es cómo hacerlo de forma correcta y competente, y no escribir un código enorme. Estoy seguro de que hay un camino corto, por eso os pregunto a vosotros, mis programadores más veteranos.

 
makssub #:

Así puedo hacer un cheque por cada pedido, y repetirlo si falla.
La cuestión es: cómo hacerlo de forma correcta y competente, y no escribir un código enorme. Estoy seguro de que hay un camino más corto, así que os pregunto a vosotros, nuestros programadores más veteranos.

¿La opción que he sugerido no le conviene?

Este es el foro para el comercio, los sistemas de comercio automatizados y las pruebas de estrategia.

Cualquier pregunta de los novatos sobre MQL4 y MQL5, o cualquier consejo y discusión sobre algoritmos y códigos

Mihail Matkovskij, 2022.01.17 10:35

Si se produce la condición de salida/cierre, añade los ticks al array. A continuación, si la matriz no está vacía, haga un bucle a través de ella, llamando a OrderClose para cada ticket. A continuación, comprueba la existencia de cada billete y lo elimina de la lista (array). Repita estas acciones a intervalos de 1 a 3 segundos hasta que la lista esté vacía.


 
El poliquismo lo es todo
 
Artyom Trishkin #:
El poliquismo lo es todo

eso es al principio :)

Por supuesto, cuando veo esos códigos, se me saltan las lágrimas de compasión.

 
Vitaly Muzichenko #:

eso es al principio :)

Por supuesto, cuando veo esos códigos, se me saltan las lágrimas de compasión.

Al mismo tiempo, las muletas no se escriben solas...

 
Vitaly Muzichenko #:

eso es al principio :)

Por supuesto, cuando veo esos códigos, se me saltan las lágrimas de compasión.

Señores, por favor, hagan una crítica razonada.

 
Andrey Sokolov #:

Señores, por favor, hagan una crítica razonada.

Somos nosotros... hablando durante un descanso para fumar. No te preocupes por nosotros.

 
Todo puede llamarse muletas. Como no se entiende bien el código máquina del lenguaje ensamblador, se inventaron los lenguajes de programación de alto y ultra alto nivel. ¿Qué no son muletas?
 
Mihail Matkovskij #:

Cuando se produce una condición de salida/cierre, se añaden las entradas a la matriz. A continuación, si la matriz no está vacía, haga un bucle a través de ella, llamando a OrderClose para cada ticket. A continuación, compruebe la existencia de cada billete y elimínelo de la lista. Repita estas acciones a intervalos de 1 a 3 segundos hasta que la lista esté vacía.

¿Puede mostrar la función de cierre completa?

Razón de la queja: