---
id: "M:cAlgo.API.Indicator.ClosePositionAsync(cAlgo.API.Position,System.Action{cAlgo.API.TradeResult})"
kind: "method"
type: "T:cAlgo.API.Indicator"
url: "https://help.ctrader.com/ctrader-algo/references/General/Indicator/ClosePositionAsync/"
---

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

# Indicator.ClosePositionAsync

Member of [Indicator](https://help.ctrader.com/ctrader-algo/references/General/Indicator/index.md).

## ClosePositionAsync(Position position, Action<TradeResult> callback)

Close a position in asynchronous execution mode

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
public TradeOperation ClosePositionAsync(Position position, Action<TradeResult> callback)
```

Python:

```python
api.ClosePositionAsync(position: Position, callback: Callable[[TradeResult], None]) -> TradeOperation
```

### Parameters

- `position` (`Position`, Python `Position`): The position to close
- `callback` (`Action<TradeResult>`, Python `Callable[[TradeResult], None]`): The action when the position closes

### Returns

`TradeOperation` — Trade Operation

### Examples

C#:

```csharp
ClosePositionAsync(Positions[0], result => Print("Trade operation successful: {0}", result.IsSuccessful));
```

Python:

```python
api.ClosePositionAsync(api.Positions[0], lambda result: api.Print(f"Trade operation successful: {result.IsSuccessful}"))
```

## ClosePositionAsync(Position position, long volume, Action<TradeResult> callback)

Close a position in asynchronous execution mode

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
public TradeOperation ClosePositionAsync(Position position, long volume, Action<TradeResult> callback)
```

Python:

```python
api.ClosePositionAsync(position: Position, volume: int, callback: Callable[[TradeResult], None]) -> TradeOperation
```

### Parameters

- `position` (`Position`, Python `Position`): The position to close
- `volume` (`long`, Python `int`): The volume to close
- `callback` (`Action<TradeResult>`, Python `Callable[[TradeResult], None]`): The action when the position closes

### Returns

`TradeOperation` — Trade Operation

### Examples

C#:

```csharp
ClosePositionAsync(Positions[0], result => Print("Trade operation successful: {0}", result.IsSuccessful));
```

Python:

```python
api.ClosePositionAsync(api.Positions[0], lambda result: api.Print(f"Trade operation successful: {result.IsSuccessful}"))
```

C#:

```csharp
ClosePositionAsync(Positions[0], 10000, result => Print("Trade operation successful: {0}", result.IsSuccessful));
```

Python:

```python
api.ClosePositionAsync(api.Positions[0], 10000, lambda result: api.Print(f"Trade operation successful: {result.IsSuccessful}"))
```

## ClosePositionAsync(Position position, double volume, Action<TradeResult> callback)

Close a position in asynchronous execution mode

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
public TradeOperation ClosePositionAsync(Position position, double volume, Action<TradeResult> callback)
```

Python:

```python
api.ClosePositionAsync(position: Position, volume: float, callback: Callable[[TradeResult], None]) -> TradeOperation
```

### Parameters

- `position` (`Position`, Python `Position`): The position to close
- `volume` (`double`, Python `float`): The volume to close
- `callback` (`Action<TradeResult>`, Python `Callable[[TradeResult], None]`): The action when the position closes

### Returns

`TradeOperation` — Trade Operation

### Examples

C#:

```csharp
ClosePositionAsync(Positions[0], result => Print("Trade operation successful: {0}", result.IsSuccessful));
```

Python:

```python
api.ClosePositionAsync(api.Positions[0], lambda result: api.Print(f"Trade operation successful: {result.IsSuccessful}"))
```

C#:

```csharp
ClosePositionAsync(Positions[0], 10000, result => Print("Trade operation successful: {0}", result.IsSuccessful));
```

Python:

```python
api.ClosePositionAsync(api.Positions[0], 10000, lambda result: api.Print(f"Trade operation successful: {result.IsSuccessful}"))
```

