Modificar un stop de compra/venta
6 respuestas
huangwh88
hace 7 años #116411
Hola,
Digamos que tengo un stop de compra en el máximo de los últimos 10 periodos. Si la orden no se activa después del último periodo, ¿cómo modifico el stop de compra para tener en cuenta el cambio en la ventana retrospectiva de 10 periodos?
tomas262
hace 7 años #141822
Hola,
para modificar una orden stop, debe anularla mediante la función "cerrar posición" y volver a abrir una nueva orden.
huangwh88
hace 7 años #141834
Hola,
para modificar una orden stop, debe anularla mediante la función "cerrar posición" y volver a abrir una nueva orden.
Hola Tomas,
Cada vez que el stop de compra de highest(10) no se activa quiero ajustar el precio de entrada para que se actualice el máximo más alto. He intentado esto:
SI:
orden pendiente existe(1000) es True
ENTONCES:
cerrar posición, número mágico 1000
Introduzca en la parada, highest(10), número mágico 1000
Hay un error porque hay 2 órdenes con número mágico 1000. La regla que creó el buy stop original también utiliza el número mágico 1000. ¿Necesito un número mágico diferente cada vez que modifico un buy stop, aunque las órdenes sean realmente las mismas?
tomas262
hace 7 años #141849
Hola,
ok, necesitamos utilizar una función para modificar y precio de la orden. Voy a hacer un ejemplo para esto y adjuntar
tomas262
hace 7 años #141870
Puede añadir esta función en EA Wizard CustomFunctions.mq4 colocado en Wizard \ Code
void modifyPendingOrder(int orderMagicNumber, double newPO) { bool encontrado = false; for (int cc = TotalPedidos() - 1; cc >= 0; cc--) { if (!OrderSelect(cc, SELECT_BY_POS) ) continue; if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) { encontrado = verdadero; Verbose("Moviendo PO para pedido con Magic Number: ", orderMagicNumber,", ticket: ", OrderTicket(), ", nuevo PO: ", newPO); tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0); } } if(!found) { Verbose("Moving PO - order with Magic Number: ", orderMagicNumber, " wasn't found"); } }
A continuación, el precio del pedido puede modificarse como se muestra en el ejemplo adjunto
huangwh88
hace 7 años #141966
Puede añadir esta función en EA Wizard CustomFunctions.mq4 colocado en Wizard \ Code
void modifyPendingOrder(int orderMagicNumber, double newPO) { bool encontrado = false; for (int cc = TotalPedidos() - 1; cc >= 0; cc--) { if (!OrderSelect(cc, SELECT_BY_POS) ) continue; if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) { encontrado = verdadero; Verbose("Moviendo PO para pedido con Magic Number: ", orderMagicNumber,", ticket: ", OrderTicket(), ", nuevo PO: ", newPO); tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0); } } if(!found) { Verbose("Moving PO - order with Magic Number: ", orderMagicNumber, " wasn't found"); } }A continuación, el precio del pedido puede modificarse como se muestra en el ejemplo adjunto
Hola Tomas, Gracias por tu maravillosa ayuda.
Deseo añadir una condición IF que debe cumplirse antes de que la orden pendiente pueda desplazarse según el código anterior. Si esta condición no se cumple, la orden pendiente se elimina. ¿Hay alguna forma de añadir esta eliminación de orden sin crear otra regla IF/THEN?
tomas262
hace 7 años #141990
Hola,
Sí, puede añadir condiciones adicionales en la pestaña de modificación y crear otra pestaña para eliminar la orden pendiente (utilizando la función "Cerrar posición" para eliminarla).
Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)