ordini aperti con gap di 10pip - pagina 6

 
WHRoeder:
  1. Ho chiesto il codice che trova il prezzo aperto più alto. Lo fa? Lo fa in presenza di slippage?
  2. Cosa pensi che significhi questo?
  3. Ti ho chiesto di mostrare il codice che verifica se il Bid è 10 pips sopra l'ultimo open. Perché stai aprendo una vendita quando il mercato è 10 punti sopra qualsiasi ordine (non il più alto).
  4. Deciditi, vuoi 10 punti o 10 pip.





Sì, voglio 10 pip.

 
dan100:

e controlla anche questa condizione che ho aggiunto se ho ragione..............

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


     }

Per favore non postare codice con un } vagante

è confuso.

Prova il tuo EA nello strategy tester e vedrai se hai ragione o no


 
GumRai:

} -- WHRoeder l 'ha sottolineato e io l'ho corretto grazie per averlo notato.



Penso che WHRoeder: ha ragione nel suo punto circa il punto e i pip, ora alto è ottenuto penso che i pip dovrebbero essere considerati


 

ora vedi come ho calcolato i miei pips dal momento che alto è ottenuto ho ragione..........


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



ricordate my_pips è aggiunto in extern double my_pips =10; e anche non hanno calcolato per adattarsi 5digit broker aggiungerò che quest'ultimo.

	          
 

Non ho idea di cosa tu stia cercando di fare

Ottieni il valore perhighest_open_price nel primo ciclo

Poi fai un altro ciclo attraverso gli ordini e gli dai un valore diverso

perché?????

 
GumRai:

Non ho idea di cosa tu stia cercando di fare

Ottieni il valore perhighest_open_price nel primo ciclo

Poi fai un altro ciclo attraverso gli ordini e gli dai un valore diverso

perché?????




Mi dispiace per l'errore, stavo per riscriverlo prima di vedere il tuo post. Ci ho lavorato di più per cambiarlo in valore di tick......

ora uso il valore di tick per calcolare i 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:


grazie per le vostre correzioni che apprezzo.


ora ho unito il codice insieme il più alto è ottenuto pips è ottenuto ...

Poi ho fatto un back test, ma il risultato non corrisponde al codice, perché? Mi manca qualcosa, c'è qualche condizione

che devo ancora aggiungere al codice o è perché il mercato è chiuso ... grazie

o dovrebbe essere considerato il doppio PipDecimal = (MarketInfo(Symbol(),MODE_DIGITS));.


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





risultato
 
   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);
      }
Senza le parentesi graffe, un nuovo trade sarà aperto ogni tick
 
GumRai:
Senza le parentesi graffe, un nuovo trade sarà aperto ogni tick


è fantastico! ha funzionato bene... perfettamente individuato.


ma l'unico problema è che durante il secondo ordine continua ad aprire di nuovo un ordine multiplo dopo che il primo ordine è stato aperto con successo...

per favore, c'è qualcosa che ho fatto di sbagliato.