Making a FixedProfileRequest from a ChartStrategy in replay mode with FixedProfilePeriods.CurrentDay does not behave as expected, even with the BaseTime property set.
For example:
private async void RequestCurrentDayFixedProfile()
{
try
{
var req = new FixedProfileRequest(FixedProfilePeriods.CurrentDay,
GetETHSessionId(),
GetCandle(CurrentBar - 1).LastTime);
Log.CommonChartStrategy.Warn($"Requesting current day fixed profile with base: {req.BaseTime}");
_currentDayFixedProfile = await RequestFixedProfileAsync(req);
_confluenceData.DailyMarketProfile = _currentDayFixedProfile?.Original;
}
catch (Exception e)
{
Log.CommonChartStrategy.Error($"Failed to request current day fixed profile: {e}");
}
}
The docs here state the following for BaseTime:
Gets the base time for period calculation. If null, the current market time is used. This is useful for Market Replay scenarios where the period should be calculated relative to a specific point in time rather than the current market time.
It's to be expected then that making a request in replay mode with the BaseTime property set will return an IndicatorCandle that reflects the "current" time within the backtesting window. It should not be displaying the EOD data for the fixed profile.
Below is a screenshot of a custom ChartStrategy logging output:
Here is what the MarketProfile indicator for the Daily timeframe on the chart looks like:
You can see the deviation between the two, where one shows the future EOD values (not helpful in backtesting) and the other displays the value from that particular point in time historically.
Is this a known limitation of replay mode, or must the request be formatted in a particular way?
Making a FixedProfileRequest from a ChartStrategy in replay mode with FixedProfilePeriods.CurrentDay does not behave as expected, even with the BaseTime property set.
For example:
The docs here state the following for BaseTime:
It's to be expected then that making a request in replay mode with the BaseTime property set will return an IndicatorCandle that reflects the "current" time within the backtesting window. It should not be displaying the EOD data for the fixed profile.
Below is a screenshot of a custom ChartStrategy logging output:
Here is what the MarketProfile indicator for the Daily timeframe on the chart looks like:
You can see the deviation between the two, where one shows the future EOD values (not helpful in backtesting) and the other displays the value from that particular point in time historically.
Is this a known limitation of replay mode, or must the request be formatted in a particular way?