Skip to content

BacktestingDataRequestStatusChangedEventArgs.DataRequest

property · BacktestingDataRequestStatusChangedEventArgs · cAlgo.API Since 5.3

DesktopCLICloud

Gets data request.

Environment behaviour

CLI — not supported. Available to plugins only, and plugins cannot run in the CLI.

Cloud — not supported. Available to plugins only, and plugins cannot run in the cloud.

Definition

public BacktestingDataRequest DataRequest {get;}
backtestingDataRequestStatusChangedEventArgs.DataRequest: BacktestingDataRequest

Returns BacktestingDataRequest

Examples

protected override void OnStart()
{
    var options = new BacktestingDataSourceOptions(BacktestingDataSourceDataType.M1OpenPrices, OnMinMaxTimeRequested, OnDataRequested);
    Backtesting.DataSources.Add("My Data Source", options);
}

private BacktestingMinMaxTime OnMinMaxTimeRequested(BacktestingDataSourceMinMaxTimeArgs args)
{
    return new BacktestingMinMaxTime(Server.Time.AddYears(-1), Server.Time);
}

private void OnDataRequested(BacktestingDataRequest request)
{
    request.StatusChanged += OnDataRequestStatusChanged;
}

private void OnDataRequestStatusChanged(BacktestingDataRequestStatusChangedEventArgs args)
{
    var request = args.DataRequest;
    Print("{0} request from {1} to {2} is now {3}", request.DataType, request.StartTime, request.EndTime, request.Status);
}
from System import Action, Func

def on_start(self):
    options = BacktestingDataSourceOptions(BacktestingDataSourceDataType.M1OpenPrices, Func[BacktestingDataSourceMinMaxTimeArgs, BacktestingMinMaxTime](self.on_min_max_time_requested), Action[BacktestingDataRequest](self.on_data_requested))
    api.Backtesting.DataSources.Add("My Data Source", options)

def on_min_max_time_requested(self, args):
    return BacktestingMinMaxTime(api.Server.Time.AddYears(-1), api.Server.Time)

def on_data_requested(self, request):
    request.StatusChanged += self.on_data_request_status_changed

def on_data_request_status_changed(self, args):
    request = args.DataRequest
    api.Print(f"{request.DataType} request from {request.StartTime} to {request.EndTime} is now {request.Status}")