74 lines
6.2 KiB
MQL5
74 lines
6.2 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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 <math_utils.mqh>
|
|
|
|
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
|
|
*/
|