Utility

OpenAlgo Utility Indicators Documentation

Utility indicators provide essential market analysis functions for signal detection, condition checking, and mathematical operations. These functions are fundamental building blocks for creating trading strategies and market analysis systems.

Import Statement

from openalgo import ta, api

Sample Data Setup

# Initialize API client
client = api(api_key='your_api_key_here', host='http://127.0.0.1:5000')

# Fetch historical data
df = client.history(symbol="SBIN", 
                   exchange="NSE", 
                   interval="5m", 
                   start_date="2025-04-01", 
                   end_date="2025-04-08")

# Extract price series
close = df['close']
high = df['high']
low = df['low']
open_prices = df['open']
volume = df['volume']

Signal Detection Utilities

Crossover

Detects when one series crosses above another series. Essential for identifying bullish signal points.

Usage

Parameters

  • series1 (array-like): First series (typically fast indicator)

  • series2 (array-like): Second series (typically slow indicator)

Returns

  • array: Boolean array indicating crossover points (True where crossover occurs)

Example


Crossunder

Detects when one series crosses below another series. Used for identifying bearish signal points.

Usage

Parameters

  • series1 (array-like): First series (typically fast indicator)

  • series2 (array-like): Second series (typically slow indicator)

Returns

  • array: Boolean array indicating crossunder points (True where crossunder occurs)

Example


Cross

Detects when one series crosses another in either direction (combines crossover and crossunder).

Usage

Parameters

  • series1 (array-like): First series

  • series2 (array-like): Second series

Returns

  • array: Boolean array indicating any cross points (both over and under)

Example


Range and Extremes

Highest

Finds the highest value over a rolling window.

Usage

Parameters

  • data (array-like): Input data series

  • period (int): Window size for finding highest value

Returns

  • array: Array of highest values over the specified period

Example


Lowest

Finds the lowest value over a rolling window.

Usage

Parameters

  • data (array-like): Input data series

  • period (int): Window size for finding lowest value

Returns

  • array: Array of lowest values over the specified period

Example


Change and Rate Calculations

Change

Calculates the change in value over a specified number of periods.

Usage

Parameters

  • data (array-like): Input data series

  • length (int, default=1): Number of periods to look back

Returns

  • array: Array of change values

Example


Rate of Change (ROC)

Calculates the rate of change as a percentage.

Usage

Parameters

  • data (array-like): Input data series

  • length (int): Number of periods to look back

Returns

  • array: Array of ROC values as percentages

Example


Statistical Utilities

Standard Deviation

Calculates rolling standard deviation for volatility measurement.

Usage

Parameters

  • data (array-like): Input data series

  • period (int): Window size for standard deviation calculation

Returns

  • array: Array of standard deviation values

Example


Trend Direction Utilities

Rising

Checks if data is rising (current value > value n periods ago).

Usage

Parameters

  • data (array-like): Input data series

  • length (int): Number of periods to look back

Returns

  • array: Boolean array indicating rising periods

Example


Falling

Checks if data is falling (current value < value n periods ago).

Usage

Parameters

  • data (array-like): Input data series

  • length (int): Number of periods to look back

Returns

  • array: Boolean array indicating falling periods

Example


Advanced Signal Processing

Excess Removal (ExRem)

Eliminates excessive signals by ensuring alternating signal types.

Usage

Parameters

  • primary_signals (array-like): Primary signal array (boolean-like)

  • secondary_signals (array-like): Secondary signal array (boolean-like)

Returns

  • array: Boolean array with excess signals removed

Example


Flip

Creates a toggle state based on two signals.

Usage

Parameters

  • primary_signals (array-like): Primary signal array (boolean-like)

  • secondary_signals (array-like): Secondary signal array (boolean-like)

Returns

  • array: Boolean array representing flip state

Example


Value When

Returns the value of an array when a condition was true for the nth most recent time.

Usage

Parameters

  • condition_array (array-like): Expression array (boolean-like)

  • value_array (array-like): Value array to sample from

  • n (int, default=1): Which occurrence to get (1 = most recent)

Returns

  • array: Array of values when condition was true

Example


Complete Utility Example: Trading Signal System

Best Practices for Utility Functions

  1. Signal Filtering: Always use exrem() to filter excessive signals

  2. State Management: Use flip() to maintain position states

  3. Condition Combining: Combine multiple utilities for robust signal generation

  4. Historical Reference: Use valuewhen() to track important price levels

  5. Trend Confirmation: Use rising() and falling() to confirm trend direction

Common Signal Patterns

  1. Momentum Confirmation: crossover() + rising() + volume_confirmation

  2. Reversal Detection: falling() + oversold_condition + volume_spike

  3. Breakout Validation: cross() + highest()/lowest() + volatility_expansion

  4. Trend Following: flip() + moving_average_alignment + momentum_filter

Last updated

Was this helpful?