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

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

# IIndicatorsAccessor.SimpleMovingAverage

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

## SimpleMovingAverage(DataSeries source, int periods)

The simple moving average smoothes the price data producing a trend indicator

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
SimpleMovingAverage SimpleMovingAverage(DataSeries source, int periods)
```

Python:

```python
api.Indicators.SimpleMovingAverage(source: DataSeries, periods: int) -> SimpleMovingAverage
```

### Parameters

- `source` (`DataSeries`, Python `DataSeries`): The source data used for SMA calculation.
- `periods` (`int`, Python `int`): The periods used in the calculation.

### Returns

`SimpleMovingAverage` — Simple Moving Average indicator instance

### Examples

C#:

```csharp
var fastSma = Indicators.SimpleMovingAverage(Bars.ClosePrices, 10);
var slowSma = Indicators.SimpleMovingAverage(Bars.ClosePrices, 50);
if (fastSma.Result.HasCrossedAbove(slowSma.Result, 0))
    Print("SMA(10) has crossed above SMA(50)");
```

Python:

```python
fastSma = api.Indicators.SimpleMovingAverage(api.Bars.ClosePrices, 10)
slowSma = api.Indicators.SimpleMovingAverage(api.Bars.ClosePrices, 50)
if Functions.HasCrossedAbove(fastSma.Result, slowSma.Result, 0):
    api.Print("SMA(10) has crossed above SMA(50)")
```

