---
id: "M:cAlgo.API.Internals.IIndicatorsAccessor.KeltnerChannels(System.Int32,cAlgo.API.MovingAverageType,System.Int32,cAlgo.API.MovingAverageType,System.Double)"
kind: "method"
type: "T:cAlgo.API.Internals.IIndicatorsAccessor"
url: "https://help.ctrader.com/ctrader-algo/references/Indicators/IIndicatorsAccessor/KeltnerChannels/"
---

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

# IIndicatorsAccessor.KeltnerChannels

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

## KeltnerChannels(int maPeriod, MovingAverageType maType, int atrPeriod, MovingAverageType atrMaType, double bandDistance)

Initializes the Keltner Channels indicator instance

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
KeltnerChannels KeltnerChannels(int maPeriod, MovingAverageType maType, int atrPeriod, MovingAverageType atrMaType, double bandDistance)
```

Python:

```python
api.Indicators.KeltnerChannels(maPeriod: int, maType: MovingAverageType, atrPeriod: int, atrMaType: MovingAverageType, bandDistance: float) -> KeltnerChannels
```

### Parameters

- `maPeriod` (`int`, Python `int`): Moving Average Period
- `maType` (`MovingAverageType`, Python `MovingAverageType`): Moving Average Type
- `atrPeriod` (`int`, Python `int`): Average True Range Period
- `atrMaType` (`MovingAverageType`, Python `MovingAverageType`): Average True Range MAType
- `bandDistance` (`double`, Python `float`): ATR Multiplier

### Returns

`KeltnerChannels` — KeltnerChannels

### Examples

C#:

```csharp
var keltner = Indicators.KeltnerChannels(20, MovingAverageType.Exponential, 10, MovingAverageType.Simple, 2);
Print("Keltner top: {0}, main: {1}, bottom: {2}", keltner.Top.LastValue, keltner.Main.LastValue, keltner.Bottom.LastValue);
```

Python:

```python
keltner = api.Indicators.KeltnerChannels(20, MovingAverageType.Exponential, 10, MovingAverageType.Simple, 2)
api.Print(f"Keltner top: {keltner.Top.LastValue}, main: {keltner.Main.LastValue}, bottom: {keltner.Bottom.LastValue}")
```

## KeltnerChannels(Bars bars, int maPeriod, MovingAverageType maType, int atrPeriod, MovingAverageType atrMaType, double bandDistance)

Initializes the Keltner Channels indicator instance

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
KeltnerChannels KeltnerChannels(Bars bars, int maPeriod, MovingAverageType maType, int atrPeriod, MovingAverageType atrMaType, double bandDistance)
```

Python:

```python
api.Indicators.KeltnerChannels(bars: Bars, maPeriod: int, maType: MovingAverageType, atrPeriod: int, atrMaType: MovingAverageType, bandDistance: float) -> KeltnerChannels
```

### Parameters

- `bars` (`Bars`, Python `Bars`): The Bars that will be used by indicator, you can pass another timeframe/symbol bars
- `maPeriod` (`int`, Python `int`): Moving Average Period
- `maType` (`MovingAverageType`, Python `MovingAverageType`): Moving Average Type
- `atrPeriod` (`int`, Python `int`): Average True Range Period
- `atrMaType` (`MovingAverageType`, Python `MovingAverageType`): Average True Range MAType
- `bandDistance` (`double`, Python `float`): ATR Multiplier

### Returns

`KeltnerChannels` — KeltnerChannels

### Examples

C#:

```csharp
var dailyBars = MarketData.GetBars(TimeFrame.Daily);
var dailyKeltner = Indicators.KeltnerChannels(dailyBars, 20, MovingAverageType.Exponential, 10, MovingAverageType.Simple, 2);
Print("Daily Keltner top: {0}, bottom: {1}", dailyKeltner.Top.LastValue, dailyKeltner.Bottom.LastValue);
```

Python:

```python
dailyBars = api.MarketData.GetBars(TimeFrame.Daily)
dailyKeltner = api.Indicators.KeltnerChannels(dailyBars, 20, MovingAverageType.Exponential, 10, MovingAverageType.Simple, 2)
api.Print(f"Daily Keltner top: {dailyKeltner.Top.LastValue}, bottom: {dailyKeltner.Bottom.LastValue}")
```

