//+------------------------------------------------------------------+ //| unnormalized_quotes.mq5 | //| Copyright © 2018, Amr Ali | //| https://www.mql5.com/en/users/amrali | //+------------------------------------------------------------------+ #property copyright "Copyright © 2018, Amr Ali" #property link "https://www.mql5.com/en/users/amrali" #property version "4.0" #property script_show_inputs #include input int InpBarsToScan = 100; // bars to scan //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #define PRINT(A) Print(#A + " = ", (A)) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { for(int bar = 0; bar < InpBarsToScan; bar++) { double price = iClose(_Symbol, PERIOD_CURRENT, bar); datetime time = iTime(_Symbol, PERIOD_CURRENT, bar); // check if the price is not rounded correctly to digits. if(!IsRound(price, _Digits)) { // round the price correctly to digits. double should_be = Round(price, _Digits); //--- Print the un-normalized quote price. PRINT( time ); PRINT( price ); PRINT( should_be ); PRINT( UlpDiff(price, should_be) ); Print(""); } } //--- Showing information about the number of ticks and spent time PrintFormat("Processed %d bars for symbol %s",InpBarsToScan,_Symbol); } //+------------------------------------------------------------------+ // Sample output: /* unnormalized_quotes (EURUSD,M1) time = 2022.05.04 13:45:00 unnormalized_quotes (EURUSD,M1) price = 1.0524499999999999 unnormalized_quotes (EURUSD,M1) should_be = 1.05245 unnormalized_quotes (EURUSD,M1) UlpDiff(price,should_be) = -1 unnormalized_quotes (EURUSD,M1) unnormalized_quotes (EURUSD,M1) time = 2022.05.04 13:27:00 unnormalized_quotes (EURUSD,M1) price = 1.0526200000000001 unnormalized_quotes (EURUSD,M1) should_be = 1.05262 unnormalized_quotes (EURUSD,M1) UlpDiff(price,should_be) = 1 unnormalized_quotes (EURUSD,M1) unnormalized_quotes (EURUSD,M1) time = 2022.05.04 12:20:00 unnormalized_quotes (EURUSD,M1) price = 1.0524499999999999 unnormalized_quotes (EURUSD,M1) should_be = 1.05245 unnormalized_quotes (EURUSD,M1) UlpDiff(price,should_be) = -1 unnormalized_quotes (EURUSD,M1) unnormalized_quotes (EURUSD,M1) time = 2022.05.04 12:18:00 unnormalized_quotes (EURUSD,M1) price = 1.0524499999999999 unnormalized_quotes (EURUSD,M1) should_be = 1.05245 unnormalized_quotes (EURUSD,M1) UlpDiff(price,should_be) = -1 unnormalized_quotes (EURUSD,M1) unnormalized_quotes (EURUSD,M1) Processed 100 bars for symbol EURUSD */