Fechamento de meio lote. - página 14

 
Ótimo conselho, obrigado! Tentarei definitivamente ir por esse caminho - não tenho um preço fixo de tomada de lucro em relação a um valor de pip (ou seja, sempre 100 pips) É feito com base em onde o EMA 60 é = stop loss e o TP final fixo é 1:2 (então poderia ser qualquer valor de pip em relação à distância de 2x pip do stop loss...) É um pouco mais difícil para mim fazer isso por causa disso...

Última questão, é normalizar o preço dobra na verdade tão crucial... Eu não entendo o propósito disso...?
 

Sim, pode ser um problema com duplas, OrderTakeProfit() OrderStopLoss() OrderLots() especialmente se você fizer cálculos sobre elas. Isso afetou um dos meus EA quando eu estava fazendo algo semelhante ao fechamento de sua parte de pedidos. Dê uma olhada neste tópico https://www.mql5.com/en/forum/141034

 
Certo - tenho-o funcionando perfeitamente... O problema é que eu quero me afastar de If(OrderOpenPrice() > OrderStoploss())" para filtrar um comércio sendo fechado continuamente pelo mesmo preço...

Eu tentei chacoalhar meu cérebro, mas não consigo baixar a lógica para fazê-lo através do OrderTicket() no "OP_BUY" assim que ele é acionado, e para o número OrderTicket() na posição restante após a metade ser fechada?

Uma vez que o OP_BUY tenha sido reduzido pela metade no OrderClose() a posição restante tem um número de bilhete diferente... Alguém pode me esclarecer como eu comparo os dois para que eu possa dizer ao OrderClose() para parar depois de ter feito isso uma vez?
 
Pleasssssse - Eu sei que já esgotei este fio, mas este é o último pedaço :)?

Eu tenho tudo de hortelã e conjunto - Só não entendo a lógica ao comparar o que escrevi acima.

Pretendo fazer um fio para ajudar os outros depois de ter completado isto - seria justo!
 
Qualquer um :(
 

Já lhe disse como fazer isso, obtenha o OrderOpenTime() do bilhete que você está prestes a se despedir... Depois que você fechar a parte, faça OrderSelect() novamente qualquer ticket que tenha o mesmo OrderOpenTime() é a parte restante da ordem de fechamento da parte.

 

Ah, sim - Desculpe, deve ter perdido isso da primeira vez!

Acabei de sentar e tive uma idéia sobre isso, e estou tendo dificuldade de entender a lógica disso? Você poderia me dar um ponteiro?

No momento eu tenho isto dentro da seção "int Start()":

Obviamente eu preciso remover a parte "OrderOpenPrice() > OrderStopLoss()), mas o que estou substituindo para que a parte "CloseHalfOrder();" NÃO seja chamada continuamente? Eu não consigo baixar a lógica (um pouco lento hoje!) Estou comparando com o comércio fechado na história?

   if(OpenOrdersThisPair(Symbol())>0) //If there is a trade open = do below, which ever is applicable.
      {
      if(OrderType()==OP_BUY && OrderOpenPrice() > OrderStopLoss())
         {
         CloseHalfOrder(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }

      if(OrderType()==OP_SELL && OrderStopLoss() > OrderOpenPrice())
         {
         CloseHalfOrder1(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }   
      
 
DomGilberto:

Ah sim - Desculpe, deve ter perdido isso da primeira vez!

Eu acabei de sentar e tive uma idéia sobre isso, e estou tendo dificuldade de entender a lógica disso? Você poderia me dar um ponteiro?

No momento eu tenho isto dentro da seção "int Start()":

Obviamente eu preciso remover a parte "OrderOpenPrice() > OrderStopLoss()), mas com o que estou substituindo para que o "CloseHalfOrder();" NÃO seja chamado continuamente? Eu não consigo baixar a lógica (um pouco lento hoje!) Estou comparando com o comércio fechado na história?

No momento em que marquei em seu código qual Ordem você selecionou?

 if(OpenOrdersThisPair(Symbol())>0) //If there is a trade open = do below, which ever is applicable.
      {

      //  order currently selected is ??
 
      if(OrderType()==OP_BUY && OrderOpenPrice() > OrderStopLoss())
         {
         CloseHalfOrder(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }

      if(OrderType()==OP_SELL && OrderStopLoss() > OrderOpenPrice())
         {
         CloseHalfOrder1(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }   
      

é a Ordem correta ? se é a Ordem correta é a Ordem por acaso ou por projeto ?

 
Também pensei isso - Diz que preciso de OrderSelect() antes de usar OrderType, mas funciona? Eu só tenho um pedido aberto em um determinado momento...

Eu não consigo pensar em como usar OrderOpenTime() em meu benefício e parar de fecharHalfOrder sendo chamado toda vez...
 
DomGilberto:
Também pensei isso - Diz que preciso de OrderSelect() antes de usar OrderType, mas funciona? Eu só tenho um pedido aberto em um determinado momento...

Se você tiver a EA funcionando com dois símbolos, você terá potencialmente duas Ordens abertas ao mesmo tempo . . . você não pode testar isso no Strategy Tester, mas qual Ordem será selecionada então ? a certa ou a errada ?
Razão: