Einzelnen Beitrag anzeigen
  #9 (permalink)  
Alt 11.06.18
Trader6666 Trader6666 ist offline
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard

ok hier ist der ganze Code, natürlich hab ich double benutzt das reicht ja locker als Datentyp aus.... 1 2 und 3 habe ich rein gehauen um zu schauen was er mir eben wieder gibt.

Code:
extern double     BE_LEVEL = 20.0;


void BE_Check( int i)
{
   int n=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   Comment("1:  "+   DoubleToString((Bid-OrderOpenPrice()),Digits)+
          "\n2:  "+  (Bid-OrderOpenPrice())*10.0*Point+
          "\n3:  "+  (Bid-OrderOpenPrice())*Point );
          
          
   if( (Bid-OrderOpenPrice())*10*Point >= BE_LEVEL)
     {
      int a = OrderModify(i,OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrDarkTurquoise);
     }
}
was ich möchte ist, wenn die Posi über oder gleich BE_LEVEL ist, dass die Order auf Break Even gezogen wird. BE_LEVEL wird in ganzen Punkten(dennoch double) als Wert hinterlegt. Wie gesagt bis 9 Punkte zeigt er mir auch an das er 9.0 Punkte/Pips im Plus ist. Wenn er 10 Punkte im Plus ist dann wird mir das nicht als 10.0 angezeigt sondern als 1.0

Dadurch erfüllt meine If niemals die Bedingung. Warum werden mit 25.4 Punkte nicht genauso angezeigt??
ich bekomme anstatt dessen 2.54....... genau das is mein Problem , ich hoffe jetzt ist es verständlich....