---
id: "T:cAlgo.API.OptimizationCriterion"
kind: "struct"
namespace: "cAlgo.API"
url: "https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationCriterion/"
---

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

# OptimizationCriterion (struct)

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.

## Definition

```csharp
public sealed struct OptimizationCriterion : ValueType
```

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}")
```

## Constructors

- `public OptimizationCriterion(OptimizationCriterionType Type, OptimizationCriterionDirection Direction)` — A single optimization criterion: a performance index and the direction to optimize it. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationCriterion/Constructor/index.md)

## Properties

- `public OptimizationCriterionDirection Direction {get; set;}` — Whether to maximize or minimize the index. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationCriterion/Direction/index.md)
- `public OptimizationCriterionType Type {get; set;}` — The performance index to optimize. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Optimization/OptimizationCriterion/Type/index.md)

