---
id: "E:cAlgo.API.BacktestingProcess.Completed"
kind: "event"
type: "T:cAlgo.API.BacktestingProcess"
url: "https://help.ctrader.com/ctrader-algo/references/Plugin/Backtesting/BacktestingProcess/Completed/"
---

> Documentation index for agents: https://help.ctrader.com/ctrader-algo/llms.txt · machine index: https://help.ctrader.com/ctrader-algo/api.json

# BacktestingProcess.Completed

Member of [BacktestingProcess](https://help.ctrader.com/ctrader-algo/references/Plugin/Backtesting/BacktestingProcess/index.md).

## Completed

Occurs when the backtesting process is completed.

Environments: Desktop supported · CLI not supported · Cloud not supported.

- CLI: Available to plugins only, and plugins cannot run in the CLI.
- Cloud: Available to plugins only, and plugins cannot run in the cloud.

C#:

```csharp
event Action<BacktestingCompletedEventArgs> Completed;
```

Python:

```python
backtestingProcess.Completed += handler  # handler(obj: BacktestingCompletedEventArgs)
```

### Returns

`Action<BacktestingCompletedEventArgs>` — 

### Examples

C#:

```csharp
if (AlgoRegistry.Get("Sample Trend cBot", AlgoKind.Robot) is not RobotType robotType)
    return;
var settings = new BacktestingSettings { StartTimeUtc = new DateTime(2025, 1, 1), EndTimeUtc = new DateTime(2025, 2, 1), Balance = 10000 };
var process = Backtesting.Start(robotType, "EURUSD", TimeFrame.Hour, settings);
process.Completed += args => Print("Completed, error: {0}, report: {1}", args.Process.BacktestingError, args.JsonReport);
```

Python:

```python
from System import DateTime
algoType = api.AlgoRegistry.Get("Sample Trend cBot", AlgoKind.Robot)
if algoType is None:
    return
settings = BacktestingSettings()
settings.StartTimeUtc = DateTime(2025, 1, 1)
settings.EndTimeUtc = DateTime(2025, 2, 1)
settings.Balance = 10000
process = api.Backtesting.Start(RobotType(algoType), "EURUSD", TimeFrame.Hour, settings)
process.Completed += lambda args: api.Print(f"Completed, error: {args.Process.BacktestingError}, report: {args.JsonReport}")
```

