Respuesta

Modificar un stop de compra/venta

6 respuestas

huangwh88

Customer, bbp_participant, community, 113 replies.

Visitar el perfil

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?

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

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.

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visitar el perfil

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?

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

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

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

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

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visitar el perfil

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?

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

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).

0

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)