wie kann ich auf

 

0,25 runden?

ich habe das Problem, das manche symbole nur Preise oder Lot in 0,25 er steps akzepieren. 

Hat wer eine Idee wie ich das runden kann?


danke

 
amando:

0,25 runden?

ich habe das Problem, das manche symbole nur Preise oder Lot in 0,25 er steps akzepieren. 

Hat wer eine Idee wie ich das runden kann?


danke

double NearestLO(double v, double to){ return(to * MathFloor(v / to)); }
double NearestHI(double v, double to){ return(to * MathCeil( v / to)); }
double Nearest(  double v, double to){ return(to * MathRound(v / to)); }

 

danke, funktioniert


hier das script zum testen für alle anderen

void OnStart()
  {


   Print(Nearest(SymbolInfoDouble(_Symbol,SYMBOL_ASK),0.25));


  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Nearest(double v, double to)
  {
   return(to * MathRound(v / to));
  }
 
für alle anderen
Fein so mögen wir das :-)
 

Forum über Handel, automatische Handelssysteme und Strategietests

Ergebnisse Runden für Handelsaktion

Alain Verleyen, 2020.05.06 22:12

Bitte beachten Sie, dass die Verwendung von NormalizeDouble () zur Normalisierung eines Preises für eine Handelsanfrage keine universelle Methode ist, sondern für Forex und einige CFDs funktioniert, da 1 Tick 1 Punkt entspricht. Sie können aber auch Symbole verwenden, bei denen dies nicht der Fall ist. Die richtige Methode zum Normalisieren eines Preises besteht darin, sicherzustellen, dass es sich um ein Vielfaches der Tickgröße handelt.

   double normalizedPrice = MathRound (price/ticksize)*ticksize;
Gleiches gilt für die Losgröße.