Resposta

Modificação de um stop de compra/venda

6 respostas

huangwh88

Customer, bbp_participant, community, 113 replies.

Perfil da visita

7 anos atrás #116411

Olá, 

 

Digamos que eu tenha um buy stop na maior alta dos últimos 10 períodos. Se a ordem não for acionada após o período mais recente, como modifico o buy stop para levar em conta a alteração na janela de lookback de 10 períodos?

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #141822

Olá,

 

Para modificar uma ordem de parada, você a cancelaria usando a função "fechar posição" e, em seguida, abriria novamente uma nova ordem

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Perfil da visita

7 anos atrás #141834

Olá,

 

Para modificar uma ordem de parada, você a cancelaria usando a função "fechar posição" e, em seguida, abriria novamente uma nova ordem

Oi, Tomás,

 

Toda vez que a parada de compra de highest(10) não for acionada, quero ajustar o preço de entrada para que a máxima mais alta seja atualizada. Tentei fazer o seguinte:

 

IF: 

a ordem pendente existe(1000) é verdadeira

 

ENTÃO:

 

posição de fechamento, número mágico 1000

Digite na parada, mais alto (10), número mágico 1000

 

Há um erro porque há duas ordens com o número mágico 1000. A regra que criou o buy stop original também usa o número mágico 1000. Preciso de um número mágico diferente toda vez que modifico um buy stop, mesmo que as ordens sejam realmente as mesmas?

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #141849

Olá,

 

ok, precisamos usar uma função para modificar o preço do pedido. Vou criar um exemplo para isso e anexar

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #141870

Você pode adicionar essa função no EA Wizard CustomFunctions.mq4 colocado no Wizard \ Code 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false;
   
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--) {
      se (!OrderSelect(cc, SELECT_BY_POS) ) continuar;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         found = true;

         Verbose("Moving PO for order with Magic Number: ", orderMagicNumber,", ticket: ", OrderTicket(), ", new PO: ", newPO);
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0);
      }
   }

   if(!found) {
      Verbose("Movendo o pedido - pedido com número mágico: ", orderMagicNumber, " não foi encontrado");
   }

}

Em seguida, o preço do pedido pode ser modificado, conforme mostrado no exemplo em anexo

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Perfil da visita

7 anos atrás #141966

Você pode adicionar essa função no EA Wizard CustomFunctions.mq4 colocado no Wizard \ Code 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false;
   
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--) {
      se (!OrderSelect(cc, SELECT_BY_POS) ) continuar;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         found = true;

         Verbose("Moving PO for order with Magic Number: ", orderMagicNumber,", ticket: ", OrderTicket(), ", new PO: ", newPO);
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0);
      }
   }

   if(!found) {
      Verbose("Movendo o pedido - pedido com número mágico: ", orderMagicNumber, " não foi encontrado");
   }

}

Em seguida, o preço do pedido pode ser modificado, conforme mostrado no exemplo em anexo

 

Oi Tomas, obrigado por sua ajuda maravilhosa.

 

Desejo adicionar uma condição IF que precisa ser satisfeita antes que a ordem pendente possa ser deslocada de acordo com o código acima. Se essa condição não for atendida, a ordem pendente será excluída. Existe uma maneira de adicionar essa exclusão de ordem sem criar outra regra IF/THEN?

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #141990

Olá,

 

Sim, você pode adicionar condições adicionais na guia modify (modificar) e criar outra guia para excluir a ordem pendente (usando a função "Close position" (fechar posição) para excluí-la).

0

Visualizando 6 respostas - 1 até 6 (de um total de 6)