[¡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 408

 

Me pueden decir por qué el script no borra todas las órdenes, 3 órdenes buylimit están abiertas y una orden de mercado de compra.

for(i = 0; i < OrdersTotal(); i++)
                {
                if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == FALSE) break;
                if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
                        {
                        Print(i);
                        if(OrderType() == OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
                        if(OrderType() == OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
                        if(OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket());
                        if(OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket());
                        }
                }
 
sss2019:

Me pueden decir por qué el script no borra todas las órdenes, 3 órdenes buylimit están abiertas y una orden de mercado de compra.

Porque en MT4 hay un flujo de operaciones y sólo se puede dar una orden de operaciones a la vez. Después de cada orden hay que asegurarse de que el flujo comercial no está ocupado.
 
sss2019:

Me pueden decir por qué el script no borra todas las órdenes, 3 órdenes buylimit están abiertas y una orden de mercado de compra.


Reshetov:
Porque en MT4 el flujo de operaciones es uno y sólo se puede dar una orden de operaciones a la vez. Después de cada orden, hay que asegurarse de que el flujo comercial no está ocupado.

no


El problema aquí está simplemente en el bucle. i pasa por i de 0 a 2. Necesitas 2 a 0.

 
Hola! Por favor, aconseja cómo se puede hacer que las órdenes se abran por turnos por ejemplo en el inicio OP_BUY cuando se cerrará y habrá una señal para abrir OP_SELL y se cierra con una señal de compra OP_BUY se abre, etc...!
 
lowech:
Hola! Dime como puedes hacer que las órdenes se abran una a una, por ejemplo, al principio de OP_BUY, cuando se cierra y hay señal de abrir OP_SELL, y se cierra con señal de compra se abre OP_BUY, etc.

Es muy fácil de resolver con semáforos (bool).

Puedes pensar en ello y funcionará.

 
sss2019:

Me pueden decir por qué el script no borra todas las órdenes, 3 órdenes buylimit están abiertas y una orden de mercado de compra.

buylimit que desea eliminar pero no seleccionar (este tipo)
 
DhP:

Es muy fácil de resolver con semáforos (bool).

Piénsalo y lo entenderás.

Gracias por indicarme esta dirección.
 
Skydiver:
Por favor, explíquelo con un ejemplo.
No puede haber un sistema que haga operaciones 100% rentables. Los sistemas que tendrían la longitud máxima de una serie de operaciones perdedoras igual a 1, tampoco pueden ser. En un martín puro los lotes varían por el principio: 1-2-4-8-16-, etc. La pérdida, en este caso, aumenta según el principio: 1-3-7-15- etc.

Tome cualquier sistema, suponga que el sistema con lotes fijos = 1, da una serie de PPUUUUPU. Donde, P es el beneficio y U es la pérdida. Como resultado, se obtiene un aumento de la pérdida según el principio: 1-2-3-4-5-. ¿Cómo es mejor que la martingala? Sólo que la pérdida no crece tanto como en el caso de la martingala. Por lo demás, es lo mismo que Natasha, sólo que con diferentes pantalones cortos.
 
¿Cuál es la precisión de las pruebas en el probador de estrategias integrado en MT4? ¿Cómo se puede aumentar?
 
sergeev:

no


El problema aquí está simplemente en el bucle. i va de 0 a 2. Quieres 2 a 0.



Muéstrame un ejemplo por favor, lo hice
 for(i = OrdersTotal(); i > 0; i--)
No funcionó.
Razón de la queja: