offene Aufträge mit 10pip Gap - Seite 6

 
WHRoeder:
  1. Ich habe nach dem Code gefragt, der den höchsten offenen Preis findet. Tut er das? Tut er das auch bei Slippage?
  2. Was meinen Sie, was das bedeutet?
  3. Ich habe Sie gebeten, den Code zu zeigen, der prüft, ob der Bid 10 Pips über dem letzten Open liegt. Warum öffnen Sie einen Sell, wenn der Markt 10 Punkte über einem beliebigen Auftrag liegt (nicht dem höchsten).
  4. Entscheiden Sie sich, ob Sie 10 Punkte oder 10 Pips wollen.





Ja, ich will 10 Pips.

 
dan100:

und überprüfen Sie auch diese Bedingung, die ich hinzugefügt habe, wenn ich richtig bin..............

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


     }

Bitte posten Sie keinen Code mit fehlenden }

das ist verwirrend

Testen Sie Ihren EA im Strategietester und Sie werden sehen, ob Sie Recht haben oder nicht.


 
GumRai:

WHRoeder hat mich darauf hingewiesen und ich habe es korrigiert, danke für den Hinweis.



Ich denke, WHRoeder: ist richtig in seinem Punkt über Punkt und Pips, jetzt hoch ist bekam ich denke, Pips sollte berücksichtigt werden


 

jetzt sehen, wie ich berechnet meine pips seit hoch ist, bin ich richtig..........


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



erinnern my_pips ist in extern double my_pips =10; und auch nicht berechnet haben, um 5stellige Makler passen werde ich hinzufügen, dass letztere.

	          
 

Ich habe keine Ahnung, was Sie zu tun versuchen

Sie erhalten den Wert fürhighest_open_price in der ersten Schleife

Dann durchlaufen Sie die Aufträge erneut und geben einen anderen Wert ein

warum?????

 
GumRai:

Ich habe keine Ahnung, was Sie zu tun versuchen

Sie erhalten den Wert fürhighest_open_price in der ersten Schleife

Dann durchlaufen Sie die Aufträge erneut und geben einen anderen Wert ein

warum?????




Es tut mir leid, dass ich einen Fehler gemacht habe, ich wollte es umschreiben, bevor ich Ihren Beitrag gesehen habe. Ich habe gerade daran gearbeitet, um es in den Tick-Wert zu ändern......

Jetzt verwende ich den Tickwert zur Berechnung der 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:


Vielen Dank für Ihre Korrekturen ich schätze.


jetzt habe ich den Code zusammengefügt höchste erhaltene Pips ist erhalten...

dann habe ich es zurück getestet, aber das Ergebnis stimmte nicht mit dem Code überein, warum?

die ich dem Code noch hinzufügen muss, oder liegt es daran, dass ich den Markt geschlossen habe...danke

oder sollte double PipDecimal = (MarketInfo(Symbol(),MODE_DIGITS)); berücksichtigt werden.


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





Ergebnis
 
   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);
      }
Ohne die geschweiften Klammern wird bei jedem Tick ein neuer Handel eröffnet
 
GumRai:
Ohne die geschweiften Klammern wird bei jedem Tick ein neuer Trade eröffnet


Das ist großartig! Es hat gut funktioniert... perfekt erkannt.


Aber das einzige Problem ist, dass bei der zweiten Bestellung nach der ersten erfolgreichen Bestellung wieder mehrere Bestellungen geöffnet werden.

bitte gibt es etwas, was ich falsch gemacht habe.