centaur-technical-indicators
    Preparing search index...

    Interface MomentumIndicatorsBulk

    Bulk/rolling momentum indicators.

    General:

    • Output length is L - N + 1 where N is period (or longPeriod for two-window indicators).
    • Each output at index i corresponds to the input window [i..i+N-1].
    interface MomentumIndicatorsBulk {
        chaikinOscillator(
            highs: number[],
            lows: number[],
            close: number[],
            volume: number[],
            shortPeriod: number,
            longPeriod: number,
            previousAccumulationDistribution: number,
            shortPeriodModel: ConstantModelType,
            longPeriodModel: ConstantModelType,
        ): [number, number][];
        chandeMomentumOscillator(prices: number[], period: number): number[];
        commodityChannelIndex(
            prices: number[],
            constantModelType: ConstantModelType,
            deviationModel: DeviationModel,
            constantMultiplier: number,
            period: number,
        ): number[];
        macdLine(
            prices: number[],
            shortPeriod: number,
            shortPeriodModel: ConstantModelType,
            longPeriod: number,
            longPeriodModel: ConstantModelType,
        ): number[];
        mcginleyDynamicCommodityChannelIndex(
            prices: number[],
            previousMcginleyDynamic: number,
            deviationModel: DeviationModel,
            constantMultiplier: number,
            period: number,
        ): [number, number][];
        mcginleyDynamicMacdLine(
            prices: number[],
            shortPeriod: number,
            previousShortMcginley: number,
            longPeriod: number,
            previousLongMcginley: number,
        ): [number, number, number][];
        moneyFlowIndex(
            prices: number[],
            volume: number[],
            period: number,
        ): number[];
        onBalanceVolume(
            prices: number[],
            volume: number[],
            previousOnBalanceVolume: number,
        ): number[];
        percentagePriceOscillator(
            prices: number[],
            shortPeriod: number,
            longPeriod: number,
            constantModelType: ConstantModelType,
        ): number[];
        rateOfChange(prices: number[]): number[];
        relativeStrengthIndex(
            prices: number[],
            constantModelType: ConstantModelType,
            period: number,
        ): number[];
        signalLine(
            macds: number[],
            constantModelType: ConstantModelType,
            period: number,
        ): number[];
        slowestStochastic(
            slowStochastics: number[],
            constantModelType: ConstantModelType,
            period: number,
        ): number[];
        slowStochastic(
            stochastics: number[],
            constantModelType: ConstantModelType,
            period: number,
        ): number[];
        stochasticOscillator(prices: number[], period: number): number[];
        williamsPercentR(
            high: number[],
            low: number[],
            close: number[],
            period: number,
        ): number[];
    }
    Index

    Methods

    • Rolling Chaikin Oscillator (CO).

      Builds AD for each window from a running previous AD seed. Returns [oscillatorValue, lastAD] per window.

      Parameters

      • highs: number[]

        High prices.

      • lows: number[]

        Low prices.

      • close: number[]

        Close prices.

      • volume: number[]

        Volumes.

      • shortPeriod: number

        Short AD period.

      • longPeriod: number

        Long AD period.

      • previousAccumulationDistribution: number

        Previous AD seed (0.0 if none).

      • shortPeriodModel: ConstantModelType

        Model for short AD average.

      • longPeriodModel: ConstantModelType

        Model for long AD average.

      Returns [number, number][]

      Array of [oscValue, lastAD] per window.

      If lengths differ, length < longPeriod, or shortPeriod >= longPeriod.

    • Rolling McGinley Dynamic CCI.

      Seeds the first window with previousMcginleyDynamic, then chains each window's McGinley into the next.

      Parameters

      • prices: number[]

        Prices.

      • previousMcginleyDynamic: number

        Previous McGinley (0.0 if none).

      • deviationModel: DeviationModel

        Deviation model.

      • constantMultiplier: number

        Scale factor (normally 0.015).

      • period: number

        Window length.

      Returns [number, number][]

      Array of [cci, mcginley] per window.

    • Rolling McGinley Dynamic MACD.

      Chains short/long McGinley values across windows:

      • Returns [macd, shortMcginley, longMcginley] per window.

      Parameters

      • prices: number[]

        Prices.

      • shortPeriod: number

        Short window length.

      • previousShortMcginley: number

        Previous short McGinley (0.0 if none).

      • longPeriod: number

        Long window length.

      • previousLongMcginley: number

        Previous long McGinley (0.0 if none).

      Returns [number, number, number][]

      Array of [macd, shortMcginley, longMcginley].

      If prices is empty, longPeriod > prices.length, or shortPeriod >= longPeriod.

    • Rolling On-Balance Volume (OBV).

      Parameters

      • prices: number[]

        Prices (length >= 1).

      • volume: number[]

        Volumes (same length).

      • previousOnBalanceVolume: number

        Previous OBV seed (0 if none).

      Returns number[]

      OBV values per step (length = prices.length - 1).

      If prices is empty or lengths mismatch.