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

 
El objetivo es abrir un único pedido

Creamos una función en la que hacemos un bucle con las órdenes abiertas y si son 0, las abrimos.

Variante 2 :
Condición ordersdtotal ==0

Esto nos da, como mínimo, un sinfín de aperturas de órdenes o aperturas en cada tick

¿Por qué?
 
Alekseu Fedotov:

Para empezar:

variables, visibilidad de las variables

¿cómo se declaran, dónde?

Creo que el código es claro
 
Mickey Moose:
El objetivo es abrir una orden

Creamos una función en la que hacemos un bucle con las órdenes abiertas y si son 0, las abrimos.

Variante 2 :
Condición ordersdtotal ==0

Esto nos da, como mínimo, un sinfín de aperturas de órdenes o aperturas en cada tick

¿Por qué?
¿Qué es lo que no está claro en el código? Lo explicaré si hay algo
 
ZZuretc:
Lo que no está claro, lo explicaré si algo
No está claro por qué debo utilizar una función de recuento personalizada cuando hay un total de pedido fuera de la caja
 
Mickey Moose:
No está claro por qué debo utilizar una función de recuento personalizada si existe un total de pedido ya hecho

Porque el estándar devuelve el número total de órdenes y posiciones en la cuenta independientemente del símbolo, mago y tipo.

 

Hola a todos. ¿Podría decirme cómo establecer la condición de que el precio cruce una línea horizontal? ¿Y cómo hacer esta función con la máxima precisión (que reaccione en cada tick)?

Gracias de antemano))

 
Mickey Moose:
El objetivo es abrir una orden.
Creamos una función en la que hacemos un bucle con las órdenes abiertas y si son 0, las abrimos.
Variante 2 :
Condición ordersdtotal ==0
Esto nos da, como mínimo, un sinfín de aperturas de órdenes o aperturas en cada tick
¿Por qué?

Con cada tic el terminal recibe la última cotización del servidor y también la información sobre las órdenes. Cuando el terminal envía el comando OrderSend() al servidor, éste necesita un tiempo para procesar este comando y abrir el pedido. Hasta entonces, enviará información sobre la ausencia de una orden con cada tic (llamémoslo vacío). La función OrdersTotal( ) devolverá cero, y el robot enviará un nuevo OrderSend().

Cuando el servidor abra la orden, los ticks vacíos terminarán. La función OrdersTotal() devolverá un valor positivo, el robot se calmará. Si las cotizaciones cambian con frecuencia, los ticks vendrán a menudo, y habrá muchos ticks vacíos. El robot enviará muchos OrderSend(). El servidor abrirá muchos pedidos.

La conclusión es que debemos hacer una pausa después de OrderSend().

 
STARIJ:

Con cada tic, el terminal recibe del servidor la última cotización, así como información sobre las órdenes. Cuando el terminal envía el comando OrderSend() al servidor, éste necesita un tiempo para procesar el comando y abrir el pedido. Hasta entonces, enviará información sobre la ausencia de una orden con cada tic (llamémoslo vacío). La función OrdersTotal( ) devolverá cero, y el robot enviará un nuevo OrderSend().

Cuando el servidor abra la orden, los ticks vacíos terminarán. La función OrdersTotal() devolverá un valor positivo, el robot se calmará. Si las cotizaciones cambian con frecuencia, los ticks vendrán a menudo, y habrá muchos ticks vacíos. El robot enviará muchos OrderSend(). El servidor abrirá muchos pedidos.

Conclusión - debemos hacer una pausa después de OrderSend().

Después de OrderSend(), si hay una respuesta positiva, hay un ticket, y, en consecuencia, se debe solicitar una apertura de posición/colocación de orden desde el entorno de negociación una vez más, en lugar de esperar indefinidamente.

 

¿Qué pasa con una función que toma y modifica una no-magia?

Pero, ¿por qué las demás funciones no hacen pedidos múltiples, sino sólo SellLimit?

 
ZZuretc:
¿Qué pasa con una función que toma y modifica una no-magia?

La orden magik no puede ser modificada.