---
id: "M:cAlgo.API.OptimizationCriterion.#ctor(cAlgo.API.OptimizationCriterionType,cAlgo.API.OptimizationCriterionDirection)"
kind: "constructor"
type: "T:cAlgo.API.OptimizationCriterion"
url: "https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationCriterion/Constructor/"
---

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

# OptimizationCriterion constructor

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

## OptimizationCriterion(OptimizationCriterionType Type, OptimizationCriterionDirection Direction)

A single optimization criterion: a performance index and the direction to optimize it.

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 OptimizationCriterion(OptimizationCriterionType Type, OptimizationCriterionDirection Direction)
```

Python:

```python
OptimizationCriterion(Type: OptimizationCriterionType, Direction: OptimizationCriterionDirection)
```

### Parameters

- `Type` (`OptimizationCriterionType`, Python `OptimizationCriterionType`): The performance index to optimize.
- `Direction` (`OptimizationCriterionDirection`, Python `OptimizationCriterionDirection`): Whether to maximize or minimize the index.

Available since cAlgo.API 5.9.

### Examples

C#:

```csharp
var netProfit = new OptimizationCriterion(OptimizationCriterionType.NetProfit, OptimizationCriterionDirection.Maximize);
var drawdown = new OptimizationCriterion(OptimizationCriterionType.MaxEquityDrawdownPercentages, OptimizationCriterionDirection.Minimize);
var settings = new OptimizationSettings(new DateTime(2025, 1, 1), new DateTime(2025, 2, 1), 10000, new[] { netProfit, drawdown });
Print("Criteria: {0}", settings.Criteria.Count);
```

Python:

```python
from System import DateTime
netProfit = OptimizationCriterion(OptimizationCriterionType.NetProfit, OptimizationCriterionDirection.Maximize)
drawdown = OptimizationCriterion(OptimizationCriterionType.MaxEquityDrawdownPercentages, OptimizationCriterionDirection.Minimize)
settings = OptimizationSettings(DateTime(2025, 1, 1), DateTime(2025, 2, 1), 10000, [netProfit, drawdown])
api.Print(f"Criteria: {settings.Criteria.Count}")
```

