---
id: "T:cAlgo.API.PositionCloseReason"
kind: "enum"
namespace: "cAlgo.API"
url: "https://help.ctrader.com/ctrader-algo/references/Trading/Positions/PositionCloseReason/"
---

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

# PositionCloseReason (enum)

The reason for closing the position.

Environments: Desktop supported · CLI supported · Cloud supported.

## Definition

```csharp
public enum PositionCloseReason
```

## Examples

C#:

```csharp
using cAlgo.API;

namespace cAlgo.Robots
{
    // This sample shows how to use PositionCloseReason
    public partial class PositionCloseReasonSample : Robot
    {
        protected override void OnStart()
        {
            Positions.Closed += Positions_Closed;
        }

        private void Positions_Closed(PositionClosedEventArgs obj)
        {
            Print(obj.Reason);

            switch (obj.Reason)
            {
                case PositionCloseReason.Closed:
                    // Do something if position closed
                    break;

                case PositionCloseReason.StopLoss:
                    // Do something if position stop loss got hit
                    break;

                case PositionCloseReason.StopOut:
                    // Do something if position stopped out
                    break;

                case PositionCloseReason.TakeProfit:
                    // Do something if position take profit got hit
                    break;
            }
        }
    }
}
```

Python:

```python
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *

# Import trading wrapper functions
from robot_wrapper import *

class PositionCloseReasonSample():
    def on_start(self):
        api.Positions.Closed += self.on_position_closed

    def on_position_closed(self, args):
        api.Print(args.Reason)
        match args.Reason:
            case PositionCloseReason.Closed:
                # Do something if position closed
                pass
            case PositionCloseReason.StopLoss:
                # Do something if position stop loss got hit
                pass
            case PositionCloseReason.StopOut:
                # Do something if position stopped out
                pass
            case PositionCloseReason.TakeProfit:
                # Do something if position take profit got hit
                pass
```

config.json:

```json
{
  "AccessRights": "None",
  "TimeZone": "UTC"
}
```

## Values

- `PositionCloseReason.Closed` — Positions was closed by the trader.
- `PositionCloseReason.StopLoss` — Position was closed by the Stop Loss.
- `PositionCloseReason.TakeProfit` — Position was closed by the Take Profit.
- `PositionCloseReason.StopOut` — Position was closed because the Stop Out level reached.

