Streaming API

The ferro_ta.streaming module provides stateful, bar-by-bar indicator computation for live/real-time trading. Each class maintains an internal buffer and returns NaN during the warmup period.

What’s new: the streaming universe

Besides the 14 hand-written classes (StreamingSMA, StreamingRSI, …) there are now 215 more streams, one for nearly every batch indicator, generated from a single declarative registry. They share the same live-bar, snapshot and non-finite semantics described below and exist in Python, WASM, the C ABI and Go. The full list is the Stream catalog.

Parity contract. On finite input a stream equals the batch function at every bar: identical NaN mask, values within 1e-9 relative, integer outputs exact.

Naming per surface:

from ferro_ta.data.streaming import StreamingKeltnerChannels

kc = StreamingKeltnerChannels(timeperiod=20, atr_period=10, multiplier=2.0)
upper, middle, lower = kc.update(high, low, close)
const kc = new WasmStreamingKeltnerChannels(20, 10, 2.0);
const [upper, middle, lower] = kc.update(high, low, close);  // peek(...) previews
FtStreamWillr *w = NULL;
ft_stream_willr_new(14, &w);              /* _new _update _peek _reset _save _load _free */
double out; ft_stream_willr_update(w, high, low, close, &out);
ft_stream_willr_free(w);
willr, err := ferrota.NewStreamWillr(14)  // also Update, Peek, Save, LoadStreamWillr, Close
defer willr.Close()
value, err := willr.Update(high, low, close)

Python classes are Streaming<UpperCamel> (StreamingWillr), WASM classes WasmStreaming<UpperCamel>, C functions ft_stream_<name>_* and Go wrappers NewStream<UpperCamel> / Stream<UpperCamel>.

Notes and exclusions

  • Streams whose warm-up value is 0 (candlestick patterns, ht_trendmode) are is_ready from the first bar, because the batch function emits 0 there.

  • regime_adx / regime_combined batch functions emit -1 on NaN input; streams skip NaN ticks, so they never emit -1.

  • The ichimoku stream omits chikou (it needs future bars).

  • No stream, by design: williams_fractals (centred window needs future bars), back_adjusted_continuous / ratio_adjusted_continuous (rewrite past bars), rank_values (whole-series rank) and forward_fill_nan (its input is NaN, which streams skip).

  • The 9 original streams are unchanged, so batch-only extras (bbands / stoch matype, rolling vwap(timeperiod>0)) have no stream.

  • Limits: mavp periods are capped at 4096; period and count parameters at 2^24 (same as the C ABI).

  • Performance: see benchmarks/bench_streaming_universe.py.

Keyword names

Stream parameters take the C ABI names (ft_<name>), which match the Python batch function everywhere except these three:

Stream

Stream keyword(s)

Python batch keyword(s)

StreamingAc

timeperiod

smoothperiod

StreamingCoppock

roc1, roc2

roc1_period, roc2_period

StreamingEmv

scale

divisor

So StreamingCoppock(roc1=14, roc2=11, wma_period=10), not roc1_period=14. Positional arguments are in the same order on both.

Live bars: committing vs. previewing

Exchanges deliver many ticks per bar. update(..., closed=True) (the default) commits a finished bar. update(..., closed=False) previews the still-forming bar from the last committed state without changing it, so each tick of the forming bar replaces the previous preview:

from ferro_ta.data.streaming import StreamingRSI

rsi = StreamingRSI(14)
for bar in history:                      # closed bars
    rsi.update(bar.close)

for tick in live_ticks:                  # forming bar
    value = rsi.update(tick.price, closed=tick.bar_closed)

Committed output is bit-identical whether or not previews were interleaved. closed is keyword-only. Previews are allocation-free for every indicator and cost about the same as a commit.

Building bars from ticks

BarBuilder turns raw ticks into OHLCV bars on a session-aligned grid (session_open + k * interval; the last bar is cut at session_close). Defaults are NSE hours, 09:15–15:30 IST, so 5-minute bars start at 09:15, 09:20, …

from ferro_ta.data.streaming import BarBuilder, StreamingRSI

bars, rsi = BarBuilder(300), StreamingRSI(14)
for tick in feed:                                   # ts in UTC epoch ms
    status, closed = bars.on_tick(tick.ts_ms, tick.price, tick.qty)
    if closed is not None:
        rsi.update(closed.close)                    # commit on close
    if bars.forming is not None:
        live_rsi = rsi.update(bars.forming.close, closed=False)
# from a timer, so bars close on time even when the market is quiet:
if (closed := bars.on_time(now_ms)) is not None:
    rsi.update(closed.close)
  • A tick exactly on a boundary opens the next bar.

  • on_tick returns a status: "accepted", "late" (older than the last accepted tick or inside a closed bar), "duplicate" (same timestamp, price and qty as the last tick), "out_of_session" or "invalid". Only accepted ticks change state.

  • Gaps produce no bars, so no holiday calendar is needed.

  • Other sessions: BarBuilder(3600, session_open="09:30", session_close="16:00", utc_offset_minutes=-240) for New York in summer.

  • utc_offset_minutes is a fixed offset; there is no time-zone or DST handling. For a market that observes daylight saving time, create a new builder with the new offset when the clocks change (between sessions, so no forming bar is lost). With the wrong offset, the first or last hour of the session is rejected as "out_of_session". NSE (IST) has no DST.

Conditions

Event helpers emit 1 / -1 / 0 and support previews like any indicator:

  • StreamingCross(dead_band) — cross of a over b with hysteresis: inside ±dead_band the side is unchanged, so noise around a level fires at most once per real crossing (dead_band=0 matches batch check_cross).

  • StreamingStreak(n) — 1 while the last n (or more) inputs were all non-zero.

  • StreamingCooldown(bars) — passes a signal, then mutes the next bars bars.

cross, cooldown = StreamingCross(dead_band=0.5), StreamingCooldown(10)
if cooldown.update(cross.update(rsi_value, 30.0)) == 1:
    alert("RSI crossed above 30")

Option IV and greeks

StreamingOptionGreeks(strike, option_type="call", model="bsm", rate=0.0, carry=0.0) takes (option_price, underlying, time_to_expiry_years) per tick and returns (iv, delta, gamma, vega, theta, rho). The IV solver starts from the previous tick’s IV; a price no volatility can reproduce returns all-NaN and keeps that starting point.

Introspection and snapshots

  • count — number of committed bars (previews and NaN/±inf ticks excluded).

  • is_ready — True once the last committed bar produced a non-NaN value.

  • copy.copy(ind) / copy.deepcopy(ind) — independent snapshot of the full state, e.g. to evaluate a what-if path without disturbing the live one.

  • ind.to_json() / Class.from_json(s) and pickle — save state and restore it in another process; the restored object continues bit-identically. Snapshots are {"format": 1, "kind": "rsi", "state": {...}}. Loading a different kind or an unsupported format raises ValueError. The format number is bumped whenever a saved layout changes, so old snapshots fail loudly instead of loading wrong.

Non-finite ticks

A tick with any NaN or ±inf input (bad print, feed gap) returns NaN and is otherwise skipped: indicator state, count and the last value are untouched, so the next clean bar continues as if the bad tick never arrived. Previously a single NaN poisoned running sums (SMA, Bollinger) and recursive averages (EMA, RSI, ATR) permanently; infinity did the same via inf - inf.

Other bindings

  • WASM: update(...) commits, peek(...) previews; count and isReady getters. WasmBarBuilder (onTick returns {status, closed}). saveState / loadState need the opt-in snapshot cargo feature, which keeps the default bundle size unchanged.

  • C ABI / Go: ft_stream_*_peek / Stream*.Peek mirror update without committing; ft_stream_*_save / _load and Save / LoadStream* snapshot state; ft_bar_builder_* / BarBuilder.

Stream catalog

Kind: windowed streams replay the batch kernel over the last lookback bars; native streams update incremental state; legacy are the original hand-written classes. Regenerate with python3 scripts/build_streaming_python.py --docs.

cycle (6)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

ht_dcperiod

StreamingHtDcperiod

close

value

native

ht_dcphase

StreamingHtDcphase

close

value

native

ht_phasor

StreamingHtPhasor

close

inphase, quadrature

native

ht_sine

StreamingHtSine

close

sine, leadsine

native

ht_trendline

StreamingHtTrendline

close

value

native

ht_trendmode

StreamingHtTrendmode

close

value

native

extended (57)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

ac

StreamingAc

high, low

fastperiod=5, slowperiod=34, timeperiod=5

value

windowed

alligator

StreamingAlligator

high, low

jaw_period=13, jaw_shift=8, teeth_period=8, teeth_shift=5, lips_period=5, lips_shift=3

jaw, teeth, lips

native

alma

StreamingAlma

close

timeperiod=21, offset=0.85, sigma=6.0

value

windowed

ao

StreamingAo

high, low

fastperiod=5, slowperiod=34

value

windowed

bbpercent

StreamingBbpercent

close

timeperiod=5, nbdevup=2.0, nbdevdn=2.0

value

windowed

bbwidth

StreamingBbwidth

close

timeperiod=5, nbdevup=2.0, nbdevdn=2.0

value

windowed

chaikin_vol

StreamingChaikinVol

high, low

timeperiod=10, rocperiod=10

value

native

chande_kroll_stop

StreamingChandeKrollStop

high, low, close

timeperiod=10, multiplier=1.0, stop_period=9

long_stop, short_stop

native

chandelier_exit

StreamingChandelierExit

high, low, close

timeperiod=22, multiplier=3.0

long_exit, short_exit

native

cho

StreamingCho

high, low, close, volume

fastperiod=3, slowperiod=10

value

native

choppiness_index

StreamingChoppinessIndex

high, low, close

timeperiod=14

value

windowed

cmf

StreamingCmf

high, low, close, volume

timeperiod=20

value

native

coppock

StreamingCoppock

close

wma_period=10, roc1=14, roc2=11

value

windowed

crsi

StreamingCrsi

close

timeperiod=3, streakperiod=2, rankperiod=100

value

native

dmi

StreamingDmi

high, low, close

timeperiod=14

plus_di, minus_di, adx

native

donchian

StreamingDonchian

high, low

timeperiod=20

upper, middle, lower

windowed

dpo

StreamingDpo

close

timeperiod=20

value

windowed

elder_ray

StreamingElderRay

high, low, close

timeperiod=13

bull, bear

native

emv

StreamingEmv

high, low, volume

timeperiod=14, scale=10000.0

value

windowed

fisher

StreamingFisher

high, low

timeperiod=9

fisher, signal

native

force_index

StreamingForceIndex

close, volume

timeperiod=13

value

native

frama

StreamingFrama

close

timeperiod=16

value

native

gator

StreamingGator

high, low

jaw_period=13, jaw_shift=8, teeth_period=8, teeth_shift=5, lips_period=5, lips_shift=3

upper, lower

native

historical_volatility

StreamingHistoricalVolatility

close

timeperiod=20, annual=252.0

value

windowed

hull_ma

StreamingHullMa

close

timeperiod=16

value

windowed

ichimoku

StreamingIchimoku

high, low, close

tenkan_period=9, kijun_period=26, senkou_b_period=52, displacement=26

tenkan, kijun, senkou_a, senkou_b

native

keltner_channels

StreamingKeltnerChannels

high, low, close

timeperiod=20, atr_period=10, multiplier=2.0

upper, middle, lower

native

kst

StreamingKst

close

roc1=10, roc2=15, roc3=20, roc4=30, sma1=10, sma2=10, sma3=10, sma4=15, signalperiod=9

kst, signal

windowed

kvo

StreamingKvo

high, low, close, volume

fastperiod=34, slowperiod=55, signalperiod=13

kvo, signal

native

ma_envelopes

StreamingMaEnvelopes

close

timeperiod=20, percent=2.5, matype=0

upper, middle, lower

native

mass

StreamingMass

high, low

timeperiod=9, sumperiod=25

value

native

mcginley

StreamingMcginley

close

timeperiod=14

value

native

median

StreamingMedian

real

timeperiod=3

value

windowed

median_bands

StreamingMedianBands

high, low, close

timeperiod=3, atr_period=14, multiplier=2.0

median, upper, lower, median_ema

native

mode

StreamingMode

real

timeperiod=20, bins=10

value

windowed

nvi

StreamingNvi

close, volume

value

native

nvi_with_ema

StreamingNviWithEma

close, volume

timeperiod=255

nvi, signal

native

obv_smoothed

StreamingObvSmoothed

close, volume

timeperiod=20, matype=1

value

native

po

StreamingPo

close

fastperiod=10, slowperiod=21

value

windowed

pvi

StreamingPvi

close, volume

value

native

pvi_with_signal

StreamingPviWithSignal

close, volume

timeperiod=255, matype=1

pvi, signal

native

pvt

StreamingPvt

close, volume

value

native

rvi

StreamingRvi

open, high, low, close

timeperiod=10

rvi, signal

native

rvol

StreamingRvol

volume

timeperiod=20

value

native

rwi

StreamingRwi

high, low, close

timeperiod=14

rwi_high, rwi_low

windowed

starc

StreamingStarc

high, low, close

timeperiod=15, atr_period=15, multiplier=2.0

upper, middle, lower

native

stc

StreamingStc

close

fastperiod=23, slowperiod=50, cycleperiod=10, d1=3, d2=3

value

native

supertrend

StreamingSupertrend

high, low, close

period=7, multiplier=…

line, direction

legacy

tsi

StreamingTsi

close

longperiod=25, shortperiod=13, signalperiod=13

tsi, signal

native

ulcer_index

StreamingUlcerIndex

close

timeperiod=14

value

native

vidya

StreamingVidya

close

timeperiod=14, cmo_period=9

value

native

volosc

StreamingVolosc

volume

fastperiod=5, slowperiod=10

value

native

vortex

StreamingVortex

high, low, close

timeperiod=14

plus_vi, minus_vi

windowed

vroc

StreamingVroc

volume

timeperiod=25

value

windowed

vwap

StreamingVWAP

high, low, close, volume

value

legacy

vwma

StreamingVwma

close, volume

timeperiod=20

value

windowed

zlema

StreamingZlema

close

timeperiod=14

value

native

futures (1)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

weighted_continuous

StreamingWeightedContinuous

front, next, next_weights

value

windowed

math (9)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

add

StreamingAdd

a, b

value

windowed

div

StreamingDiv

a, b

value

windowed

max

StreamingMax

real

timeperiod=30

value

windowed

min

StreamingMin

real

timeperiod=30

value

windowed

mult

StreamingMult

a, b

value

windowed

sliding_max

StreamingSlidingMax

real

timeperiod=30

value

windowed

sliding_min

StreamingSlidingMin

real

timeperiod=30

value

windowed

sub

StreamingSub

a, b

value

windowed

sum

StreamingSum

real

timeperiod=30

value

windowed

math_ops (5)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

rolling_max

StreamingRollingMax

real

timeperiod=30

value

windowed

rolling_maxindex

StreamingRollingMaxindex

real

timeperiod=30

value

native

rolling_min

StreamingRollingMin

real

timeperiod=30

value

windowed

rolling_minindex

StreamingRollingMinindex

real

timeperiod=30

value

native

rolling_sum

StreamingRollingSum

real

timeperiod=30

value

windowed

momentum (26)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

adx

StreamingAdx

high, low, close

timeperiod=14

value

native

adxr

StreamingAdxr

high, low, close

timeperiod=14

value

native

apo

StreamingApo

close

fastperiod=12, slowperiod=26, matype=1

value

native

aroon

StreamingAroon

high, low

timeperiod=14

aroondown, aroonup

windowed

aroonosc

StreamingAroonosc

high, low

timeperiod=14

value

windowed

bop

StreamingBop

open, high, low, close

value

windowed

cci

StreamingCci

high, low, close

timeperiod=14

value

windowed

cmo

StreamingCmo

close

timeperiod=14

value

native

dx

StreamingDx

high, low, close

timeperiod=14

value

native

minus_di

StreamingMinusDi

high, low, close

timeperiod=14

value

native

minus_dm

StreamingMinusDm

high, low

timeperiod=14

value

native

mom

StreamingMom

close

timeperiod=10

value

windowed

plus_di

StreamingPlusDi

high, low, close

timeperiod=14

value

native

plus_dm

StreamingPlusDm

high, low

timeperiod=14

value

native

ppo

StreamingPpo

close

fastperiod=12, slowperiod=26, signalperiod=9, matype=1

ppo, signal, hist

native

roc

StreamingRoc

close

timeperiod=10

value

windowed

rocp

StreamingRocp

close

timeperiod=10

value

windowed

rocr

StreamingRocr

close

timeperiod=10

value

windowed

rocr100

StreamingRocr100

close

timeperiod=10

value

windowed

rsi

StreamingRSI

value

period=14

value

legacy

stoch

StreamingStoch

high, low, close

fastk_period=…, slowk_period=…, slowd_period=…

slowk, slowd

legacy

stochf

StreamingStochf

high, low, close

fastk_period=5, fastd_period=3, fastd_matype=0

fastk, fastd

native

stochrsi

StreamingStochrsi

close

timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0

fastk, fastd

native

trix

StreamingTrix

close

timeperiod=30

value

native

ultosc

StreamingUltosc

high, low, close

timeperiod1=7, timeperiod2=14, timeperiod3=28

value

windowed

willr

StreamingWillr

high, low, close

timeperiod=14

value

windowed

options (8)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

close_to_close_vol

StreamingCloseToCloseVol

close

window=20, trading_days=252.0

value

windowed

garman_klass_vol

StreamingGarmanKlassVol

open, high, low, close

window=20, trading_days=252.0

value

windowed

iv_percentile

StreamingIvPercentile

iv_series

window=252

value

windowed

iv_rank

StreamingIvRank

iv_series

window=252

value

windowed

iv_zscore

StreamingIvZscore

iv_series

window=252

value

windowed

parkinson_vol

StreamingParkinsonVol

high, low

window=20, trading_days=252.0

value

windowed

rogers_satchell_vol

StreamingRogersSatchellVol

open, high, low, close

window=20, trading_days=252.0

value

windowed

yang_zhang_vol

StreamingYangZhangVol

open, high, low, close

window=20, trading_days=252.0

value

windowed

overlap (19)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

bbands

StreamingBBands

value

period=20, nbdevup=…, nbdevdn=…

upper, middle, lower

legacy

dema

StreamingDema

close

timeperiod=30

value

native

ema

StreamingEMA

value

period

value

legacy

kama

StreamingKama

close

timeperiod=30

value

native

ma

StreamingMa

close

timeperiod=30, matype=0

value

native

macd

StreamingMACD

value

fastperiod=…, slowperiod=…, signalperiod=…

macd, signal, hist

legacy

macdext

StreamingMacdext

close

fastperiod=12, fastmatype=1, slowperiod=26, slowmatype=1, signalperiod=9, signalmatype=1

macd, signal, hist

native

macdfix

StreamingMacdfix

close

signalperiod=9

macd, signal, hist

native

mama

StreamingMama

close

fastlimit=0.5, slowlimit=0.05

mama, fama

native

mavp

StreamingMavp

close, periods

minperiod=2, maxperiod=30, matype=0

value

native

midpoint

StreamingMidpoint

close

timeperiod=14

value

windowed

midprice

StreamingMidprice

high, low

timeperiod=14

value

windowed

sar

StreamingSar

high, low

acceleration=0.02, maximum=0.2

value

native

sarext

StreamingSarext

high, low

startvalue=0.0, offsetonreverse=0.0, accelerationinitlong=0.02, accelerationlong=0.02, accelerationmaxlong=0.2, accelerationinitshort=0.02, accelerationshort=0.02, accelerationmaxshort=0.2

value

native

sma

StreamingSMA

value

period

value

legacy

t3

StreamingT3

close

timeperiod=5, vfactor=0.7

value

native

tema

StreamingTema

close

timeperiod=30

value

native

trima

StreamingTrima

close

timeperiod=30

value

windowed

wma

StreamingWma

close

timeperiod=30

value

windowed

pattern (61)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

cdl2crows

StreamingCdl2crows

open, high, low, close

value

windowed

cdl3blackcrows

StreamingCdl3blackcrows

open, high, low, close

value

windowed

cdl3inside

StreamingCdl3inside

open, high, low, close

value

windowed

cdl3linestrike

StreamingCdl3linestrike

open, high, low, close

value

windowed

cdl3outside

StreamingCdl3outside

open, high, low, close

value

windowed

cdl3starsinsouth

StreamingCdl3starsinsouth

open, high, low, close

value

windowed

cdl3whitesoldiers

StreamingCdl3whitesoldiers

open, high, low, close

value

windowed

cdlabandonedbaby

StreamingCdlabandonedbaby

open, high, low, close

value

windowed

cdladvanceblock

StreamingCdladvanceblock

open, high, low, close

value

windowed

cdlbelthold

StreamingCdlbelthold

open, high, low, close

value

windowed

cdlbreakaway

StreamingCdlbreakaway

open, high, low, close

value

windowed

cdlclosingmarubozu

StreamingCdlclosingmarubozu

open, high, low, close

value

windowed

cdlconcealbabyswall

StreamingCdlconcealbabyswall

open, high, low, close

value

windowed

cdlcounterattack

StreamingCdlcounterattack

open, high, low, close

value

windowed

cdldarkcloudcover

StreamingCdldarkcloudcover

open, high, low, close

value

windowed

cdldoji

StreamingCdldoji

open, high, low, close

value

windowed

cdldojistar

StreamingCdldojistar

open, high, low, close

value

windowed

cdldragonflydoji

StreamingCdldragonflydoji

open, high, low, close

value

windowed

cdlengulfing

StreamingCdlengulfing

open, high, low, close

value

windowed

cdleveningdojistar

StreamingCdleveningdojistar

open, high, low, close

value

windowed

cdleveningstar

StreamingCdleveningstar

open, high, low, close

value

windowed

cdlgapsidesidewhite

StreamingCdlgapsidesidewhite

open, high, low, close

value

windowed

cdlgravestonedoji

StreamingCdlgravestonedoji

open, high, low, close

value

windowed

cdlhammer

StreamingCdlhammer

open, high, low, close

value

windowed

cdlhangingman

StreamingCdlhangingman

open, high, low, close

value

windowed

cdlharami

StreamingCdlharami

open, high, low, close

value

windowed

cdlharamicross

StreamingCdlharamicross

open, high, low, close

value

windowed

cdlhighwave

StreamingCdlhighwave

open, high, low, close

value

windowed

cdlhikkake

StreamingCdlhikkake

open, high, low, close

value

windowed

cdlhikkakemod

StreamingCdlhikkakemod

open, high, low, close

value

windowed

cdlhomingpigeon

StreamingCdlhomingpigeon

open, high, low, close

value

windowed

cdlidentical3crows

StreamingCdlidentical3crows

open, high, low, close

value

windowed

cdlinneck

StreamingCdlinneck

open, high, low, close

value

windowed

cdlinvertedhammer

StreamingCdlinvertedhammer

open, high, low, close

value

windowed

cdlkicking

StreamingCdlkicking

open, high, low, close

value

windowed

cdlkickingbylength

StreamingCdlkickingbylength

open, high, low, close

value

windowed

cdlladderbottom

StreamingCdlladderbottom

open, high, low, close

value

windowed

cdllongleggeddoji

StreamingCdllongleggeddoji

open, high, low, close

value

windowed

cdllongline

StreamingCdllongline

open, high, low, close

value

windowed

cdlmarubozu

StreamingCdlmarubozu

open, high, low, close

value

windowed

cdlmatchinglow

StreamingCdlmatchinglow

open, high, low, close

value

windowed

cdlmathold

StreamingCdlmathold

open, high, low, close

value

windowed

cdlmorningdojistar

StreamingCdlmorningdojistar

open, high, low, close

value

windowed

cdlmorningstar

StreamingCdlmorningstar

open, high, low, close

value

windowed

cdlonneck

StreamingCdlonneck

open, high, low, close

value

windowed

cdlpiercing

StreamingCdlpiercing

open, high, low, close

value

windowed

cdlrickshawman

StreamingCdlrickshawman

open, high, low, close

value

windowed

cdlrisefall3methods

StreamingCdlrisefall3methods

open, high, low, close

value

windowed

cdlseparatinglines

StreamingCdlseparatinglines

open, high, low, close

value

windowed

cdlshootingstar

StreamingCdlshootingstar

open, high, low, close

value

windowed

cdlshortline

StreamingCdlshortline

open, high, low, close

value

windowed

cdlspinningtop

StreamingCdlspinningtop

open, high, low, close

value

windowed

cdlstalledpattern

StreamingCdlstalledpattern

open, high, low, close

value

windowed

cdlsticksandwich

StreamingCdlsticksandwich

open, high, low, close

value

windowed

cdltakuri

StreamingCdltakuri

open, high, low, close

value

windowed

cdltasukigap

StreamingCdltasukigap

open, high, low, close

value

windowed

cdlthrusting

StreamingCdlthrusting

open, high, low, close

value

windowed

cdltristar

StreamingCdltristar

open, high, low, close

value

windowed

cdlunique3river

StreamingCdlunique3river

open, high, low, close

value

windowed

cdlupsidegap2crows

StreamingCdlupsidegap2crows

open, high, low, close

value

windowed

cdlxsidegap3methods

StreamingCdlxsidegap3methods

open, high, low, close

value

windowed

portfolio (5)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

ratio

StreamingRatio

a, b

value

windowed

relative_strength

StreamingRelativeStrength

asset_returns, benchmark_returns

value

native

rolling_beta

StreamingRollingBeta

asset, benchmark

window=20

value

windowed

spread

StreamingSpread

a, b

hedge=1.0

value

windowed

zscore_series

StreamingZscoreSeries

x

window=20

value

windowed

price_transform (4)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

avgprice

StreamingAvgprice

open, high, low, close

value

windowed

medprice

StreamingMedprice

high, low

value

windowed

typprice

StreamingTypprice

high, low, close

value

windowed

wclprice

StreamingWclprice

high, low, close

value

windowed

regime (4)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

detect_breaks_cusum

StreamingDetectBreaksCusum

series

window=20, threshold=3.0, slack=0.5

value

native

regime_adx

StreamingRegimeAdx

adx

threshold=25.0

value

windowed

regime_combined

StreamingRegimeCombined

adx, atr, close

adx_threshold=25.0, atr_pct_threshold=0.005

value

windowed

rolling_variance_break

StreamingRollingVarianceBreak

series

short_window=10, long_window=50, threshold=2.0

value

windowed

statistic (9)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

beta

StreamingBeta

real0, real1

timeperiod=5

value

windowed

correl

StreamingCorrel

real0, real1

timeperiod=30

value

windowed

linearreg

StreamingLinearreg

close

timeperiod=14

value

windowed

linearreg_angle

StreamingLinearregAngle

close

timeperiod=14

value

windowed

linearreg_intercept

StreamingLinearregIntercept

close

timeperiod=14

value

windowed

linearreg_slope

StreamingLinearregSlope

close

timeperiod=14

value

windowed

stddev

StreamingStddev

real

timeperiod=5, nbdev=1.0

value

windowed

tsf

StreamingTsf

close

timeperiod=14

value

windowed

var

StreamingVar

real

timeperiod=5, nbdev=1.0

value

windowed

streaming-only (5)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

backtest

StreamingBacktest

close, signal

commission_per_trade=…, slippage_bps=…

position, bar_return, equity, n_trades, total_commission, win_rate, avg_win, avg_loss, kelly_fraction

legacy

cooldown

StreamingCooldown

signal

bars

value

legacy

cross

StreamingCross

a, b

dead_band=…

value

legacy

option_greeks

StreamingOptionGreeks

option_price, underlying, time_to_expiry

strike, option_type=…, model=…, rate=…, carry=…

iv, delta, gamma, vega, theta, rho

legacy

streak

StreamingStreak

condition

n

value

legacy

utilities (3)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

check_cross

StreamingCheckCross

fast, slow

value

windowed

funding_cumulative_pnl

StreamingFundingCumulativePnl

position_size, funding_rate

value

native

rsi_threshold_signals

StreamingRsiThresholdSignals

close

timeperiod=14, oversold=30.0, overbought=70.0

value

native

volatility (3)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

atr

StreamingATR

high, low, close

period=14

value

legacy

natr

StreamingNatr

high, low, close

timeperiod=14

value

native

trange

StreamingTrange

high, low, close

value

windowed

volume (4)

Name

Python class

Inputs

Params (defaults)

Outputs

Kind

ad

StreamingAd

high, low, close, volume

value

native

adosc

StreamingAdosc

high, low, close, volume

fastperiod=3, slowperiod=10

value

native

mfi

StreamingMfi

high, low, close, volume

timeperiod=14

value

native

obv

StreamingObv

close, volume

value

native

API reference

Streaming / Incremental Indicators — bar-by-bar stateful classes.

All streaming classes are implemented in Rust (PyO3) for maximum performance. The Python module re-exports the Rust classes from the _ferro_ta extension. The extension must be built; there is no Python fallback.

Usage

>>> from ferro_ta.data.streaming import StreamingSMA, StreamingEMA, StreamingRSI
>>> import numpy as np
>>> sma = StreamingSMA(period=3)
>>> for close in [10.0, 11.0, 12.0, 13.0, 14.0]:
...     val = sma.update(close)
...     print(f"{close} → {val:.4f}" if not np.isnan(val) else f"{close} → NaN")
10.0 → NaN
11.0 → NaN
12.0 → 11.0000
13.0 → 12.0000
14.0 → 13.0000

Live bars

update(x) commits a closed bar; update(x, closed=False) previews the still-forming bar without changing state. count / is_ready report committed progress, copy.copy snapshots state, and NaN/±inf ticks are skipped (they return NaN without poisoning state).

Available classes

StreamingSMA — Simple Moving Average StreamingEMA — Exponential Moving Average StreamingRSI — Relative Strength Index (Wilder seeding) StreamingATR — Average True Range (Wilder seeding) StreamingBBands — Bollinger Bands (upper, middle, lower) StreamingMACD — MACD line, signal, histogram StreamingStoch — Slow Stochastic (slowk, slowd) StreamingVWAP — Volume Weighted Average Price (cumulative) StreamingSupertrend — ATR-based Supertrend StreamingCross — Dead-band cross of two series (1 / -1 / 0 events) StreamingStreak — “N bars in a row” condition StreamingCooldown — Mute repeat signals for N bars StreamingOptionGreeks — Live IV + greeks for one option contract BarBuilder — Session-aligned tick → OHLCV bar builder (yields Bar)

Plus one class per registry stream (StreamingSum, StreamingAdd, StreamingRollingMaxindex …): Streaming + the batch function name in UpperCamel, taking that function’s parameters (same names and defaults) and its inputs, one value each, in update. See __all__ for the full list.

Rust backend

All classes are PyO3 classes compiled into the _ferro_ta extension module. Import them directly from the extension for zero-overhead access:

from ferro_ta._ferro_ta import StreamingSMA
class ferro_ta.streaming.Bar(start_ms, end_ms, open, high, low, close, volume, ticks)

Bases: object

One OHLCV bar covering [start_ms, end_ms) (UTC epoch milliseconds).

close
end_ms
high
low
open
start_ms
ticks
volume
class ferro_ta.streaming.BarBuilder(interval_secs, *, session_open='09:15', session_close='15:30', utc_offset_minutes=330)

Bases: object

Session-aligned tick → bar builder.

Bars sit on a session-local grid (session_open + k * interval; the last bar is cut at session_close), so 5-minute NSE bars start at 09:15, 09:20, … Gaps without ticks produce no bars. Late, duplicate, out-of-session and invalid ticks are rejected with a status string.

utc_offset_minutes is fixed (no DST): for markets that observe daylight saving, create a new builder with the new offset when clocks change.

forming

The bar currently being built, if any.

static from_json(json)

Restore a snapshot made by to_json.

interval_secs
on_tick(ts_ms, price, qty=0.0)

Feed one tick. Returns (status, closed_bar_or_None) where status is "accepted", "late", "duplicate", "out_of_session" or "invalid".

on_time(now_ms)

Close the forming bar once now_ms reaches its end (no tick needed).

reset()
to_json()

Versioned JSON snapshot, including the forming bar (see from_json).

class ferro_ta.streaming.StreamingATR(period=Ellipsis)

Bases: object

Average True Range with TA-Lib–compatible Wilder seeding.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

period
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAc(fastperiod=5, slowperiod=34, timeperiod=5)

Bases: object

Streaming Accelerator Oscillator: AO - SMA(AO, timeperiod).

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAd

Bases: object

Streaming Chaikin accumulation / distribution line.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAdd

Bases: object

Streaming element-wise a + b.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAdosc(fastperiod=3, slowperiod=10)

Bases: object

Streaming Chaikin A/D oscillator: fast EMA - slow EMA of the A/D line, both seeded from its first value.

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAdx(timeperiod=14)

Bases: object

Streaming average directional index; first value at bar 2 * timeperiod - 1.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAdxr(timeperiod=14)

Bases: object

Streaming ADX rating: (ADX + ADX timeperiod - 1 bars ago) / 2.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAlligator(jaw_period=13, jaw_shift=8, teeth_period=8, teeth_shift=5, lips_period=5, lips_shift=3)

Bases: object

Streaming Bill Williams Alligator: (jaw, teeth, lips) SMMAs of the median price, each shifted forward by its shift.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

jaw_period
jaw_shift
lips_period
lips_shift
reset()

Reset state to initial condition.

teeth_period
teeth_shift
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAlma(timeperiod=21, offset=0.85, sigma=6.0)

Bases: object

Streaming Arnaud Legoux moving average: Gaussian-weighted mean of the last timeperiod closes.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

offset
reset()

Reset state to initial condition.

sigma
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAo(fastperiod=5, slowperiod=34)

Bases: object

Streaming Awesome Oscillator: SMA(median price, fast) - SMA(median price, slow).

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingApo(fastperiod=12, slowperiod=26, matype=1)

Bases: object

Streaming absolute price oscillator: fast MA - slow MA (both of type matype).

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAroon(timeperiod=14)

Bases: object

Streaming Aroon: (aroon_down, aroon_up) over a timeperiod + 1 bar window; ties go to the most recent bar.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAroonosc(timeperiod=14)

Bases: object

Streaming Aroon oscillator: aroon_up - aroon_down.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingAvgprice

Bases: object

Streaming average price: (open + high + low + close) / 4.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingBBands(period=Ellipsis, nbdevup=Ellipsis, nbdevdn=Ellipsis)

Bases: object

Bollinger Bands — returns (upper, middle, lower).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

period
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(value, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingBbpercent(timeperiod=5, nbdevup=2.0, nbdevdn=2.0)

Bases: object

Streaming Bollinger %B: (close - lower) / (upper - lower) of SMA bands (NaN on a zero-width band).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

nbdevdn
nbdevup
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingBbwidth(timeperiod=5, nbdevup=2.0, nbdevdn=2.0)

Bases: object

Streaming Bollinger bandwidth: (upper - lower) / middle of SMA bands (NaN on a zero middle).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

nbdevdn
nbdevup
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingBeta(timeperiod=5)

Bases: object

Streaming rolling beta of real1 returns on real0 returns over timeperiod returns.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real0, real1, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingBop

Bases: object

Streaming Balance of Power: (close - open) / (high - low).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCci(timeperiod=14)

Bases: object

Streaming Commodity Channel Index over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl2crows

Bases: object

Streaming Two Crows candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl3blackcrows

Bases: object

Streaming Three Black Crows candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl3inside

Bases: object

Streaming Three Inside Up/Down candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl3linestrike

Bases: object

Streaming Three-Line Strike candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl3outside

Bases: object

Streaming Three Outside Up/Down candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl3starsinsouth

Bases: object

Streaming Three Stars In The South candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdl3whitesoldiers

Bases: object

Streaming Three Advancing White Soldiers candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlabandonedbaby

Bases: object

Streaming Abandoned Baby candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdladvanceblock

Bases: object

Streaming Advance Block candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlbelthold

Bases: object

Streaming Belt-hold candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlbreakaway

Bases: object

Streaming Breakaway candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlclosingmarubozu

Bases: object

Streaming Closing Marubozu candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlconcealbabyswall

Bases: object

Streaming Concealing Baby Swallow candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlcounterattack

Bases: object

Streaming Counterattack candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdldarkcloudcover

Bases: object

Streaming Dark Cloud Cover candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdldoji

Bases: object

Streaming Doji candlestick pattern: 100 when the candle matches (pattern present, not a direction), else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdldojistar

Bases: object

Streaming Doji Star candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdldragonflydoji

Bases: object

Streaming Dragonfly Doji candlestick pattern: 100 when the candle matches (pattern present, not a direction), else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlengulfing

Bases: object

Streaming Engulfing candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdleveningdojistar

Bases: object

Streaming Evening Doji Star candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdleveningstar

Bases: object

Streaming Evening Star candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlgapsidesidewhite

Bases: object

Streaming Up/Down-gap side-by-side white lines candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlgravestonedoji

Bases: object

Streaming Gravestone Doji candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlhammer

Bases: object

Streaming Hammer candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlhangingman

Bases: object

Streaming Hanging Man candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlharami

Bases: object

Streaming Harami candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlharamicross

Bases: object

Streaming Harami Cross candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlhighwave

Bases: object

Streaming High-Wave Candle candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlhikkake

Bases: object

Streaming Hikkake Pattern candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlhikkakemod

Bases: object

Streaming Modified Hikkake Pattern candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlhomingpigeon

Bases: object

Streaming Homing Pigeon candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlidentical3crows

Bases: object

Streaming Identical Three Crows candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlinneck

Bases: object

Streaming In-Neck Pattern candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlinvertedhammer

Bases: object

Streaming Inverted Hammer candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlkicking

Bases: object

Streaming Kicking candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlkickingbylength

Bases: object

Streaming Kicking by length (direction follows the longer marubozu) candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlladderbottom

Bases: object

Streaming Ladder Bottom candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdllongleggeddoji

Bases: object

Streaming Long Legged Doji candlestick pattern: 100 when the candle matches (pattern present, not a direction), else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdllongline

Bases: object

Streaming Long Line Candle candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlmarubozu

Bases: object

Streaming Marubozu candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlmatchinglow

Bases: object

Streaming Matching Low candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlmathold

Bases: object

Streaming Mat Hold candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlmorningdojistar

Bases: object

Streaming Morning Doji Star candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlmorningstar

Bases: object

Streaming Morning Star candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlonneck

Bases: object

Streaming On-Neck Pattern candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlpiercing

Bases: object

Streaming Piercing Pattern candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlrickshawman

Bases: object

Streaming Rickshaw Man candlestick pattern: 100 when the candle matches (pattern present, not a direction), else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlrisefall3methods

Bases: object

Streaming Rising/Falling Three Methods candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlseparatinglines

Bases: object

Streaming Separating Lines candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlshootingstar

Bases: object

Streaming Shooting Star candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlshortline

Bases: object

Streaming Short Line Candle candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlspinningtop

Bases: object

Streaming Spinning Top candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlstalledpattern

Bases: object

Streaming Stalled Pattern candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlsticksandwich

Bases: object

Streaming Stick Sandwich candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdltakuri

Bases: object

Streaming Takuri (Dragonfly Doji with very long lower shadow) candlestick pattern: 100 when the candle matches (pattern present, not a direction), else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdltasukigap

Bases: object

Streaming Tasuki Gap candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlthrusting

Bases: object

Streaming Thrusting Pattern candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdltristar

Bases: object

Streaming Tristar Pattern candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlunique3river

Bases: object

Streaming Unique 3 River candlestick pattern: 100 (bullish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlupsidegap2crows

Bases: object

Streaming Upside Gap Two Crows candlestick pattern: -100 (bearish) when matched, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCdlxsidegap3methods

Bases: object

Streaming Upside/Downside Gap Three Methods candlestick pattern: 100 bullish, -100 bearish, else 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingChaikinVol(timeperiod=10, rocperiod=10)

Bases: object

Streaming Chaikin volatility: rocperiod-bar percent rate of change of an EMA of the high-low range.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

rocperiod
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingChandeKrollStop(timeperiod=10, multiplier=1.0, stop_period=9)

Bases: object

Streaming Chande Kroll stop: rolling stop_period extremes of the ATR-offset timeperiod highest high / lowest low.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

multiplier
reset()

Reset state to initial condition.

stop_period
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingChandelierExit(timeperiod=22, multiplier=3.0)

Bases: object

Streaming Chandelier exit: (highest high - multiplier * ATR, lowest low + multiplier * ATR) over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

multiplier
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCheckCross

Bases: object

Streaming cross event between fast and slow: 1 cross-over, -1 cross-under, 0 none.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(fast, slow, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCho(fastperiod=3, slowperiod=10)

Bases: object

Streaming Chaikin oscillator: fast EMA - slow EMA of the A/D line, both seeded from its first value (same as ADOSC).

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingChoppinessIndex(timeperiod=14)

Bases: object

Streaming Choppiness Index over timeperiod bars (first value at bar timeperiod).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCloseToCloseVol(window=20, trading_days=252.0)

Bases: object

Streaming annualised close-to-close realized volatility (first value after window returns).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

trading_days
update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingCmf(timeperiod=20)

Bases: object

Streaming Chaikin money flow: timeperiod-bar sum of CLV * volume over the volume sum. Mirrors the batch zero-exact running volume sums, so an all-zero-volume window is NaN exactly as in the batch function.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCmo(timeperiod=14)

Bases: object

Streaming Chande momentum oscillator (Wilder smoothed gains and losses).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCooldown(bars)

Bases: object

Passes the first non-zero signal’s sign, then mutes the next bars bars.

bars
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(signal, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCoppock(wma_period=10, roc1=14, roc2=11)

Bases: object

Streaming Coppock curve: WMA(ROC(roc1) + ROC(roc2), wma_period).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

roc1
roc2
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

wma_period
class ferro_ta.streaming.StreamingCorrel(timeperiod=30)

Bases: object

Streaming rolling Pearson correlation of two series over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real0, real1, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCross(dead_band=Ellipsis)

Bases: object

Cross of a over b with a dead band — emits 1 (up), -1 (down), 0.

Inside ±dead_band the side is unchanged, so noise around the level fires at most once per real crossing.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingCrsi(timeperiod=3, streakperiod=2, rankperiod=100)

Bases: object

Streaming Connors RSI: mean of RSI(close), RSI(up/down streak) and the percent rank of the 1-bar ROC.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

rankperiod
reset()

Reset state to initial condition.

streakperiod
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingDema(timeperiod=30)

Bases: object

Streaming double exponential moving average: 2*EMA - EMA(EMA).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingDetectBreaksCusum(window=20, threshold=3.0, slack=0.5)

Bases: object

Streaming CUSUM structural-break flag (1 at a break bar) against the previous window bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slack
threshold
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(series, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingDiv

Bases: object

Streaming element-wise a / b (NaN where b = 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingDmi(timeperiod=14)

Bases: object

Streaming directional movement index: (+DI, -DI, ADX) from one Wilder state.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingDonchian(timeperiod=20)

Bases: object

Streaming Donchian channels: (upper, middle, lower) = rolling highest high, midpoint, lowest low over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingDpo(timeperiod=20)

Bases: object

Streaming detrended price oscillator: close timeperiod / 2 + 1 bars ago minus SMA(close, timeperiod).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingDx(timeperiod=14)

Bases: object

Streaming directional movement index: 100 * abs(+DI - -DI) / (+DI + -DI); first value at bar timeperiod.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingEMA(period)

Bases: object

Exponential Moving Average with SMA seeding.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

period
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(value, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingElderRay(timeperiod=13)

Bases: object

Streaming Elder Ray: (bull, bear) = (high - EMA(close), low - EMA(close)).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingEmv(timeperiod=14, scale=10000.0)

Bases: object

Streaming ease of movement: SMA over timeperiod bars of midpoint move * range * scale / volume (raw when timeperiod is 1).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

scale
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingFisher(timeperiod=9)

Bases: object

Streaming Ehlers Fisher transform of the median price over timeperiod bars, plus the previous value as signal.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingForceIndex(timeperiod=13)

Bases: object

Streaming force index: EMA of (close - previous close) * volume (raw when timeperiod is 1).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingFrama(timeperiod=16)

Bases: object

Streaming Ehlers fractal adaptive moving average, seeded with the close at bar timeperiod - 1.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingFundingCumulativePnl

Bases: object

Streaming cumulative funding PnL: running sum of -position_size * funding_rate.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(position_size, funding_rate, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingGarmanKlassVol(window=20, trading_days=252.0)

Bases: object

Streaming annualised Garman-Klass OHLC realized volatility.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

trading_days
update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingGator(jaw_period=13, jaw_shift=8, teeth_period=8, teeth_shift=5, lips_period=5, lips_shift=3)

Bases: object

Streaming Gator oscillator: (abs(jaw - teeth), -abs(teeth - lips)) of the Alligator lines.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

jaw_period
jaw_shift
lips_period
lips_shift
reset()

Reset state to initial condition.

teeth_period
teeth_shift
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHistoricalVolatility(timeperiod=20, annual=252.0)

Bases: object

Streaming close-to-close historical volatility: population stddev of timeperiod log returns, annualised, in percent.

annual
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHtDcperiod

Bases: object

Streaming Hilbert-transform dominant cycle period in bars; first value at bar 63.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHtDcphase

Bases: object

Streaming Hilbert-transform dominant cycle phase in degrees; first value at bar 63.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHtPhasor

Bases: object

Streaming Hilbert-transform phasor components (inphase, quadrature); first value at bar 63.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHtSine

Bases: object

Streaming Hilbert-transform sine wave (sine, leadsine = sine 45 degrees ahead); first value at bar 63.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHtTrendline

Bases: object

Streaming Hilbert-transform instantaneous trendline: mean of the 4-bar smoothed price over the rounded dominant cycle period; first value at bar 63.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHtTrendmode

Bases: object

Streaming Hilbert-transform trend mode: 1 while the smoothed dominant cycle period is below 20 bars, else 0; 0 before bar 63.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingHullMa(timeperiod=16)

Bases: object

Streaming Hull moving average: WMA(2 * WMA(n/2) - WMA(n), sqrt(n)).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingIchimoku(tenkan_period=9, kijun_period=26, senkou_b_period=52, displacement=26)

Bases: object

Streaming Ichimoku cloud: (tenkan, kijun, senkou_a, senkou_b); the senkou spans are the values computed displacement bars ago. Chikou (close displacement bars ahead) needs future bars and is not streamed.

count

Number of committed (closed) bars.

displacement
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

kijun_period
reset()

Reset state to initial condition.

senkou_b_period
tenkan_period
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingIvPercentile(window=252)

Bases: object

Streaming IV percentile: share of window values at or below the latest IV.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(iv_series, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingIvRank(window=252)

Bases: object

Streaming IV rank: position of the latest IV between the window’s min and max.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(iv_series, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingIvZscore(window=252)

Bases: object

Streaming IV z-score of the latest IV against the window mean and deviation.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(iv_series, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingKama(timeperiod=30)

Bases: object

Streaming Kaufman adaptive moving average (TA-Lib); first value at bar timeperiod.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingKeltnerChannels(timeperiod=20, atr_period=10, multiplier=2.0)

Bases: object

Streaming Keltner channels: (upper, middle, lower) = EMA(close) +/- multiplier * ATR(atr_period); the middle EMA is emitted on its own once seeded.

atr_period
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

multiplier
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingKst(roc1=10, roc2=15, roc3=20, roc4=30, sma1=10, sma2=10, sma3=10, sma4=15, signalperiod=9)

Bases: object

Streaming Know Sure Thing: weighted sum of four SMA-smoothed ROCs, plus an SMA signal.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

roc1
roc2
roc3
roc4
signalperiod
sma1
sma2
sma3
sma4
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingKvo(fastperiod=34, slowperiod=55, signalperiod=13)

Bases: object

Streaming Klinger volume oscillator: EMA(volume force, fast) - EMA(volume force, slow), plus an EMA signal.

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

signalperiod
slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingLinearreg(timeperiod=14)

Bases: object

Streaming linear regression fitted value at the last bar of the window.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingLinearregAngle(timeperiod=14)

Bases: object

Streaming angle of the rolling regression line in degrees.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingLinearregIntercept(timeperiod=14)

Bases: object

Streaming intercept of the rolling linear regression line.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingLinearregSlope(timeperiod=14)

Bases: object

Streaming slope of the rolling linear regression line.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMACD(fastperiod=Ellipsis, slowperiod=Ellipsis, signalperiod=Ellipsis)

Bases: object

MACD — returns (macd_line, signal_line, histogram).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(value, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMa(timeperiod=30, matype=0)

Bases: object

Streaming moving average of type matype (0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7/8=T3).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMaEnvelopes(timeperiod=20, percent=2.5, matype=0)

Bases: object

Streaming moving-average envelopes: (upper, middle, lower) = MA * (1 +/- percent / 100), MA of type matype.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
percent
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMacdext(fastperiod=12, fastmatype=1, slowperiod=26, slowmatype=1, signalperiod=9, signalmatype=1)

Bases: object

Streaming MACD with a moving-average type per leg: (macd, signal, hist), NaN until the signal is valid.

count

Number of committed (closed) bars.

fastmatype
fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

signalmatype
signalperiod
slowmatype
slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMacdfix(signalperiod=9)

Bases: object

Streaming MACD with fixed 12/26 EMAs: (macd, signal, hist), NaN until the signal is valid.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

signalperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMama(fastlimit=0.5, slowlimit=0.05)

Bases: object

Streaming MESA adaptive moving average (mama, fama); first value at bar 32. Requires slowlimit <= fastlimit.

count

Number of committed (closed) bars.

fastlimit
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowlimit
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMass(timeperiod=9, sumperiod=25)

Bases: object

Streaming Mass index: sumperiod-bar sum of EMA(range) / EMA(EMA(range)); the sum restarts after a non-finite ratio.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

sumperiod
timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMavp(minperiod=2, maxperiod=30, matype=0)

Bases: object

Streaming moving average with a per-bar period: periods is rounded and clamped to [minperiod, maxperiod].

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
maxperiod
minperiod
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, periods, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMax(timeperiod=30)

Bases: object

Streaming rolling maximum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMcginley(timeperiod=14)

Bases: object

Streaming McGinley dynamic, seeded with the SMA of the first timeperiod closes.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMedian(timeperiod=3)

Bases: object

Streaming rolling median over timeperiod bars (even windows average the two central values).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMedianBands(timeperiod=3, atr_period=14, multiplier=2.0)

Bases: object

Streaming median bands: (median, upper, lower, median EMA) from the rolling median of (high + low) / 2, ATR envelopes and an EMA of the median.

atr_period
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

multiplier
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMedprice

Bases: object

Streaming median price: (high + low) / 2.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMfi(timeperiod=14)

Bases: object

Streaming money flow index over timeperiod bars of typical-price money flow. Mirrors the batch zero-exact running flow sums, so a window without money flow (e.g. all-zero volume) is 0 exactly as in the batch function.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMidpoint(timeperiod=14)

Bases: object

Streaming midpoint: (max(close) + min(close)) / 2 over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMidprice(timeperiod=14)

Bases: object

Streaming midprice: (highest high + lowest low) / 2 over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMin(timeperiod=30)

Bases: object

Streaming rolling minimum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMinusDi(timeperiod=14)

Bases: object

Streaming -DI = 100 * smoothed -DM / smoothed TR; first value at bar timeperiod.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMinusDm(timeperiod=14)

Bases: object

Streaming -DM, Wilder smoothed; first value at bar timeperiod - 1 (raw -DM when timeperiod is 1).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMode(timeperiod=20, bins=10)

Bases: object

Streaming rolling mode: centre of the most populous of bins equal-width bins over timeperiod bars.

bins
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMom(timeperiod=10)

Bases: object

Streaming momentum: close - close[timeperiod bars ago].

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingMult

Bases: object

Streaming element-wise a * b.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingNatr(timeperiod=14)

Bases: object

Streaming normalized ATR: Wilder ATR / close * 100 (NaN where close is 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingNvi

Bases: object

Streaming negative volume index from 1000: moves with the close only on bars whose volume falls.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingNviWithEma(timeperiod=255)

Bases: object

Streaming negative volume index and an EMA signal of it.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingObv

Bases: object

Streaming on-balance volume; the first bar is the first volume.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingObvSmoothed(timeperiod=20, matype=1)

Bases: object

Streaming on-balance volume smoothed by a moving average of type matype.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingOptionGreeks(strike, option_type=Ellipsis, model=Ellipsis, rate=Ellipsis, carry=Ellipsis)

Bases: object

Live implied volatility and greeks for one option contract.

update(option_price, underlying, time_to_expiry) returns (iv, delta, gamma, vega, theta, rho). The IV solver is seeded with the previous tick’s IV; a price no volatility can reproduce yields all-NaN and keeps the seed.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(option_price, underlying, time_to_expiry, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingParkinsonVol(window=20, trading_days=252.0)

Bases: object

Streaming annualised Parkinson high-low realized volatility.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

trading_days
update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingPlusDi(timeperiod=14)

Bases: object

Streaming +DI = 100 * smoothed +DM / smoothed TR; first value at bar timeperiod.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingPlusDm(timeperiod=14)

Bases: object

Streaming +DM, Wilder smoothed; first value at bar timeperiod - 1 (raw +DM when timeperiod is 1).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingPo(fastperiod=10, slowperiod=21)

Bases: object

Streaming price oscillator: SMA(close, fast) - SMA(close, slow).

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingPpo(fastperiod=12, slowperiod=26, signalperiod=9, matype=1)

Bases: object

Streaming percentage price oscillator: (ppo, signal, hist); the signal is an EMA of the PPO line.

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
reset()

Reset state to initial condition.

signalperiod
slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingPvi

Bases: object

Streaming positive volume index from 1000: moves with the close only on bars whose volume rises.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingPviWithSignal(timeperiod=255, matype=1)

Bases: object

Streaming positive volume index and a moving-average signal of type matype.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

matype
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingPvt

Bases: object

Streaming price volume trend: cumulative volume * (close - previous close) / previous close, from 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRSI(period=Ellipsis)

Bases: object

Relative Strength Index with TA-Lib–compatible Wilder seeding.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

period
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(value, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRatio

Bases: object

Streaming ratio a / b (NaN where b is 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRegimeAdx(threshold=25.0)

Bases: object

Streaming trend (1) / range (0) label from ADX against threshold (-1 where ADX is NaN).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

threshold
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(adx, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRegimeCombined(adx_threshold=25.0, atr_pct_threshold=0.005)

Bases: object

Streaming trend (1) / range (0) label: ADX above adx_threshold and ATR / close above atr_pct_threshold.

adx_threshold
atr_pct_threshold
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(adx, atr, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRelativeStrength

Bases: object

Streaming relative strength: cumulative product of (1 + asset return) over that of the benchmark.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(asset_returns, benchmark_returns, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRoc(timeperiod=10)

Bases: object

Streaming rate of change: (close - prev) / prev * 100 (NaN where prev is 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRocp(timeperiod=10)

Bases: object

Streaming rate of change percentage: (close - prev) / prev (NaN where prev is 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRocr(timeperiod=10)

Bases: object

Streaming rate of change ratio: close / prev (NaN where prev is 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRocr100(timeperiod=10)

Bases: object

Streaming rate of change ratio x 100: close / prev * 100 (NaN where prev is 0).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRogersSatchellVol(window=20, trading_days=252.0)

Bases: object

Streaming annualised Rogers-Satchell OHLC realized volatility.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

trading_days
update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingRollingBeta(window=20)

Bases: object

Streaming rolling beta of asset against benchmark over window bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(asset, benchmark, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingRollingMax(timeperiod=30)

Bases: object

Streaming rolling maximum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRollingMaxindex(timeperiod=30)

Bases: object

Streaming index of the rolling maximum: the absolute 0-based bar index since the first bar (most recent on ties), -1 during warm-up.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRollingMin(timeperiod=30)

Bases: object

Streaming rolling minimum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRollingMinindex(timeperiod=30)

Bases: object

Streaming index of the rolling minimum: the absolute 0-based bar index since the first bar (most recent on ties), -1 during warm-up.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRollingSum(timeperiod=30)

Bases: object

Streaming rolling sum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRollingVarianceBreak(short_window=10, long_window=50, threshold=2.0)

Bases: object

Streaming volatility-regime break flag: short / long window variance ratio above threshold (current bar excluded).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

long_window
reset()

Reset state to initial condition.

short_window
threshold
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(series, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRsiThresholdSignals(timeperiod=14, oversold=30.0, overbought=70.0)

Bases: object

Streaming RSI threshold signal: +1 at or below oversold, -1 at or above overbought, else 0 (NaN during warm-up).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

overbought
oversold
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRvi(timeperiod=10)

Bases: object

Streaming Relative Vigor Index and its 4-bar weighted signal (the batch running window sums are mirrored, so a flat window’s zero denominator matches the batch function).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRvol(timeperiod=20)

Bases: object

Streaming relative volume: volume / SMA(volume, timeperiod). Mirrors the batch zero-exact running volume sums, so an all-zero-volume window is NaN exactly as in the batch function.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingRwi(timeperiod=14)

Bases: object

Streaming Random Walk Index: (high, low) maxima over lookbacks 2..=`timeperiod` of the range move per ATR * sqrt(lookback).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSMA(period)

Bases: object

Simple Moving Average — O(1) per update via running sum.

Returns NaN during the first period - 1 bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

period
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(value, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSar(acceleration=0.02, maximum=0.2)

Bases: object

Streaming parabolic SAR; first value at bar 1, initial direction rising when high[1] >= high[0].

acceleration
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

maximum
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSarext(startvalue=0.0, offsetonreverse=0.0, accelerationinitlong=0.02, accelerationlong=0.02, accelerationmaxlong=0.2, accelerationinitshort=0.02, accelerationshort=0.02, accelerationmaxshort=0.2)

Bases: object

Streaming extended parabolic SAR: signed start value, offset on reverse, separate long / short acceleration; first value at bar 1.

accelerationinitlong
accelerationinitshort
accelerationlong
accelerationmaxlong
accelerationmaxshort
accelerationshort
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

offsetonreverse
reset()

Reset state to initial condition.

startvalue
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSlidingMax(timeperiod=30)

Bases: object

Streaming sliding maximum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSlidingMin(timeperiod=30)

Bases: object

Streaming sliding minimum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSpread(hedge=1.0)

Bases: object

Streaming spread a - hedge * b.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

hedge
is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStarc(timeperiod=15, atr_period=15, multiplier=2.0)

Bases: object

Streaming STARC bands: (upper, middle, lower) = SMA(close) +/- multiplier * ATR(atr_period); the middle SMA is emitted on its own once full.

atr_period
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

multiplier
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStc(fastperiod=23, slowperiod=50, cycleperiod=10, d1=3, d2=3)

Bases: object

Streaming Schaff Trend Cycle: stochastic of the EMA MACD, EMA-smoothed, stochastic again, EMA-smoothed, clamped to [0, 100].

count

Number of committed (closed) bars.

cycleperiod
d1
d2
fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStddev(timeperiod=5, nbdev=1.0)

Bases: object

Streaming rolling population standard deviation over timeperiod bars, scaled by nbdev.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

nbdev
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStoch(fastk_period=Ellipsis, slowk_period=Ellipsis, slowd_period=Ellipsis)

Bases: object

Slow Stochastic (SMA-smoothed) — returns (slowk, slowd).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStochf(fastk_period=5, fastd_period=3, fastd_matype=0)

Bases: object

Streaming fast stochastic: (fastk, fastd); both NaN until %D is valid.

count

Number of committed (closed) bars.

fastd_matype
fastd_period
fastk_period
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStochrsi(timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0)

Bases: object

Streaming stochastic RSI: (fastk, fastd); both NaN until %D is valid.

count

Number of committed (closed) bars.

fastd_matype
fastd_period
fastk_period
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingStreak(n)

Bases: object

“N bars in a row” — emits 1 while the run of non-zero inputs is >= n.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

n
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(condition, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSub

Bases: object

Streaming element-wise a - b.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(a, b, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSum(timeperiod=30)

Bases: object

Streaming rolling sum over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingSupertrend(period=Ellipsis, multiplier=Ellipsis)

Bases: object

ATR-based Supertrend — returns (supertrend_line, direction).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

period
reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingT3(timeperiod=5, vfactor=0.7)

Bases: object

Streaming Tillson T3: six cascaded EMAs combined with volume factor vfactor.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

vfactor
class ferro_ta.streaming.StreamingTema(timeperiod=30)

Bases: object

Streaming triple exponential moving average: 3*EMA - 3*EMA(EMA) + EMA(EMA(EMA)).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingTrange

Bases: object

Streaming true range (NaN on the first bar: no previous close).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingTrima(timeperiod=30)

Bases: object

Streaming triangular moving average over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingTrix(timeperiod=30)

Bases: object

Streaming TRIX: one-bar percent rate of change of a triple EMA.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingTsf(timeperiod=14)

Bases: object

Streaming time series forecast: the regression line extrapolated one bar ahead.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingTsi(longperiod=25, shortperiod=13, signalperiod=13)

Bases: object

Streaming True Strength Index: 100 * double-EMA(momentum) / double-EMA(abs(momentum)), plus an EMA signal.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

longperiod
reset()

Reset state to initial condition.

shortperiod
signalperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingTypprice

Bases: object

Streaming typical price: (high + low + close) / 3.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingUlcerIndex(timeperiod=14)

Bases: object

Streaming Ulcer Index: RMS over timeperiod bars of the percent drawdown from the rolling timeperiod-bar high (the batch running sum is mirrored, so a rounding-negative mean square is NaN as in the batch function).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingUltosc(timeperiod1=7, timeperiod2=14, timeperiod3=28)

Bases: object

Streaming Ultimate Oscillator: buying pressure over three periods weighted 4 / 2 / 1.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod1
timeperiod2
timeperiod3
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVWAP

Bases: object

Cumulative Volume Weighted Average Price. Call reset() at session open.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a non-NaN value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVar(timeperiod=5, nbdev=1.0)

Bases: object

Streaming rolling population variance over timeperiod bars, scaled by nbdev**2.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

nbdev
reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(real, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVidya(timeperiod=14, cmo_period=9)

Bases: object

Streaming Chande VIDYA: an EMA whose factor is scaled by abs(CMO(cmo_period)) / 100, seeded with the close on the first CMO bar.

cmo_period
count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVolosc(fastperiod=5, slowperiod=10)

Bases: object

Streaming volume oscillator: 100 * (SMA(volume, fast) - SMA(volume, slow)) / SMA(volume, slow). Mirrors the batch zero-exact running volume sums, so an all-zero-volume window is NaN exactly as in the batch function.

count

Number of committed (closed) bars.

fastperiod
static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

slowperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVortex(timeperiod=14)

Bases: object

Streaming Vortex indicator: (+VI, -VI) over timeperiod bars; a non-finite true range counts as 0.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVroc(timeperiod=25)

Bases: object

Streaming volume rate of change over timeperiod bars, in percent.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingVwma(timeperiod=20)

Bases: object

Streaming volume-weighted moving average over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, volume, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingWclprice

Bases: object

Streaming weighted close price: (high + low + 2 * close) / 4.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingWeightedContinuous

Bases: object

Streaming weighted contract stitching: front * (1 - w) + next * w.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(front, next, next_weights, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingWillr(timeperiod=14)

Bases: object

Streaming Williams %R: -100 * (highest high - close) / (highest high - lowest low) over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingWma(timeperiod=30)

Bases: object

Streaming linearly weighted moving average over timeperiod bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingYangZhangVol(window=20, trading_days=252.0)

Bases: object

Streaming annualised Yang-Zhang OHLC realized volatility (first value after window bars plus the prior close).

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

trading_days
update(open, high, low, close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window
class ferro_ta.streaming.StreamingZlema(timeperiod=14)

Bases: object

Streaming zero-lag EMA: EMA of close + (close - close (timeperiod - 1) / 2 bars ago), seeded on the first full finite window.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

timeperiod
to_json()

Versioned JSON snapshot of the full state (see from_json).

update(close, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

class ferro_ta.streaming.StreamingZscoreSeries(window=20)

Bases: object

Streaming rolling z-score of x over window bars.

count

Number of committed (closed) bars.

static from_json(json)

Restore a snapshot made by to_json of this same class.

is_ready

True once the last committed bar produced a value.

reset()

Reset state to initial condition.

to_json()

Versioned JSON snapshot of the full state (see from_json).

update(x, *, closed=True)

Feed one tick.

closed=True (default) commits the bar. closed=False previews the still-forming bar from committed state without changing it, so repeated ticks of one bar replace each other.

window