---
id: "M:cAlgo.API.Functions.HasCrossedBelow(cAlgo.API.DataSeries,cAlgo.API.DataSeries,System.Int32)"
kind: "method"
type: "T:cAlgo.API.Functions"
url: "https://help.ctrader.com/ctrader-algo/references/Collections/DataSeries/Functions/HasCrossedBelow/"
---

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

# Functions.HasCrossedBelow

Member of [Functions](https://help.ctrader.com/ctrader-algo/references/Collections/DataSeries/Functions/index.md).

## HasCrossedBelow(DataSeries crossingSeries, DataSeries crossedSeries, int period)

Returns true, if crossingSeries has crossed below crossedSeries, over the specified Period.

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
public static bool HasCrossedBelow(DataSeries crossingSeries, DataSeries crossedSeries, int period)
```

Python:

```python
Functions.HasCrossedBelow(crossingSeries: DataSeries, crossedSeries: DataSeries, period: int) -> bool
```

### Parameters

- `crossingSeries` (`DataSeries`, Python `DataSeries`): Crossing data series
- `crossedSeries` (`DataSeries`, Python `DataSeries`): Crossed data series
- `period` (`int`, Python `int`): Period for which to check for crossing

### Returns

`bool` — 

### Examples

C#:

```csharp
var fastSma = Indicators.SimpleMovingAverage(Bars.ClosePrices, 9);
var slowSma = Indicators.SimpleMovingAverage(Bars.ClosePrices, 21);
if (fastSma.Result.HasCrossedBelow(slowSma.Result, 0))
    ExecuteMarketOrder(TradeType.Sell, SymbolName, 10000, "SmaCross");
```

Python:

```python
fastSma = api.Indicators.SimpleMovingAverage(api.Bars.ClosePrices, 9)
slowSma = api.Indicators.SimpleMovingAverage(api.Bars.ClosePrices, 21)
if Functions.HasCrossedBelow(fastSma.Result, slowSma.Result, 0):
    api.ExecuteMarketOrder(TradeType.Sell, api.SymbolName, 10000, "SmaCross")
```

## HasCrossedBelow(DataSeries crossingSeries, double value, int period)

Checks if crossingSeries has crossed below the value, sometime within the specified period.

Environments: Desktop supported · CLI supported · Cloud supported.

C#:

```csharp
public static bool HasCrossedBelow(DataSeries crossingSeries, double value, int period)
```

Python:

```python
Functions.HasCrossedBelow(crossingSeries: DataSeries, value: float, period: int) -> bool
```

### Parameters

- `crossingSeries` (`DataSeries`, Python `DataSeries`): Crossing data series
- `value` (`double`, Python `float`): Price value to check if crossed
- `period` (`int`, Python `int`): Period for which to check for crossing

### Returns

`bool` — True if crossingSeries has crossed below value, false otherwise

### Examples

C#:

```csharp
var rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, 14);
if (rsi.Result.HasCrossedBelow(70.0, 1))
    Print("RSI crossed below 70, value: {0}", rsi.Result.LastValue);
```

Python:

```python
rsi = api.Indicators.RelativeStrengthIndex(api.Bars.ClosePrices, 14)
if Functions.HasCrossedBelow(rsi.Result, 70.0, 1):
    api.Print(f"RSI crossed below 70, value: {rsi.Result.LastValue}")
```

