Code: Select all
double round_down( double v, double to){ return to * MathFloor(v / to); }
/// Round a double to a multiple of an amount.
double round_up( double v, double to){ return to * MathCeil( v / to); }
/// Round a double to a multiple of an amount.
double round_nearest( double v, double to){ return to * MathRound(v / to); }
int pips_to_points(double n){ if( (_Digits&1) == 1) n *= 10.0;
return int(n); }
double points_to_change(int n){ return n * _Point; }
double pips_to_change(double n){ return points_to_change(pips_to_points(n));}
double price = Bid; // 1.11xxx
double next100 = round_up( price, pips_to_change(100) ); // 1.1200
double prev50 = next100 - pips_to_change(50); // 1.1150
if(prev50 <= price) // current price is above 1.1150
Comment(Close[0]);