Documentation ¶
Index ¶
- Constants
- func CalculateKLinesEMA(allKLines []types.KLine, priceF KLineValueMapper, window int) float64
- func KLineClosePriceMapper(k types.KLine) float64
- func KLineHighPriceMapper(k types.KLine) float64
- func KLineLowPriceMapper(k types.KLine) float64
- func KLineOpenPriceMapper(k types.KLine) float64
- func KLinePriceVolumeMapper(k types.KLine) float64
- func KLineTypicalPriceMapper(k types.KLine) float64
- func KLineVolumeMapper(k types.KLine) float64
- func MapKLinePrice(kLines []types.KLine, f KLineValueMapper) (prices []float64)
- type AD
- type ALMA
- type ATR
- func (inc *ATR) Clone() *ATR
- func (inc *ATR) EmitUpdate(value float64)
- func (inc *ATR) Index(i int) float64
- func (inc *ATR) Last(i int) float64
- func (inc *ATR) Length() int
- func (inc *ATR) OnUpdate(cb func(value float64))
- func (inc *ATR) PushK(k types.KLine)
- func (inc *ATR) TestUpdate(high, low, cloze float64) *ATR
- func (inc *ATR) Update(high, low, cloze float64)
- type ATRP
- func (inc *ATRP) Bind(updater KLineWindowUpdater)
- func (inc *ATRP) CalculateAndUpdate(kLines []types.KLine)
- func (inc *ATRP) EmitUpdate(value float64)
- func (inc *ATRP) Index(i int) float64
- func (inc *ATRP) Last(i int) float64
- func (inc *ATRP) Length() int
- func (inc *ATRP) OnUpdate(cb func(value float64))
- func (inc *ATRP) PushK(k types.KLine)
- func (inc *ATRP) Update(high, low, cloze float64)
- type ATRPStream
- type ATRStream
- type BOLL
- func (inc *BOLL) Bind(updater KLineWindowUpdater)
- func (inc *BOLL) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *BOLL) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *BOLL) EmitUpdate(sma float64, upBand float64, downBand float64)
- func (inc *BOLL) GetDownBand() types.SeriesExtend
- func (inc *BOLL) GetSMA() types.SeriesExtend
- func (inc *BOLL) GetStdDev() types.SeriesExtend
- func (inc *BOLL) GetUpBand() types.SeriesExtend
- func (inc *BOLL) LastDownBand() float64
- func (inc *BOLL) LastUpBand() float64
- func (inc *BOLL) LoadK(allKLines []types.KLine)
- func (inc *BOLL) OnUpdate(cb func(sma float64, upBand float64, downBand float64))
- func (inc *BOLL) PushK(k types.KLine)
- func (inc *BOLL) Update(value float64)
- type BOLLStream
- type BandType
- type CA
- func (inc *CA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *CA) EmitUpdate(value float64)
- func (inc *CA) Index(i int) float64
- func (inc *CA) Last(i int) float64
- func (inc *CA) Length() int
- func (inc *CA) OnUpdate(cb func(value float64))
- func (inc *CA) PushK(k types.KLine)
- func (inc *CA) Update(x float64)
- type CCI
- func (inc *CCI) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *CCI) EmitUpdate(value float64)
- func (inc *CCI) Index(i int) float64
- func (inc *CCI) Last(i int) float64
- func (inc *CCI) Length() int
- func (inc *CCI) OnUpdate(cb func(value float64))
- func (inc *CCI) PushK(k types.KLine)
- func (inc *CCI) Update(value float64)
- type CMAStream
- type CrossStream
- type CrossType
- type DEMA
- func (inc *DEMA) Bind(updater KLineWindowUpdater)
- func (inc *DEMA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *DEMA) Clone() *DEMA
- func (inc *DEMA) EmitUpdate(value float64)
- func (inc *DEMA) Index(i int) float64
- func (inc *DEMA) Last(i int) float64
- func (inc *DEMA) Length() int
- func (inc *DEMA) OnUpdate(cb func(value float64))
- func (inc *DEMA) PushK(k types.KLine)
- func (inc *DEMA) TestUpdate(value float64) *DEMA
- func (inc *DEMA) Update(value float64)
- type DMI
- func (inc *DMI) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *DMI) EmitUpdate(diplus float64, diminus float64, adx float64)
- func (inc *DMI) GetADX() types.SeriesExtend
- func (inc *DMI) GetDIMinus() types.SeriesExtend
- func (inc *DMI) GetDIPlus() types.SeriesExtend
- func (inc *DMI) Length() int
- func (inc *DMI) OnUpdate(cb func(diplus float64, diminus float64, adx float64))
- func (inc *DMI) PushK(k types.KLine)
- func (inc *DMI) Update(high, low, cloze float64)
- type Drift
- func (inc *Drift) Bind(updater KLineWindowUpdater)
- func (inc *Drift) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *Drift) Clone() (out *Drift)
- func (inc *Drift) EmitUpdate(value float64)
- func (inc *Drift) Index(i int) float64
- func (inc *Drift) Last(i int) float64
- func (inc *Drift) Length() int
- func (inc *Drift) OnUpdate(cb func(value float64))
- func (inc *Drift) PushK(k types.KLine)
- func (inc *Drift) TestUpdate(value float64) *Drift
- func (inc *Drift) Update(value float64)
- func (inc *Drift) ZeroPoint() float64
- type EMV
- type EWMA
- func (inc *EWMA) Clone() *EWMA
- func (inc *EWMA) EmitUpdate(value float64)
- func (inc *EWMA) Index(i int) float64
- func (inc *EWMA) Last(i int) float64
- func (inc *EWMA) Length() int
- func (inc *EWMA) OnUpdate(cb func(value float64))
- func (inc *EWMA) PushK(k types.KLine)
- func (inc *EWMA) TestUpdate(value float64) *EWMA
- func (inc *EWMA) Update(value float64)
- type EWMAStream
- type FisherTransform
- func (inc *FisherTransform) Clone() types.UpdatableSeriesExtend
- func (inc *FisherTransform) EmitUpdate(value float64)
- func (inc *FisherTransform) Index(i int) float64
- func (inc *FisherTransform) Last(i int) float64
- func (inc *FisherTransform) Length() int
- func (inc *FisherTransform) OnUpdate(cb func(value float64))
- func (inc *FisherTransform) Update(value float64)
- type Float64Calculator
- type Float64Series
- func (f *Float64Series) Bind(source Float64Source, target Float64Calculator)
- func (f *Float64Series) Index(i int) float64
- func (f *Float64Series) Last(i int) float64
- func (f *Float64Series) Length() int
- func (f *Float64Series) PushAndEmit(x float64)
- func (f *Float64Series) Slice() floats.Slice
- func (f *Float64Series) Subscribe(source Float64Source, c func(x float64))
- type Float64Source
- type Float64Subscription
- type Float64Truncator
- type Float64Updater
- type GHFilter
- func (inc *GHFilter) EmitUpdate(value float64)
- func (inc *GHFilter) Index(i int) float64
- func (inc *GHFilter) Last(i int) float64
- func (inc *GHFilter) Length() int
- func (inc *GHFilter) OnUpdate(cb func(value float64))
- func (inc *GHFilter) PushK(k types.KLine)
- func (inc *GHFilter) Update(value float64)
- type GMA
- func (inc *GMA) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *GMA) Clone() (out *GMA)
- func (inc *GMA) EmitUpdate(value float64)
- func (inc *GMA) Index(i int) float64
- func (inc *GMA) Last(i int) float64
- func (inc *GMA) Length() int
- func (inc *GMA) LoadK(allKLines []types.KLine)
- func (inc *GMA) OnUpdate(cb func(value float64))
- func (inc *GMA) PushK(k types.KLine)
- func (inc *GMA) TestUpdate(value float64) *GMA
- func (inc *GMA) Update(value float64)
- type HULL
- type KLineCalculateUpdater
- type KLineClosedBinder
- type KLineClosedEmitter
- type KLinePusher
- type KLineStream
- type KLineSubscription
- type KLineValueMapper
- type KLineWindowUpdater
- type KalmanFilter
- func (inc *KalmanFilter) EmitUpdate(value float64)
- func (inc *KalmanFilter) Index(i int) float64
- func (inc *KalmanFilter) Last(i int) float64
- func (inc *KalmanFilter) Length() int
- func (inc *KalmanFilter) OnUpdate(cb func(value float64))
- func (inc *KalmanFilter) PushK(k types.KLine)
- func (inc *KalmanFilter) Update(value float64)
- type KlingerOscillator
- func (inc *KlingerOscillator) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *KlingerOscillator) EmitUpdate(value float64)
- func (inc *KlingerOscillator) Last(i int) float64
- func (inc *KlingerOscillator) Length() int
- func (inc *KlingerOscillator) OnUpdate(cb func(value float64))
- func (inc *KlingerOscillator) PushK(k types.KLine)
- func (inc *KlingerOscillator) Update(high, low, cloze, volume float64)
- type LinReg
- func (lr *LinReg) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (lr *LinReg) EmitUpdate(value float64)
- func (lr *LinReg) Index(i int) float64
- func (lr *LinReg) IndexRatio(i int) float64
- func (lr *LinReg) Last(i int) float64
- func (lr *LinReg) LastRatio() float64
- func (lr *LinReg) Length() int
- func (lr *LinReg) LengthRatio() int
- func (lr *LinReg) LoadK(allKLines []types.KLine)
- func (lr *LinReg) OnUpdate(cb func(value float64))
- func (lr *LinReg) PushK(k types.KLine)
- func (lr *LinReg) Update(kline types.KLine)
- type Line
- type MACDConfig
- type MACDLegacy
- func (inc *MACDLegacy) EmitUpdate(macd float64, signal float64, histogram float64)
- func (inc *MACDLegacy) Last(i int) float64
- func (inc *MACDLegacy) Length() int
- func (inc *MACDLegacy) MACD() types.SeriesExtend
- func (inc *MACDLegacy) OnUpdate(cb func(macd float64, signal float64, histogram float64))
- func (inc *MACDLegacy) PushK(k types.KLine)
- func (inc *MACDLegacy) Singals() types.SeriesExtend
- func (inc *MACDLegacy) Update(x float64)
- type MACDStream
- type MACDValues
- type MultiplyStream
- type OBV
- func (inc *OBV) Bind(updater KLineWindowUpdater)
- func (inc *OBV) CalculateAndUpdate(kLines []types.KLine)
- func (inc *OBV) EmitUpdate(value float64)
- func (inc *OBV) Index(i int) float64
- func (inc *OBV) Last(i int) float64
- func (inc *OBV) OnUpdate(cb func(value float64))
- func (inc *OBV) PushK(k types.KLine)
- func (inc *OBV) Update(price, volume float64)
- type PSAR
- func (inc *PSAR) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *PSAR) EmitUpdate(value float64)
- func (inc *PSAR) Last(i int) float64
- func (inc *PSAR) Length() int
- func (inc *PSAR) OnUpdate(cb func(value float64))
- func (inc *PSAR) PushK(k types.KLine)
- func (inc *PSAR) Update(high, low float64)
- type Pivot
- func (inc *Pivot) Bind(updater KLineWindowUpdater)
- func (inc *Pivot) CalculateAndUpdate(klines []types.KLine)
- func (inc *Pivot) EmitUpdate(valueLow float64, valueHigh float64)
- func (inc *Pivot) LastHigh() float64
- func (inc *Pivot) LastLow() float64
- func (inc *Pivot) OnUpdate(cb func(valueLow float64, valueHigh float64))
- type PivotHigh
- type PivotHighStream
- type PivotLow
- type PivotLowStream
- type PivotSupertrend
- func (inc *PivotSupertrend) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *PivotSupertrend) Direction() types.Direction
- func (inc *PivotSupertrend) EmitUpdate(value float64)
- func (inc *PivotSupertrend) GetSignal() types.Direction
- func (inc *PivotSupertrend) Index(i int) float64
- func (inc *PivotSupertrend) Last(i int) float64
- func (inc *PivotSupertrend) LastSupertrendResistance() float64
- func (inc *PivotSupertrend) LastSupertrendSupport() float64
- func (inc *PivotSupertrend) Length() int
- func (inc *PivotSupertrend) LoadK(allKLines []types.KLine)
- func (inc *PivotSupertrend) OnUpdate(cb func(value float64))
- func (inc *PivotSupertrend) PushK(k types.KLine)
- func (inc *PivotSupertrend) Update(highPrice, lowPrice, closePrice float64)
- type PriceStream
- func ClosePrices(source KLineSubscription) *PriceStream
- func HighPrices(source KLineSubscription) *PriceStream
- func LowPrices(source KLineSubscription) *PriceStream
- func OpenPrices(source KLineSubscription) *PriceStream
- func Price(source KLineSubscription, mapper KLineValueMapper) *PriceStream
- func Volumes(source KLineSubscription) *PriceStream
- type RMA
- func (inc *RMA) Bind(updater KLineWindowUpdater)
- func (inc *RMA) CalculateAndUpdate(kLines []types.KLine)
- func (inc *RMA) Clone() types.UpdatableSeriesExtend
- func (inc *RMA) EmitUpdate(value float64)
- func (inc *RMA) Index(i int) float64
- func (inc *RMA) Last(i int) float64
- func (inc *RMA) Length() int
- func (inc *RMA) OnUpdate(cb func(value float64))
- func (inc *RMA) PushK(k types.KLine)
- func (inc *RMA) Update(x float64)
- type RMAStream
- type RSI
- func (inc *RSI) Bind(updater KLineWindowUpdater)
- func (inc *RSI) CalculateAndUpdate(kLines []types.KLine)
- func (inc *RSI) EmitUpdate(value float64)
- func (inc *RSI) Index(i int) float64
- func (inc *RSI) Last(i int) float64
- func (inc *RSI) Length() int
- func (inc *RSI) OnUpdate(cb func(value float64))
- func (inc *RSI) PushK(k types.KLine)
- func (inc *RSI) Update(price float64)
- type RSIStream
- type SMA
- func (inc *SMA) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *SMA) Clone() types.UpdatableSeriesExtend
- func (inc *SMA) EmitUpdate(value float64)
- func (inc *SMA) Index(i int) float64
- func (inc *SMA) Last(i int) float64
- func (inc *SMA) Length() int
- func (inc *SMA) LoadK(allKLines []types.KLine)
- func (inc *SMA) OnUpdate(cb func(value float64))
- func (inc *SMA) PushK(k types.KLine)
- func (inc *SMA) Update(value float64)
- type SMAStream
- type SSF
- func (inc *SSF) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *SSF) EmitUpdate(value float64)
- func (inc *SSF) Index(i int) float64
- func (inc *SSF) Last(i int) float64
- func (inc *SSF) Length() int
- func (inc *SSF) OnUpdate(cb func(value float64))
- func (inc *SSF) PushK(k types.KLine)
- func (inc *SSF) Update(value float64)
- type STOCH
- func (inc *STOCH) EmitUpdate(k float64, d float64)
- func (inc *STOCH) GetD() types.Series
- func (inc *STOCH) GetK() types.Series
- func (inc *STOCH) LastD() float64
- func (inc *STOCH) LastK() float64
- func (inc *STOCH) OnUpdate(cb func(k float64, d float64))
- func (inc *STOCH) PushK(k types.KLine)
- func (inc *STOCH) Update(high, low, cloze float64)
- type Simple
- type StdDev
- type StdDevStream
- type StochStream
- type SubtractStream
- type Supertrend
- func (inc *Supertrend) Bind(updater KLineWindowUpdater)
- func (inc *Supertrend) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *Supertrend) CalculateAndUpdate(kLines []types.KLine)
- func (inc *Supertrend) Direction() types.Direction
- func (inc *Supertrend) EmitUpdate(value float64)
- func (inc *Supertrend) GetSignal() types.Direction
- func (inc *Supertrend) Index(i int) float64
- func (inc *Supertrend) Last(i int) float64
- func (inc *Supertrend) LastSupertrendResistance() float64
- func (inc *Supertrend) LastSupertrendSupport() float64
- func (inc *Supertrend) Length() int
- func (inc *Supertrend) LoadK(allKLines []types.KLine)
- func (inc *Supertrend) OnUpdate(cb func(value float64))
- func (inc *Supertrend) PushK(k types.KLine)
- func (inc *Supertrend) Update(highPrice, lowPrice, closePrice float64)
- type TEMA
- func (inc *TEMA) Bind(updater KLineWindowUpdater)
- func (inc *TEMA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *TEMA) EmitUpdate(value float64)
- func (inc *TEMA) Index(i int) float64
- func (inc *TEMA) Last(i int) float64
- func (inc *TEMA) Length() int
- func (inc *TEMA) OnUpdate(cb func(value float64))
- func (inc *TEMA) PushK(k types.KLine)
- func (inc *TEMA) Update(value float64)
- type TILL
- func (inc *TILL) Bind(updater KLineWindowUpdater)
- func (inc *TILL) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *TILL) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *TILL) EmitUpdate(value float64)
- func (inc *TILL) Index(i int) float64
- func (inc *TILL) Last(i int) float64
- func (inc *TILL) Length() int
- func (inc *TILL) LoadK(allKLines []types.KLine)
- func (inc *TILL) OnUpdate(cb func(value float64))
- func (inc *TILL) PushK(k types.KLine)
- func (inc *TILL) Update(value float64)
- type TMA
- type TRStream
- type TSI
- func (inc *TSI) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *TSI) EmitUpdate(value float64)
- func (inc *TSI) Index(i int) float64
- func (inc *TSI) Last(i int) float64
- func (inc *TSI) Length() int
- func (inc *TSI) OnUpdate(cb func(value float64))
- func (inc *TSI) PushK(k types.KLine)
- func (inc *TSI) Update(value float64)
- type UtBotAlert
- func (inc *UtBotAlert) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
- func (inc *UtBotAlert) EmitUpdate(value types.Direction)
- func (inc *UtBotAlert) GetSignal() types.Direction
- func (inc *UtBotAlert) Index(i int) types.Direction
- func (inc *UtBotAlert) Last() types.Direction
- func (inc *UtBotAlert) Length() int
- func (inc *UtBotAlert) LoadK(allKLines []types.KLine)
- func (inc *UtBotAlert) OnUpdate(cb func(value types.Direction))
- func (inc *UtBotAlert) PushK(k types.KLine)
- func (inc *UtBotAlert) Update(highPrice, lowPrice, closePrice float64)
- type VIDYA
- func (inc *VIDYA) Bind(updater KLineWindowUpdater)
- func (inc *VIDYA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *VIDYA) EmitUpdate(value float64)
- func (inc *VIDYA) Index(i int) float64
- func (inc *VIDYA) Last(i int) float64
- func (inc *VIDYA) Length() int
- func (inc *VIDYA) OnUpdate(cb func(value float64))
- func (inc *VIDYA) PushK(k types.KLine)
- func (inc *VIDYA) Update(value float64)
- type VWAP
- func (inc *VWAP) Bind(updater KLineWindowUpdater)
- func (inc *VWAP) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *VWAP) EmitUpdate(value float64)
- func (inc *VWAP) Index(i int) float64
- func (inc *VWAP) Last(i int) float64
- func (inc *VWAP) Length() int
- func (inc *VWAP) OnUpdate(cb func(value float64))
- func (inc *VWAP) PushK(k types.KLine)
- func (inc *VWAP) Update(price, volume float64)
- type VWMA
- func (inc *VWMA) Bind(updater KLineWindowUpdater)
- func (inc *VWMA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *VWMA) EmitUpdate(value float64)
- func (inc *VWMA) Index(i int) float64
- func (inc *VWMA) Last(i int) float64
- func (inc *VWMA) Length() int
- func (inc *VWMA) OnUpdate(cb func(value float64))
- func (inc *VWMA) PushK(k types.KLine)
- func (inc *VWMA) Update(price, volume float64)
- type Volatility
- func (inc *Volatility) Bind(updater KLineWindowUpdater)
- func (inc *Volatility) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *Volatility) EmitUpdate(value float64)
- func (inc *Volatility) Index(i int) float64
- func (inc *Volatility) Last(i int) float64
- func (inc *Volatility) Length() int
- func (inc *Volatility) OnUpdate(cb func(value float64))
- type VolumeForce
- type VolumeProfile
- func (inc *VolumeProfile) PointOfControlAboveEqual(price float64, limit ...float64) (resultPrice float64, vol float64)
- func (inc *VolumeProfile) PointOfControlBelowEqual(price float64, limit ...float64) (resultPrice float64, vol float64)
- func (inc *VolumeProfile) Update(price, volume float64, timestamp types.Time)
- type WWMA
- func (inc *WWMA) Bind(updater KLineWindowUpdater)
- func (inc *WWMA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *WWMA) EmitUpdate(value float64)
- func (inc *WWMA) Index(i int) float64
- func (inc *WWMA) Last(i int) float64
- func (inc *WWMA) Length() int
- func (inc *WWMA) OnUpdate(cb func(value float64))
- func (inc *WWMA) PushK(k types.KLine)
- func (inc *WWMA) Update(value float64)
- type WeightedDrift
- func (inc *WeightedDrift) Bind(updater KLineWindowUpdater)
- func (inc *WeightedDrift) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *WeightedDrift) Clone() (out *WeightedDrift)
- func (inc *WeightedDrift) EmitUpdate(value float64)
- func (inc *WeightedDrift) Index(i int) float64
- func (inc *WeightedDrift) Last(i int) float64
- func (inc *WeightedDrift) Length() int
- func (inc *WeightedDrift) OnUpdate(cb func(value float64))
- func (inc *WeightedDrift) PushK(k types.KLine)
- func (inc *WeightedDrift) TestUpdate(value float64, weight float64) *WeightedDrift
- func (inc *WeightedDrift) Update(value float64, weight float64)
- func (inc *WeightedDrift) ZeroPoint() float64
- type ZLEMA
- func (inc *ZLEMA) Bind(updater KLineWindowUpdater)
- func (inc *ZLEMA) CalculateAndUpdate(allKLines []types.KLine)
- func (inc *ZLEMA) EmitUpdate(value float64)
- func (inc *ZLEMA) Index(i int) float64
- func (inc *ZLEMA) Last(i int) float64
- func (inc *ZLEMA) Length() int
- func (inc *ZLEMA) OnUpdate(cb func(value float64))
- func (inc *ZLEMA) PushK(k types.KLine)
- func (inc *ZLEMA) Update(value float64)
Constants ¶
const DPeriod int = 3
const DefaultEMVScale float64 = 100000000.
const MaxNumOfALMA = 5_000
const MaxNumOfALMATruncateSize = 100
const MaxNumOfATR = 1000
const MaxNumOfATRTruncateSize = 500
const MaxNumOfEWMA = 1_000
These numbers should be aligned with bbgo MaxNumOfKLines and MaxNumOfKLinesTruncate
const MaxNumOfEWMATruncateSize = 500
const MaxNumOfKLines = 4_000
const MaxNumOfRMA = 1000
const MaxNumOfRMATruncateSize = 500
const MaxNumOfSMA = 5_000
const MaxNumOfSMATruncateSize = 100
const MaxNumOfStdev = 600
const MaxNumOfStdevTruncateSize = 300
const MaxNumOfVOL = 5_000
const MaxNumOfVOLTruncateSize = 100
const MaxNumOfWWMA = 5_000
const MaxNumOfWWMATruncateSize = 100
Variables ¶
This section is empty.
Functions ¶
func CalculateKLinesEMA ¶
func CalculateKLinesEMA(allKLines []types.KLine, priceF KLineValueMapper, window int) float64
func KLineClosePriceMapper ¶
func KLineHighPriceMapper ¶
func KLineLowPriceMapper ¶
func KLineOpenPriceMapper ¶
func KLinePriceVolumeMapper ¶
func KLineTypicalPriceMapper ¶
func KLineVolumeMapper ¶
func MapKLinePrice ¶
func MapKLinePrice(kLines []types.KLine, f KLineValueMapper) (prices []float64)
Types ¶
type AD ¶
type AD struct { types.SeriesBase types.IntervalWindow Values floats.Slice PrePrice float64 EndTime time.Time UpdateCallbacks []func(value float64) }
ad implements accumulation/distribution indicator
Accumulation/Distribution Indicator (A/D) - https://www.investopedia.com/terms/a/accumulationdistribution.asp
func (*AD) CalculateAndUpdate ¶
func (*AD) EmitUpdate ¶
type ALMA ¶
type ALMA struct { types.SeriesBase types.IntervalWindow // required Offset float64 // required: recommend to be 0.5 Sigma int // required: recommend to be 5 Values floats.Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: Arnaud Legoux Moving Average Refer: https://capital.com/arnaud-legoux-moving-average Also check https://github.com/DaveSkender/Stock.Indicators/blob/main/src/a-d/Alma/Alma.cs
The Arnaud Legoux Moving Average (ALMA) is a technical analysis indicator that is used to smooth price data and reduce the lag associated with traditional moving averages. It was developed by Arnaud Legoux and is based on the weighted moving average, with the weighting factors determined using a Gaussian function. The ALMA is calculated by taking the weighted moving average of the input data using weighting factors that are based on the standard deviation of the data and the specified length of the moving average. This resulting average is then plotted on the price chart as a line, which can be used to make predictions about future price movements. The ALMA is typically more responsive to changes in the underlying data than a simple moving average, but may be less reliable in trending markets.
@param offset: Gaussian applied to the combo line. 1->ema, 0->sma @param sigma: the standard deviation applied to the combo line. This makes the combo line sharper
func (*ALMA) CalculateAndUpdate ¶
func (*ALMA) EmitUpdate ¶
type ATR ¶
type ATR struct { types.SeriesBase types.IntervalWindow PercentageVolatility floats.Slice PreviousClose float64 RMA *RMA EndTime time.Time UpdateCallbacks []func(value float64) }
func (*ATR) EmitUpdate ¶
func (*ATR) TestUpdate ¶
type ATRP ¶
type ATRP struct { types.SeriesBase types.IntervalWindow PercentageVolatility floats.Slice PreviousClose float64 RMA *RMA EndTime time.Time UpdateCallbacks []func(value float64) }
ATRP is the average true range percentage See also https://www.fidelity.com/learning-center/trading-investing/technical-analysis/technical-indicator-guide/atrp
The Average True Range Percentage (ATRP) is a technical analysis indicator that measures the volatility of a security's price. It is calculated by dividing the Average True Range (ATR) of the security by its closing price, and then multiplying the result by 100 to convert it to a percentage. The ATR is a measure of the range of a security's price, taking into account gaps between trading periods and any limit moves (sharp price movements that are allowed under certain exchange rules). The ATR is typically smoothed using a moving average to make it more responsive to changes in the underlying price data. The ATRP is a useful indicator for traders because it provides a way to compare the volatility of different securities, regardless of their individual prices. It can also be used to identify potential entry and exit points for trades based on changes in the security's volatility.
Calculation:
ATRP = (Average True Range / Close) * 100
func (*ATRP) Bind ¶
func (inc *ATRP) Bind(updater KLineWindowUpdater)
func (*ATRP) CalculateAndUpdate ¶
func (*ATRP) EmitUpdate ¶
type ATRPStream ¶
type ATRPStream struct {
*Float64Series
}
func ATRP2 ¶
func ATRP2(source KLineSubscription, window int) *ATRPStream
type ATRStream ¶
type ATRStream struct { // embedded struct *RMAStream }
func ATR2 ¶
func ATR2(source KLineSubscription, window int) *ATRStream
type BOLL ¶
type BOLL struct { types.IntervalWindow // K is the multiplier of Std, generally it's 2 K float64 SMA *SMA StdDev *StdDev UpBand floats.Slice DownBand floats.Slice EndTime time.Time // contains filtered or unexported fields }
func (*BOLL) Bind ¶
func (inc *BOLL) Bind(updater KLineWindowUpdater)
func (*BOLL) BindK ¶
func (inc *BOLL) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*BOLL) CalculateAndUpdate ¶
func (*BOLL) EmitUpdate ¶
func (*BOLL) GetDownBand ¶
func (inc *BOLL) GetDownBand() types.SeriesExtend
func (*BOLL) GetSMA ¶
func (inc *BOLL) GetSMA() types.SeriesExtend
func (*BOLL) GetStdDev ¶
func (inc *BOLL) GetStdDev() types.SeriesExtend
func (*BOLL) GetUpBand ¶
func (inc *BOLL) GetUpBand() types.SeriesExtend
func (*BOLL) LastDownBand ¶
func (*BOLL) LastUpBand ¶
type BOLLStream ¶
type BOLLStream struct { // the band series *Float64Series UpBand, DownBand *Float64Series SMA *SMAStream StdDev *StdDevStream // contains filtered or unexported fields }
func BOLL2 ¶
func BOLL2(source Float64Source, window int, k float64) *BOLLStream
BOOL2 is bollinger indicator the data flow:
priceSource ->
-> calculate SMA -> calculate stdDev -> calculate bandWidth -> get latest SMA -> upBand, downBand
func (*BOLLStream) Calculate ¶
func (s *BOLLStream) Calculate(v float64) float64
type CA ¶
type CA struct { types.SeriesBase Interval types.Interval Values floats.Slice // contains filtered or unexported fields }
Refer: Cumulative Moving Average, Cumulative Average Refer: https://en.wikipedia.org/wiki/Moving_average
func (*CA) CalculateAndUpdate ¶
func (*CA) EmitUpdate ¶
type CCI ¶
type CCI struct { types.SeriesBase types.IntervalWindow Input floats.Slice TypicalPrice floats.Slice MA floats.Slice Values floats.Slice UpdateCallbacks []func(value float64) }
func (*CCI) CalculateAndUpdate ¶
func (*CCI) EmitUpdate ¶
type CMAStream ¶
type CMAStream struct {
*Float64Series
}
func CMA2 ¶
func CMA2(source Float64Source) *CMAStream
type CrossStream ¶
type CrossStream struct { *Float64Series // contains filtered or unexported fields }
CrossStream subscribes 2 upstreams, and calculate the cross signal
func Cross ¶
func Cross(a, b Float64Source) *CrossStream
Cross creates the CrossStream object:
cross := Cross(fastEWMA, slowEWMA)
type DEMA ¶
type DEMA struct { types.IntervalWindow types.SeriesBase Values floats.Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*DEMA) Bind ¶
func (inc *DEMA) Bind(updater KLineWindowUpdater)
func (*DEMA) CalculateAndUpdate ¶
func (*DEMA) EmitUpdate ¶
func (*DEMA) TestUpdate ¶
type DMI ¶
type DMI struct { types.IntervalWindow ADXSmoothing int DMP types.UpdatableSeriesExtend DMN types.UpdatableSeriesExtend DIPlus *types.Queue DIMinus *types.Queue ADX types.UpdatableSeriesExtend PrevHigh, PrevLow float64 // contains filtered or unexported fields }
func (*DMI) CalculateAndUpdate ¶
func (*DMI) GetADX ¶
func (inc *DMI) GetADX() types.SeriesExtend
func (*DMI) GetDIMinus ¶
func (inc *DMI) GetDIMinus() types.SeriesExtend
func (*DMI) GetDIPlus ¶
func (inc *DMI) GetDIPlus() types.SeriesExtend
type Drift ¶
type Drift struct { types.SeriesBase types.IntervalWindow Values floats.Slice MA types.UpdatableSeriesExtend LastValue float64 UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*Drift) Bind ¶
func (inc *Drift) Bind(updater KLineWindowUpdater)
func (*Drift) CalculateAndUpdate ¶
func (*Drift) EmitUpdate ¶
func (*Drift) TestUpdate ¶
type EMV ¶
type EMV struct { types.SeriesBase types.IntervalWindow Values *SMA EMVScale float64 UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*EMV) EmitUpdate ¶
type EWMA ¶
type EWMA struct { types.IntervalWindow types.SeriesBase Values floats.Slice EndTime time.Time // contains filtered or unexported fields }
func (*EWMA) EmitUpdate ¶
func (*EWMA) TestUpdate ¶
type EWMAStream ¶
type EWMAStream struct { *Float64Series // contains filtered or unexported fields }
func EWMA2 ¶
func EWMA2(source Float64Source, window int) *EWMAStream
func (*EWMAStream) Calculate ¶
func (s *EWMAStream) Calculate(v float64) float64
type FisherTransform ¶
type FisherTransform struct { types.SeriesBase types.IntervalWindow Values floats.Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Fisher Transform
The Fisher Transform is a technical analysis indicator that is used to identify potential turning points in the price of a security. It is based on the idea that prices tend to be normally distributed, with most price movements being small and relatively insignificant. The Fisher Transform converts this normal distribution into a symmetrical, Gaussian distribution, with a peak at zero and a range of -1 to +1. This transformation allows for more accurate identification of price extremes, which can be used to make predictions about potential trend reversals. The Fisher Transform is calculated by taking the natural logarithm of the ratio of the security's current price to its moving average, and then double-smoothing the result. This resulting line is called the Fisher Transform line, and can be plotted on the price chart along with the security's price.
func (*FisherTransform) Clone ¶
func (inc *FisherTransform) Clone() types.UpdatableSeriesExtend
func (*FisherTransform) EmitUpdate ¶
func (inc *FisherTransform) EmitUpdate(value float64)
func (*FisherTransform) Index ¶
func (inc *FisherTransform) Index(i int) float64
func (*FisherTransform) Last ¶
func (inc *FisherTransform) Last(i int) float64
func (*FisherTransform) Length ¶
func (inc *FisherTransform) Length() int
func (*FisherTransform) OnUpdate ¶
func (inc *FisherTransform) OnUpdate(cb func(value float64))
func (*FisherTransform) Update ¶
func (inc *FisherTransform) Update(value float64)
type Float64Calculator ¶
type Float64Series ¶
type Float64Series struct { types.SeriesBase Float64Updater // contains filtered or unexported fields }
func NewFloat64Series ¶
func NewFloat64Series(v ...float64) *Float64Series
func (*Float64Series) Bind ¶
func (f *Float64Series) Bind(source Float64Source, target Float64Calculator)
Bind binds the source event to the target (Float64Calculator) A Float64Calculator should be able to calculate the float64 result from a single float64 argument input
func (*Float64Series) Index ¶
func (f *Float64Series) Index(i int) float64
func (*Float64Series) Last ¶
func (f *Float64Series) Last(i int) float64
func (*Float64Series) Length ¶
func (f *Float64Series) Length() int
func (*Float64Series) PushAndEmit ¶
func (f *Float64Series) PushAndEmit(x float64)
func (*Float64Series) Slice ¶
func (f *Float64Series) Slice() floats.Slice
func (*Float64Series) Subscribe ¶
func (f *Float64Series) Subscribe(source Float64Source, c func(x float64))
type Float64Source ¶
type Float64Subscription ¶
type Float64Truncator ¶
type Float64Truncator interface {
Truncate()
}
type Float64Updater ¶
type Float64Updater struct {
// contains filtered or unexported fields
}
func (*Float64Updater) EmitUpdate ¶
func (f *Float64Updater) EmitUpdate(v float64)
func (*Float64Updater) OnUpdate ¶
func (f *Float64Updater) OnUpdate(cb func(v float64))
type GHFilter ¶
type GHFilter struct { types.SeriesBase types.IntervalWindow Values floats.Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*GHFilter) EmitUpdate ¶
type GMA ¶
type GMA struct { types.SeriesBase types.IntervalWindow SMA *SMA UpdateCallbacks []func(value float64) }
func (*GMA) BindK ¶
func (inc *GMA) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*GMA) EmitUpdate ¶
func (*GMA) TestUpdate ¶
type HULL ¶
type HULL struct { types.SeriesBase types.IntervalWindow // contains filtered or unexported fields }
Refer: Hull Moving Average Refer URL: https://fidelity.com/learning-center/trading-investing/technical-analysis/technical-indicator-guide/hull-moving-average
The Hull Moving Average (HMA) is a technical analysis indicator that uses a weighted moving average to reduce the lag in simple moving averages. It was developed by Alan Hull, who sought to create a moving average that was both fast and smooth. The HMA is calculated by first taking the weighted moving average of the input data using a weighting factor of W, where W is the square root of the length of the moving average. The result is then double-smoothed by taking the weighted moving average of this result using a weighting factor of W/2. This final average forms the HMA line, which can be used to make predictions about future price movements.
func (*HULL) EmitUpdate ¶
type KLineCalculateUpdater ¶
type KLineClosedBinder ¶
type KLineClosedBinder interface {
BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
}
type KLineClosedEmitter ¶
KLineClosedEmitter is currently applied to the market data stream the market data stream emits the KLine closed event to the listeners.
type KLinePusher ¶
KLinePusher provides an interface for API user to push kline value to the indicator. The indicator implements its own way to calculate the value from the given kline object.
type KLineStream ¶
type KLineStream struct {
// contains filtered or unexported fields
}
func (*KLineStream) AddSubscriber ¶
func (s *KLineStream) AddSubscriber(f func(k types.KLine))
AddSubscriber adds the subscriber function and push historical data to the subscriber
func (*KLineStream) BackFill ¶
func (s *KLineStream) BackFill(kLines []types.KLine)
func (*KLineStream) EmitUpdate ¶
func (s *KLineStream) EmitUpdate(k types.KLine)
func (*KLineStream) Length ¶
func (s *KLineStream) Length() int
func (*KLineStream) OnUpdate ¶
func (s *KLineStream) OnUpdate(cb func(k types.KLine))
type KLineSubscription ¶
type KLineValueMapper ¶
type KLineWindowUpdater ¶
type KLineWindowUpdater interface {
OnKLineWindowUpdate(func(interval types.Interval, window types.KLineWindow))
}
type KalmanFilter ¶
type KalmanFilter struct { types.SeriesBase types.IntervalWindow AdditionalSmoothWindow uint Values floats.Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*KalmanFilter) EmitUpdate ¶
func (inc *KalmanFilter) EmitUpdate(value float64)
func (*KalmanFilter) Index ¶
func (inc *KalmanFilter) Index(i int) float64
func (*KalmanFilter) Last ¶
func (inc *KalmanFilter) Last(i int) float64
func (*KalmanFilter) Length ¶
func (inc *KalmanFilter) Length() int
func (*KalmanFilter) OnUpdate ¶
func (inc *KalmanFilter) OnUpdate(cb func(value float64))
func (*KalmanFilter) PushK ¶
func (inc *KalmanFilter) PushK(k types.KLine)
func (*KalmanFilter) Update ¶
func (inc *KalmanFilter) Update(value float64)
type KlingerOscillator ¶
type KlingerOscillator struct { types.SeriesBase types.IntervalWindow Fast types.UpdatableSeries Slow types.UpdatableSeries VF VolumeForce // contains filtered or unexported fields }
Refer: Klinger Oscillator Refer URL: https://www.investopedia.com/terms/k/klingeroscillator.asp Explanation: The Klinger Oscillator is a technical indicator that was developed by Stephen Klinger. It is based on the assumption that there is a relationship between money flow and price movement in the stock market. The Klinger Oscillator is calculated by taking the difference between a 34-period and 55-period moving average. Usually the indicator is using together with a 9-period or 13-period of moving average as the signal line. This indicator is often used to identify potential turning points in the market, as well as to confirm the strength of a trend.
func (*KlingerOscillator) BindK ¶
func (inc *KlingerOscillator) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*KlingerOscillator) EmitUpdate ¶
func (inc *KlingerOscillator) EmitUpdate(value float64)
func (*KlingerOscillator) Last ¶
func (inc *KlingerOscillator) Last(i int) float64
func (*KlingerOscillator) Length ¶
func (inc *KlingerOscillator) Length() int
func (*KlingerOscillator) OnUpdate ¶
func (inc *KlingerOscillator) OnUpdate(cb func(value float64))
func (*KlingerOscillator) PushK ¶
func (inc *KlingerOscillator) PushK(k types.KLine)
func (*KlingerOscillator) Update ¶
func (inc *KlingerOscillator) Update(high, low, cloze, volume float64)
type LinReg ¶
type LinReg struct { types.SeriesBase types.IntervalWindow // Values are the slopes of linear regression baseline Values floats.Slice // ValueRatios are the ratio of slope to the price ValueRatios floats.Slice EndTime time.Time UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
LinReg is Linear Regression baseline
func (*LinReg) BindK ¶
func (lr *LinReg) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*LinReg) EmitUpdate ¶
func (*LinReg) IndexRatio ¶
IndexRatio returns the slope ratio
func (*LinReg) LengthRatio ¶
LengthRatio of the slope ratio values
type Line ¶
type Line struct { types.SeriesBase types.IntervalWindow Interval types.Interval // contains filtered or unexported fields }
Line indicator is a utility that helps to simulate either the 1. trend 2. support 3. resistance of the market data, defined with series interface
func (*Line) Bind ¶
func (l *Line) Bind(updater KLineWindowUpdater)
type MACDConfig ¶
type MACDConfig struct { types.IntervalWindow // 9 // ShortPeriod is the short term period EMA, usually 12 ShortPeriod int `json:"short"` // LongPeriod is the long term period EMA, usually 26 LongPeriod int `json:"long"` }
type MACDLegacy ¶
type MACDLegacy struct { MACDConfig Values floats.Slice `json:"-"` Histogram floats.Slice `json:"-"` EndTime time.Time // contains filtered or unexported fields }
func (*MACDLegacy) EmitUpdate ¶
func (inc *MACDLegacy) EmitUpdate(macd float64, signal float64, histogram float64)
func (*MACDLegacy) Last ¶
func (inc *MACDLegacy) Last(i int) float64
func (*MACDLegacy) Length ¶
func (inc *MACDLegacy) Length() int
func (*MACDLegacy) MACD ¶
func (inc *MACDLegacy) MACD() types.SeriesExtend
func (*MACDLegacy) OnUpdate ¶
func (inc *MACDLegacy) OnUpdate(cb func(macd float64, signal float64, histogram float64))
func (*MACDLegacy) PushK ¶
func (inc *MACDLegacy) PushK(k types.KLine)
func (*MACDLegacy) Singals ¶
func (inc *MACDLegacy) Singals() types.SeriesExtend
func (*MACDLegacy) Update ¶
func (inc *MACDLegacy) Update(x float64)
type MACDStream ¶
type MACDStream struct { *SubtractStream FastEWMA, SlowEWMA, Signal *EWMAStream Histogram *SubtractStream // contains filtered or unexported fields }
func MACD2 ¶
func MACD2(source Float64Source, shortWindow, longWindow, signalWindow int) *MACDStream
type MACDValues ¶
type MACDValues struct { types.SeriesBase *MACDLegacy }
func (*MACDValues) Index ¶
func (inc *MACDValues) Index(i int) float64
func (*MACDValues) Last ¶
func (inc *MACDValues) Last(i int) float64
func (*MACDValues) Length ¶
func (inc *MACDValues) Length() int
type MultiplyStream ¶
type MultiplyStream struct { *Float64Series // contains filtered or unexported fields }
func Multiply ¶
func Multiply(a, b Float64Source) *MultiplyStream
type OBV ¶
type OBV struct { types.SeriesBase types.IntervalWindow Values floats.Slice PrePrice float64 EndTime time.Time // contains filtered or unexported fields }
obv implements on-balance volume indicator
On-Balance Volume (OBV) Definition - https://www.investopedia.com/terms/o/onbalancevolume.asp
On-Balance Volume (OBV) is a technical analysis indicator that uses volume information to predict changes in stock price. The idea behind OBV is that volume precedes price: when the OBV is rising, it means that buyers are becoming more aggressive and that the stock price is likely to follow suit. When the OBV is falling, it indicates that sellers are becoming more aggressive and that the stock price is likely to decrease. OBV is calculated by adding the volume on days when the stock price closes higher and subtracting the volume on days when the stock price closes lower. This running total forms the OBV line, which can then be used to make predictions about future stock price movements.
func (*OBV) Bind ¶
func (inc *OBV) Bind(updater KLineWindowUpdater)
func (*OBV) CalculateAndUpdate ¶
func (*OBV) EmitUpdate ¶
type PSAR ¶
type PSAR struct { types.SeriesBase types.IntervalWindow High *types.Queue Low *types.Queue Values floats.Slice // Stop and Reverse AF float64 // Acceleration Factor EP float64 Falling bool EndTime time.Time UpdateCallbacks []func(value float64) }
func (*PSAR) BindK ¶
func (inc *PSAR) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*PSAR) EmitUpdate ¶
type Pivot ¶
type Pivot struct { types.IntervalWindow // Values Lows floats.Slice // higher low Highs floats.Slice // lower high EndTime time.Time // contains filtered or unexported fields }
func (*Pivot) Bind ¶
func (inc *Pivot) Bind(updater KLineWindowUpdater)
func (*Pivot) CalculateAndUpdate ¶
func (*Pivot) EmitUpdate ¶
type PivotHigh ¶
type PivotHigh struct { types.SeriesBase types.IntervalWindow Highs floats.Slice Values floats.Slice EndTime time.Time // contains filtered or unexported fields }
func (*PivotHigh) EmitUpdate ¶
type PivotHighStream ¶
type PivotHighStream struct { *Float64Series // contains filtered or unexported fields }
func PivotHigh2 ¶
func PivotHigh2(source Float64Source, window, rightWindow int) *PivotHighStream
type PivotLow ¶
type PivotLow struct { types.SeriesBase types.IntervalWindow Lows floats.Slice Values floats.Slice EndTime time.Time // contains filtered or unexported fields }
func (*PivotLow) EmitUpdate ¶
type PivotLowStream ¶
type PivotLowStream struct { *Float64Series // contains filtered or unexported fields }
func PivotLow2 ¶
func PivotLow2(source Float64Source, window, rightWindow int) *PivotLowStream
type PivotSupertrend ¶
type PivotSupertrend struct { types.SeriesBase types.IntervalWindow ATRMultiplier float64 `json:"atrMultiplier"` PivotWindow int `json:"pivotWindow"` AverageTrueRange *ATR // Value must be set when initialized in strategy PivotLow *PivotLow // Value must be set when initialized in strategy PivotHigh *PivotHigh // Value must be set when initialized in strategy EndTime time.Time UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*PivotSupertrend) BindK ¶
func (inc *PivotSupertrend) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*PivotSupertrend) Direction ¶
func (inc *PivotSupertrend) Direction() types.Direction
GetDirection return the current trend
func (*PivotSupertrend) EmitUpdate ¶
func (inc *PivotSupertrend) EmitUpdate(value float64)
func (*PivotSupertrend) GetSignal ¶
func (inc *PivotSupertrend) GetSignal() types.Direction
GetSignal returns signal (Down, None or Up)
func (*PivotSupertrend) Index ¶
func (inc *PivotSupertrend) Index(i int) float64
func (*PivotSupertrend) Last ¶
func (inc *PivotSupertrend) Last(i int) float64
func (*PivotSupertrend) LastSupertrendResistance ¶
func (inc *PivotSupertrend) LastSupertrendResistance() float64
LastSupertrendResistance return the current supertrend resistance value
func (*PivotSupertrend) LastSupertrendSupport ¶
func (inc *PivotSupertrend) LastSupertrendSupport() float64
LastSupertrendSupport return the current supertrend support value
func (*PivotSupertrend) Length ¶
func (inc *PivotSupertrend) Length() int
func (*PivotSupertrend) LoadK ¶
func (inc *PivotSupertrend) LoadK(allKLines []types.KLine)
func (*PivotSupertrend) OnUpdate ¶
func (inc *PivotSupertrend) OnUpdate(cb func(value float64))
func (*PivotSupertrend) PushK ¶
func (inc *PivotSupertrend) PushK(k types.KLine)
func (*PivotSupertrend) Update ¶
func (inc *PivotSupertrend) Update(highPrice, lowPrice, closePrice float64)
type PriceStream ¶
type PriceStream struct { *Float64Series // contains filtered or unexported fields }
func ClosePrices ¶
func ClosePrices(source KLineSubscription) *PriceStream
func HighPrices ¶
func HighPrices(source KLineSubscription) *PriceStream
func LowPrices ¶
func LowPrices(source KLineSubscription) *PriceStream
func OpenPrices ¶
func OpenPrices(source KLineSubscription) *PriceStream
func Price ¶
func Price(source KLineSubscription, mapper KLineValueMapper) *PriceStream
func Volumes ¶
func Volumes(source KLineSubscription) *PriceStream
func (*PriceStream) AddSubscriber ¶
func (s *PriceStream) AddSubscriber(f func(v float64))
AddSubscriber adds the subscriber function and push historical data to the subscriber
func (*PriceStream) PushAndEmit ¶
func (s *PriceStream) PushAndEmit(v float64)
type RMA ¶
type RMA struct { types.SeriesBase types.IntervalWindow Values floats.Slice EndTime time.Time Adjust bool // contains filtered or unexported fields }
func (*RMA) Bind ¶
func (inc *RMA) Bind(updater KLineWindowUpdater)
func (*RMA) CalculateAndUpdate ¶
func (*RMA) Clone ¶
func (inc *RMA) Clone() types.UpdatableSeriesExtend
func (*RMA) EmitUpdate ¶
type RMAStream ¶
type RMAStream struct { // embedded structs *Float64Series // config fields Adjust bool // contains filtered or unexported fields }
type RSI ¶
type RSI struct { types.SeriesBase types.IntervalWindow Values floats.Slice Prices floats.Slice PreviousAvgLoss float64 PreviousAvgGain float64 EndTime time.Time // contains filtered or unexported fields }
func (*RSI) Bind ¶
func (inc *RSI) Bind(updater KLineWindowUpdater)
func (*RSI) CalculateAndUpdate ¶
func (*RSI) EmitUpdate ¶
type RSIStream ¶
type RSIStream struct { // embedded structs *Float64Series // contains filtered or unexported fields }
func RSI2 ¶
func RSI2(source Float64Source, window int) *RSIStream
type SMA ¶
type SMA struct { types.SeriesBase types.IntervalWindow Values floats.Slice EndTime time.Time UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*SMA) BindK ¶
func (inc *SMA) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*SMA) Clone ¶
func (inc *SMA) Clone() types.UpdatableSeriesExtend
func (*SMA) EmitUpdate ¶
type SMAStream ¶
type SMAStream struct { *Float64Series // contains filtered or unexported fields }
func SMA2 ¶
func SMA2(source Float64Source, window int) *SMAStream
type SSF ¶
type SSF struct { types.SeriesBase types.IntervalWindow Poles int Values floats.Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: https://easylanguagemastery.com/indicators/predictive-indicators/ Refer: https://github.com/twopirllc/pandas-ta/blob/main/pandas_ta/overlap/ssf.py Ehler's Super Smoother Filter
John F. Ehlers's solution to reduce lag and remove aliasing noise with his research in aerospace analog filter design. This indicator comes with two versions determined by the keyword poles. By default, it uses two poles but there is an option for three poles. Since SSF is a (Resursive) Digital Filter, the number of poles determine how many prior recursive SSF bars to include in the design of the filter. So two poles uses two prior SSF bars and three poles uses three prior SSF bars for their filter calculations.
func (*SSF) CalculateAndUpdate ¶
func (*SSF) EmitUpdate ¶
type STOCH ¶
type STOCH struct { types.IntervalWindow K floats.Slice D floats.Slice HighValues floats.Slice LowValues floats.Slice EndTime time.Time UpdateCallbacks []func(k float64, d float64) }
func (*STOCH) EmitUpdate ¶
type Simple ¶
type Simple interface { KLinePusher Last(int) float64 OnUpdate(f func(value float64)) }
Simple is the simple indicator that only returns one float64 value
type StdDev ¶
type StdDev struct { types.SeriesBase types.IntervalWindow Values floats.Slice EndTime time.Time // contains filtered or unexported fields }
func (*StdDev) EmitUpdate ¶
type StdDevStream ¶
type StdDevStream struct { *Float64Series // contains filtered or unexported fields }
func StdDev2 ¶
func StdDev2(source Float64Source, window int) *StdDevStream
func (*StdDevStream) Calculate ¶
func (s *StdDevStream) Calculate(x float64) float64
type StochStream ¶
type StochStream struct { types.SeriesBase K, D floats.Slice // contains filtered or unexported fields }
func Stoch2 ¶
func Stoch2(source KLineSubscription, window, dPeriod int) *StochStream
Stochastic Oscillator
func (*StochStream) EmitUpdate ¶
func (S *StochStream) EmitUpdate(k float64, d float64)
func (*StochStream) OnUpdate ¶
func (S *StochStream) OnUpdate(cb func(k float64, d float64))
type SubtractStream ¶
type SubtractStream struct { *Float64Series // contains filtered or unexported fields }
SubtractStream subscribes 2 upstream data, and then subtract these 2 values
func Subtract ¶
func Subtract(a, b Float64Source) *SubtractStream
Subtract creates the SubtractStream object subtract := Subtract(longEWMA, shortEWMA)
type Supertrend ¶
type Supertrend struct { types.SeriesBase types.IntervalWindow ATRMultiplier float64 `json:"atrMultiplier"` AverageTrueRange *ATR EndTime time.Time UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*Supertrend) Bind ¶
func (inc *Supertrend) Bind(updater KLineWindowUpdater)
func (*Supertrend) BindK ¶
func (inc *Supertrend) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*Supertrend) CalculateAndUpdate ¶
func (inc *Supertrend) CalculateAndUpdate(kLines []types.KLine)
func (*Supertrend) Direction ¶
func (inc *Supertrend) Direction() types.Direction
GetDirection return the current trend
func (*Supertrend) EmitUpdate ¶
func (inc *Supertrend) EmitUpdate(value float64)
func (*Supertrend) GetSignal ¶
func (inc *Supertrend) GetSignal() types.Direction
func (*Supertrend) Index ¶
func (inc *Supertrend) Index(i int) float64
func (*Supertrend) Last ¶
func (inc *Supertrend) Last(i int) float64
func (*Supertrend) LastSupertrendResistance ¶
func (inc *Supertrend) LastSupertrendResistance() float64
LastSupertrendResistance return the current supertrend resistance
func (*Supertrend) LastSupertrendSupport ¶
func (inc *Supertrend) LastSupertrendSupport() float64
LastSupertrendSupport return the current supertrend support
func (*Supertrend) Length ¶
func (inc *Supertrend) Length() int
func (*Supertrend) LoadK ¶
func (inc *Supertrend) LoadK(allKLines []types.KLine)
func (*Supertrend) OnUpdate ¶
func (inc *Supertrend) OnUpdate(cb func(value float64))
func (*Supertrend) PushK ¶
func (inc *Supertrend) PushK(k types.KLine)
func (*Supertrend) Update ¶
func (inc *Supertrend) Update(highPrice, lowPrice, closePrice float64)
type TEMA ¶
type TEMA struct { types.SeriesBase types.IntervalWindow Values floats.Slice A1 *EWMA A2 *EWMA A3 *EWMA UpdateCallbacks []func(value float64) }
func (*TEMA) Bind ¶
func (inc *TEMA) Bind(updater KLineWindowUpdater)
func (*TEMA) CalculateAndUpdate ¶
func (*TEMA) EmitUpdate ¶
type TILL ¶
type TILL struct { types.SeriesBase types.IntervalWindow VolumeFactor float64 // contains filtered or unexported fields }
func (*TILL) Bind ¶
func (inc *TILL) Bind(updater KLineWindowUpdater)
func (*TILL) BindK ¶
func (inc *TILL) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*TILL) CalculateAndUpdate ¶
func (*TILL) EmitUpdate ¶
type TMA ¶
type TMA struct { types.SeriesBase types.IntervalWindow UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: Triangular Moving Average Refer URL: https://ja.wikipedia.org/wiki/移動平均
func (*TMA) EmitUpdate ¶
type TRStream ¶
type TRStream struct { // embedded struct *Float64Series // contains filtered or unexported fields }
This TRStream calculates the ATR first
func TR2 ¶
func TR2(source KLineSubscription) *TRStream
type TSI ¶
type TSI struct { types.SeriesBase types.Interval FastWindow int SlowWindow int PrevValue float64 Values floats.Slice Pcs *EWMA Pcds *EWMA Apcs *EWMA Apcds *EWMA // contains filtered or unexported fields }
Refer: True Strength Index Refer URL: https://www.investopedia.com/terms/t/tsi.asp
func (*TSI) BindK ¶
func (inc *TSI) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*TSI) EmitUpdate ¶
type UtBotAlert ¶
type UtBotAlert struct { types.IntervalWindow KeyValue float64 `json:"keyValue"` // Should be ATRMultiplier Values []types.Direction AverageTrueRange *ATR // Value must be set when initialized in strategy EndTime time.Time UpdateCallbacks []func(value types.Direction) // contains filtered or unexported fields }
func NewUtBotAlert ¶
func NewUtBotAlert(iw types.IntervalWindow, keyValue float64) *UtBotAlert
func (*UtBotAlert) BindK ¶
func (inc *UtBotAlert) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*UtBotAlert) EmitUpdate ¶
func (inc *UtBotAlert) EmitUpdate(value types.Direction)
func (*UtBotAlert) GetSignal ¶
func (inc *UtBotAlert) GetSignal() types.Direction
GetSignal returns signal (down, none or up)
func (*UtBotAlert) Last ¶
func (inc *UtBotAlert) Last() types.Direction
func (*UtBotAlert) Length ¶
func (inc *UtBotAlert) Length() int
func (*UtBotAlert) LoadK ¶
func (inc *UtBotAlert) LoadK(allKLines []types.KLine)
LoadK calculates the initial values
func (*UtBotAlert) OnUpdate ¶
func (inc *UtBotAlert) OnUpdate(cb func(value types.Direction))
func (*UtBotAlert) PushK ¶
func (inc *UtBotAlert) PushK(k types.KLine)
func (*UtBotAlert) Update ¶
func (inc *UtBotAlert) Update(highPrice, lowPrice, closePrice float64)
type VIDYA ¶
type VIDYA struct { types.SeriesBase types.IntervalWindow Values floats.Slice // contains filtered or unexported fields }
func (*VIDYA) Bind ¶
func (inc *VIDYA) Bind(updater KLineWindowUpdater)
func (*VIDYA) CalculateAndUpdate ¶
func (*VIDYA) EmitUpdate ¶
type VWAP ¶
type VWAP struct { types.SeriesBase types.IntervalWindow Values floats.Slice Prices floats.Slice Volumes floats.Slice WeightedSum float64 VolumeSum float64 EndTime time.Time UpdateCallbacks []func(value float64) }
func (*VWAP) Bind ¶
func (inc *VWAP) Bind(updater KLineWindowUpdater)
func (*VWAP) CalculateAndUpdate ¶
func (*VWAP) EmitUpdate ¶
type VWMA ¶
type VWMA struct { types.SeriesBase types.IntervalWindow Values floats.Slice PriceVolumeSMA *SMA VolumeSMA *SMA EndTime time.Time // contains filtered or unexported fields }
func (*VWMA) Bind ¶
func (inc *VWMA) Bind(updater KLineWindowUpdater)
func (*VWMA) CalculateAndUpdate ¶
func (*VWMA) EmitUpdate ¶
type Volatility ¶
type Volatility struct { types.SeriesBase types.IntervalWindow Values floats.Slice EndTime time.Time UpdateCallbacks []func(value float64) }
func (*Volatility) Bind ¶
func (inc *Volatility) Bind(updater KLineWindowUpdater)
func (*Volatility) CalculateAndUpdate ¶
func (inc *Volatility) CalculateAndUpdate(allKLines []types.KLine)
func (*Volatility) EmitUpdate ¶
func (inc *Volatility) EmitUpdate(value float64)
func (*Volatility) Index ¶
func (inc *Volatility) Index(i int) float64
func (*Volatility) Last ¶
func (inc *Volatility) Last(i int) float64
func (*Volatility) Length ¶
func (inc *Volatility) Length() int
func (*Volatility) OnUpdate ¶
func (inc *Volatility) OnUpdate(cb func(value float64))
type VolumeForce ¶
type VolumeForce struct { Value float64 // contains filtered or unexported fields }
Utility to hold the state of calculation
func (*VolumeForce) Update ¶
func (inc *VolumeForce) Update(high, low, cloze, volume float64)
type VolumeProfile ¶
type VolumeProfile struct { types.IntervalWindow Delta float64 // contains filtered or unexported fields }
The Volume Profile is a technical analysis tool that is used to visualize the distribution of trading volume at different price levels in a security. It is typically plotted as a histogram or heatmap on the price chart, with the x-axis representing the price levels and the y-axis representing the trading volume. The Volume Profile can be used to identify areas of support and resistance, as well as potential entry and exit points for trades.
func (*VolumeProfile) PointOfControlAboveEqual ¶
func (inc *VolumeProfile) PointOfControlAboveEqual(price float64, limit ...float64) (resultPrice float64, vol float64)
Get Resistence Level by finding PoC
func (*VolumeProfile) PointOfControlBelowEqual ¶
func (inc *VolumeProfile) PointOfControlBelowEqual(price float64, limit ...float64) (resultPrice float64, vol float64)
Get Support Level by finding PoC
type WWMA ¶
type WWMA struct { types.SeriesBase types.IntervalWindow Values floats.Slice LastOpenTime time.Time UpdateCallbacks []func(value float64) }
func (*WWMA) Bind ¶
func (inc *WWMA) Bind(updater KLineWindowUpdater)
func (*WWMA) CalculateAndUpdate ¶
func (*WWMA) EmitUpdate ¶
type WeightedDrift ¶
type WeightedDrift struct { types.SeriesBase types.IntervalWindow Values floats.Slice MA types.UpdatableSeriesExtend Weight *types.Queue LastValue float64 UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: https://tradingview.com/script/aDymGrFx-Drift-Study-Inspired-by-Monte-Carlo-Simulations-with-BM-KL/ Brownian Motion's drift factor could be used in Monte Carlo Simulations
func (*WeightedDrift) Bind ¶
func (inc *WeightedDrift) Bind(updater KLineWindowUpdater)
func (*WeightedDrift) CalculateAndUpdate ¶
func (inc *WeightedDrift) CalculateAndUpdate(allKLines []types.KLine)
func (*WeightedDrift) Clone ¶
func (inc *WeightedDrift) Clone() (out *WeightedDrift)
func (*WeightedDrift) EmitUpdate ¶
func (inc *WeightedDrift) EmitUpdate(value float64)
func (*WeightedDrift) Index ¶
func (inc *WeightedDrift) Index(i int) float64
func (*WeightedDrift) Last ¶
func (inc *WeightedDrift) Last(i int) float64
func (*WeightedDrift) Length ¶
func (inc *WeightedDrift) Length() int
func (*WeightedDrift) OnUpdate ¶
func (inc *WeightedDrift) OnUpdate(cb func(value float64))
func (*WeightedDrift) PushK ¶
func (inc *WeightedDrift) PushK(k types.KLine)
func (*WeightedDrift) TestUpdate ¶
func (inc *WeightedDrift) TestUpdate(value float64, weight float64) *WeightedDrift
func (*WeightedDrift) Update ¶
func (inc *WeightedDrift) Update(value float64, weight float64)
func (*WeightedDrift) ZeroPoint ¶
func (inc *WeightedDrift) ZeroPoint() float64
Assume that MA is SMA
type ZLEMA ¶
type ZLEMA struct { types.SeriesBase types.IntervalWindow // contains filtered or unexported fields }
func (*ZLEMA) Bind ¶
func (inc *ZLEMA) Bind(updater KLineWindowUpdater)
func (*ZLEMA) CalculateAndUpdate ¶
func (*ZLEMA) EmitUpdate ¶
Source Files ¶
- ad.go
- ad_callbacks.go
- alma.go
- alma_callbacks.go
- atr.go
- atr_callbacks.go
- atrp.go
- atrp_callbacks.go
- boll.go
- boll_callbacks.go
- ca_callbacks.go
- cci.go
- cci_callbacks.go
- cma.go
- const.go
- dema.go
- dema_callbacks.go
- dmi.go
- dmi_callbacks.go
- drift.go
- drift_callbacks.go
- emv.go
- emv_callbacks.go
- ewma.go
- ewma_callbacks.go
- fisher.go
- fishertransform_callbacks.go
- float64series.go
- float64updater.go
- float64updater_callbacks.go
- ghfilter.go
- ghfilter_callbacks.go
- gma.go
- gma_callbacks.go
- hull.go
- hull_callbacks.go
- interface.go
- kalmanfilter.go
- kalmanfilter_callbacks.go
- klinestream.go
- klinestream_callbacks.go
- klingeroscillator.go
- klingeroscillator_callbacks.go
- line.go
- linreg.go
- linreg_callbacks.go
- macd.go
- macdlegacy_callbacks.go
- mapper.go
- obv.go
- obv_callbacks.go
- pivot.go
- pivot_callbacks.go
- pivothigh.go
- pivothigh_callbacks.go
- pivotlow.go
- pivotlow_callbacks.go
- psar.go
- psar_callbacks.go
- rma.go
- rma_callbacks.go
- rsi.go
- rsi_callbacks.go
- sma.go
- sma_callbacks.go
- ssf.go
- ssf_callbacks.go
- stddev.go
- stddev_callbacks.go
- stoch.go
- stoch_callbacks.go
- stochstream_callbacks.go
- supertrend.go
- supertrendPivot.go
- supertrendPivot_callbacks.go
- supertrend_callbacks.go
- tema.go
- tema_callbacks.go
- till.go
- till_callbacks.go
- tma.go
- tma_callbacks.go
- tsi.go
- tsi_callbacks.go
- types.go
- utBotAlert.go
- utBotAlert_callbacks.go
- util.go
- v2.go
- v2_atr.go
- v2_atrp.go
- v2_boll.go
- v2_cma.go
- v2_cross.go
- v2_ewma.go
- v2_macd.go
- v2_multiply.go
- v2_pivothigh.go
- v2_pivotlow.go
- v2_price.go
- v2_rma.go
- v2_rsi.go
- v2_sma.go
- v2_stddev.go
- v2_stoch.go
- v2_subtract.go
- v2_tr.go
- vidya.go
- vidya_callbacks.go
- volatility.go
- volatility_callbacks.go
- volumeprofile.go
- vwap.go
- vwap_callbacks.go
- vwma.go
- vwma_callbacks.go
- wdrift.go
- weighteddrift_callbacks.go
- wwma.go
- wwma_callbacks.go
- zlema.go
- zlema_callbacks.go