[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 13

 
Olá! Você poderia me dizer como fazer uma parada de trilha ou Breakeven em uma EA, que funciona bem junto com a EA, mas não com ela?
 
paukas:

Entendi, obrigado. De que outra forma posso escrever esta condição? Preciso dele para fechar tudo somente se houver lucro.
 
todem:
Olá! Você poderia me dizer como fazer uma parada de trilha ou Breakeven em uma EA, que funciona bem separadamente da EA, mas não pode ser combinada com uma?
//-------------------------------------------------------------------+
extern bool   Trailing       = True;
extern int    MinProfit      = 55;
extern int    TrailingStop   = 5;
extern int    TrailingStep   = 1;
//-------------------------------------------------------------------+
extern bool   LossKiller     = True;
extern int    MinProfitB     = 21;
extern int    KillLossLevel  = 16;
//-------------------------------------------------------------------+
int start()
  {
//----
   if(LossKiller) KillLoss();
   if(Trailing) TrailPositions();
//+------------------------------------------------------------------+
//|-----------------------// Trail positions //----------------------+
//+------------------------------------------------------------------+
void TrailPositions()
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;
    {    
      if (OrderType() == OP_BUY && OrderMagicNumber() == Magic)  
      {
        if (Bid-OrderOpenPrice() > MinProfit*Point) 
        {
          if (OrderStopLoss() < Bid-(TrailingStop+TrailingStep-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,OrderTakeProfit(), 0, Gold);           
          }
        }
      }   
      if (OrderType() == OP_SELL && OrderMagicNumber() == Magic)  
      {
        if (OrderOpenPrice()-Ask > MinProfit*Point) 
        {
          if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,OrderTakeProfit(), 0, Gold);           
          }
        }
      }   
    }   
  }  
}
//+------------------------------------------------------------------+
//|--------------------------// KillLoss //--------------------------+
//+------------------------------------------------------------------+
void KillLoss()
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if(OrderSymbol() != Symbol()) continue;
    {    
      if(OrderType()==OP_BUY && (OrderStopLoss()<OrderOpenPrice() || OrderStopLoss()==0) && OrderMagicNumber()==Magic)
      {
        if(Bid-OrderOpenPrice() > MinProfitB*Point) 
        {
          if(OrderStopLoss() < Bid-(KillLossLevel-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()+KillLossLevel*Point,OrderTakeProfit(), 0, Gold);          
          }
        }
      }        
      if(OrderType()==OP_SELL && (OrderStopLoss()>OrderOpenPrice() || OrderStopLoss()==0) && OrderMagicNumber()==Magic)
      {
        if(OrderOpenPrice()-Ask > MinProfitB*Point) 
        {
          if(OrderStopLoss() > Ask+(KillLossLevel-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()-KillLossLevel*Point,OrderTakeProfit(), 0, Gold);          
          }
        }
      }   
    }   
  }  
}
//+------------------------------------------------------------------+
 
rustein:
Ajudar a consertar, não a fechar todas as posições em aberto...

Obrigado.


Quais não fecharão?

Se eles estão perdendo, tudo bem.

 
VINAR:


Quais não fecharão?

Se não forem rentáveis, tudo bem.

Apenas um é lucrativo :) Por que ? Obrigado.

Eu procurei no fórum. Mas eu não entendo...

 
Doberman101:

Saudações.

Ajude-me a escrever um EA.

Respeitosamente.

As pessoas devem se apressar com sugestões - cada uma com suas próprias... Eles ainda nem sequer decidiram com base em qual TS você precisa de um consultor. E porque não foram para o "joba"... :))

Se você precisar de ajuda para escrever código (ou, melhor ainda, compreendê-lo), você é bem-vindo, mas se... então... para o trabalho ... :)))

 
artmedia70:

As pessoas devem se apressar com ofertas - cada uma com sua própria... Eles ainda nem sequer decidiram com base em qual TC é necessário um conselheiro. E porque não foram para o "jobe"... :))

Se você precisar de ajuda para escrever código (ou, melhor ainda, compreendê-lo), você é bem-vindo, mas se... então... para o trabalho ... :)))

Artem, todos falam de?

Somente o questionador precisa de algo mais.

O conselheiro não está ameixa e neste momento.

 
rustein:

Apenas um é lucrativo :) Por que ? Obrigado.

Eu procurei no fórum. Mas não descobrimos...


AccountProfit() retorna o valor do lucro da conta corrente na moeda base.

Quando o primeiro é fechado, aparentemente, o AccountProfit() se torna menos de 0.

Você pode escrever, por exemplo, assim:

void CloseAllOrders()
{
  if(AccountProfit() > 0)
    for(int i=OrdersTotal()-1;i>=0;i--)
    {
      RefreshRates();
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
        if(OrderType()== OP_BUY) 
           OrderClose (OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),10,CLR_NONE);
        if(OrderType()== OP_SELL)
           OrderClose (OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),10,CLR_NONE);
      }
    }  
    return(0);
}
 
artmedia70:

As pessoas devem se apressar com ofertas - cada uma com sua própria... Eles ainda nem sequer decidiram com base em qual TC é necessário um conselheiro. E porque não foram para o "jobe"... :))

Se você precisar de ajuda para escrever o código (ou, melhor ainda, compreendê-lo), você é bem-vindo, mas se ... então... para o trabalho ... :)))


Por que uma resposta tão negativa? Um homem adulto... e ninguém lhe ensinou o respeito na vida?

Esse é o fim do descrédito. Eu trato os mais velhos com respeito, por mais "podres" que sejam.

 
VINAR:

Artem, você está trazendo tudo à tona?

Somente o questionador precisa de algo mais.

O conselheiro não está ameixa e neste momento.


Pedi ajuda para escrever o código...

Onde você leu que eu preciso "A EA não está drenando e agora mesmo"?
Razão: