I have noticed during some testing that OMD last price when used within OnBarUpdate lags Close[0] by 1 tick. I would have expected them to be identical at all times.
The code I used to identify the situation is below - stripped down posting purposes (after testing it of course). In theory there should be no printing to the Output window, however, at every price change the print test is true.
When compared against the Time & Sales window Close[0] is always correct.
Any suggestions or comments?
Hopefully I am wrong somewhere in my understanding or implementation - otherwise.....
Thanks
#region Variables
private double lastprice = 0;
private string ttime;
#endregion
protected override void Initialize() {
CalculateOnBarClose = false;
Overlay = true;
PriceTypeSupported = false;
}
protected override void OnMarketData(MarketDataEventArgs e) {
if (e.MarketDataType == MarketDataType.Last) {
lastprice = e.Price;
ttime = e.Time.ToLongTimeString();
}
}
protected override void OnBarUpdate() {
if(!Historical) {
if(Close[0] != lastprice) Print(Close[0] + " " + lastprice + " " + ttime); }
}
Comment