pedidos em aberto com intervalo de 10pip - página 6

 
WHRoeder:
  1. Eu pedi o código que encontra o preço mais alto em aberto. Será que isto? Será que isso acontece na presença de um deslize?
  2. O que você acha que isto significa?
  3. Eu lhe pedi para mostrar o código que testa se o Bid está 10 pips acima da última abertura. Por que você está abrindo uma venda quando o mercado está 10 pontos acima de qualquer ordem (não a mais alta).
  4. Decida-se, você quer 10 pontos ou 10 pips.





Sim, eu quero 10 pips.

 
dan100:

e também verifique esta condição adicionei se estou certo..............

 double highest_open_price=0;
   int    highest_Ticket=-1;
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()==0           // my magic number
         && OrderSymbol()==Symbol() // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
         RefreshRates();
          if (Bid>=highest_open_price+10*Point)
   highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);


     }

Por favor, não poste código com um vadio }

é confuso

Experimente seu EA no testador de estratégia e você verá se você está certo ou não


 
GumRai:

} -- WHRoeder apontou-o e eu o corrigi, obrigado por notar.



Eu acho que WHRoeder: está certo em seu ponto sobre ponto e pips, agora está alto, acho que pips devem ser considerados


 

agora veja como eu calculei meus pips desde que fiquei alto estou certo..........


 double highest_open_price=0;
   int    highest_Ticket=-1;
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()==0           // my magic number
         && OrderSymbol()==Symbol() // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
        

 int look_pips=0; 
for(pos=OrdersTotal()-1; pos>=0; pos--) 

      highest_open_price=MathAbs(High[pos]-Low[pos])/Point;  //pips levels of the bar
      if (Bid>=highest_open_price && look_pips >=my_pips)
      Print("The last price movement more than ",my_pips); 
 
         RefreshRates();
   highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);



lembre-se que minhas_pips são adicionadas no duplo externo my_pips =10; e também não calcularam para caber corretores de 5 dígitos vou adicionar este último.

	          
 

Eu não tenho idéia do que você está tentando fazer

Você obtém o valor para opreço_aberto_mais alto no primeiro loop

Em seguida, você faz um loop através das ordens novamente e lhe dá um valor diferente

por?????

 
GumRai:

Eu não tenho idéia do que você está tentando fazer

Você obtém o valor para opreço_aberto_mais alto no primeiro loop

Em seguida, você faz um loop através das ordens novamente e lhe dá um valor diferente

por?????




desculpe-me por um erro que eu estava prestes a reescrevê-lo antes de ver seu post. apenas trabalhei mais nele para mudá-lo para o tick value......

agora eu uso o valor do tick para calcular pips.....



 double highest_open_price=0;
   int    highest_Ticket=-1;
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()==0           // my magic number
         && OrderSymbol()==Symbol() // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
        
        
   double tickvalue = (MarketInfo(Symbol(),MODE_TICKVALUE));
   if(Digits == 5 || Digits == 3){
      tickvalue = tickvalue*10;
   }
       if (Bid>=highest_open_price + tickvalue*10)
      Print("The last price movement more than ",tickvalue); 
 
         RefreshRates();
   highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);




now to add my comment on this tick value. one thing i know is -----10pips is a movement of price upward or down to definite number point stored while 10tick 
is count of moving price without storing number

else 10tick can complete in 1 candle far below pips. while 10pips can complete in more than 20bars/candle or even 1bar/candle.

conclusion i dont think i got it right?


please point me through 



in addition double MYPIP= MarketInfo(Symbol(), MODE_DIGITS); can  it work on this case to get pip
 
        
   double PipDecimal=Point;
   if(Digits == 5 || Digits == 3)
      PipDecimal = PipDecimal*10;

   if (Bid>=highest_open_price + PipDecimal *10)
 
GumRai:


obrigado por suas correções, agradeço.


agora eu juntei o código mais alto é obtido pips é obtido...

então eu o testei novamente, mas o resultado não correspondeu ao código por quê? estou perdendo alguma coisa está havendo alguma condição

ainda preciso acrescentar ao código ou é porque o mercado eu fechei... obrigado

ou deve duplicar PipDecimal = (MarketInfo(Symbol(),MODE_DIGITS)); ser considerado .


 double highest_open_price=0;
   int    highest_Ticket=-1;
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()==0           // my magic number
         && OrderSymbol()==Symbol() // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
        
   double PipDecimal=Point;
   if(Digits == 5 || Digits == 3)
      PipDecimal = PipDecimal*10;

   if (Bid>=highest_open_price + PipDecimal *10)
      Print("The last price movement more than ",PipDecimal); 
 
         RefreshRates();
   highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);





resultado
 
   if (Bid>=highest_open_price + PipDecimal *10)
      {
      Print("The last price movement more than ",PipDecimal); 
      RefreshRates();
      highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);
      }
Sem o aparelho encaracolado, um novo comércio será aberto a cada tique
 
GumRai:
Sem o aparelho encaracolado, um novo comércio será aberto a cada tique


isso é ótimo! funcionou bem... perfeitamente manchado.


mas o único problema é que durante a segunda ordem ele continua abrindo várias ordens novamente após a primeira ordem bem sucedida ter aberto bem...

por favor, existe alguma coisa que eu tenha feito de errado.

Razão: