---
id: "M:cAlgo.API.OptimizationSettings.#ctor(System.DateTime,System.DateTime,System.Double,System.Collections.Generic.IEnumerable{cAlgo.API.OptimizationCriterion})"
kind: "constructor"
type: "T:cAlgo.API.OptimizationSettings"
url: "https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationSettings/Constructor/"
---

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

# OptimizationSettings constructor

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

## OptimizationSettings(DateTime startTimeUtc, DateTime endTimeUtc, double balance, IEnumerable<OptimizationCriterion> criteria)

Initializes a new instance of the [`OptimizationSettings`](https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationSettings/index.md) record.

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
public OptimizationSettings(DateTime startTimeUtc, DateTime endTimeUtc, double balance, IEnumerable<OptimizationCriterion> criteria)
```

Python:

```python
OptimizationSettings(startTimeUtc: DateTime, endTimeUtc: DateTime, balance: float, criteria: Iterable[OptimizationCriterion])
```

### Parameters

- `startTimeUtc` (`DateTime`, Python `DateTime`): The start time in UTC for the optimization period.
- `endTimeUtc` (`DateTime`, Python `DateTime`): The end time in UTC for the optimization period.
- `balance` (`double`, Python `float`): The initial balance for each pass.
- `criteria` (`IEnumerable<OptimizationCriterion>`, Python `Iterable[OptimizationCriterion]`): The standard optimization criteria. When [`OptimizationSettings.UseCustomFitness`](https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationSettings/UseCustomFitness/index.md) is true the criteria are ignored in favor of the cBot's custom `GetFitness`.

Available since cAlgo.API 5.9.

### Examples

C#:

```csharp
var criteria = new[]
{
    new OptimizationCriterion(OptimizationCriterionType.NetProfit, OptimizationCriterionDirection.Maximize),
    new OptimizationCriterion(OptimizationCriterionType.MaxEquityDrawdownPercentages, OptimizationCriterionDirection.Minimize)
};
var settings = new OptimizationSettings(new DateTime(2025, 1, 1), new DateTime(2025, 3, 1), 10000, criteria);
```

Python:

```python
from System import DateTime
criteria = [
    OptimizationCriterion(OptimizationCriterionType.NetProfit, OptimizationCriterionDirection.Maximize),
    OptimizationCriterion(OptimizationCriterionType.MaxEquityDrawdownPercentages, OptimizationCriterionDirection.Minimize)
]
settings = OptimizationSettings(DateTime(2025, 1, 1), DateTime(2025, 3, 1), 10000, criteria)
```

## OptimizationSettings(OptimizationSettings original)



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
public OptimizationSettings(OptimizationSettings original)
```

Python:

```python
OptimizationSettings(original: OptimizationSettings)
```

### Parameters

- `original` (`OptimizationSettings`, Python `OptimizationSettings`):

Available since cAlgo.API 5.9.

