Documentation
¶
Index ¶
- Constants
- func CalculateKLinesEMA(allKLines []types.KLine, priceF types.KLineValueMapper, window int) float64
- func Min(x, y int) int
- 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 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 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 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 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 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 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 MACDValues
- 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 PivotLow
- 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 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 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 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 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 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 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 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 ¶ added in v1.3.1
Types ¶
type AD ¶ added in v1.16.0
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 ¶ added in v1.37.0
func (*AD) EmitUpdate ¶ added in v1.16.0
type ALMA ¶ added in v1.34.0
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 ¶ added in v1.37.0
func (*ALMA) EmitUpdate ¶ added in v1.34.0
type ATR ¶ added in v1.31.0
type ATR struct {
types.SeriesBase
types.IntervalWindow
PercentageVolatility floats.Slice
PreviousClose float64
RMA *RMA
EndTime time.Time
UpdateCallbacks []func(value float64)
}
func (*ATR) EmitUpdate ¶ added in v1.31.0
func (*ATR) TestUpdate ¶ added in v1.38.0
type ATRP ¶ added in v1.37.0
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 ¶ added in v1.37.0
func (inc *ATRP) Bind(updater KLineWindowUpdater)
func (*ATRP) CalculateAndUpdate ¶ added in v1.37.0
func (*ATRP) EmitUpdate ¶ added in v1.37.0
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 ¶ added in v1.38.0
func (inc *BOLL) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*BOLL) CalculateAndUpdate ¶ added in v1.37.0
func (*BOLL) EmitUpdate ¶
func (*BOLL) GetDownBand ¶ added in v1.30.2
func (inc *BOLL) GetDownBand() types.SeriesExtend
func (*BOLL) GetSMA ¶ added in v1.30.2
func (inc *BOLL) GetSMA() types.SeriesExtend
func (*BOLL) GetStdDev ¶ added in v1.30.2
func (inc *BOLL) GetStdDev() types.SeriesExtend
func (*BOLL) GetUpBand ¶ added in v1.30.2
func (inc *BOLL) GetUpBand() types.SeriesExtend
func (*BOLL) LastDownBand ¶
func (*BOLL) LastUpBand ¶
type CA ¶ added in v1.31.0
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 ¶ added in v1.37.0
func (*CA) EmitUpdate ¶ added in v1.31.0
type CCI ¶ added in v1.33.0
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 ¶ added in v1.37.0
func (*CCI) EmitUpdate ¶ added in v1.33.0
type DEMA ¶ added in v1.31.0
type DEMA struct {
types.IntervalWindow
types.SeriesBase
Values floats.Slice
UpdateCallbacks []func(value float64)
// contains filtered or unexported fields
}
func (*DEMA) Bind ¶ added in v1.31.0
func (inc *DEMA) Bind(updater KLineWindowUpdater)
func (*DEMA) CalculateAndUpdate ¶ added in v1.37.0
func (*DEMA) EmitUpdate ¶ added in v1.31.0
func (*DEMA) TestUpdate ¶ added in v1.38.0
type DMI ¶ added in v1.35.0
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 ¶ added in v1.37.0
func (*DMI) EmitUpdate ¶ added in v1.35.0
func (*DMI) GetADX ¶ added in v1.35.0
func (inc *DMI) GetADX() types.SeriesExtend
func (*DMI) GetDIMinus ¶ added in v1.35.0
func (inc *DMI) GetDIMinus() types.SeriesExtend
func (*DMI) GetDIPlus ¶ added in v1.35.0
func (inc *DMI) GetDIPlus() types.SeriesExtend
type Drift ¶ added in v1.33.1
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 ¶ added in v1.33.1
func (inc *Drift) Bind(updater KLineWindowUpdater)
func (*Drift) CalculateAndUpdate ¶ added in v1.37.0
func (*Drift) EmitUpdate ¶ added in v1.33.1
func (*Drift) TestUpdate ¶ added in v1.38.0
type EMV ¶ added in v1.33.0
type EMV struct {
types.SeriesBase
types.IntervalWindow
Values *SMA
EMVScale float64
UpdateCallbacks []func(value float64)
// contains filtered or unexported fields
}
func (*EMV) EmitUpdate ¶ added in v1.33.0
type EWMA ¶
type EWMA struct {
types.IntervalWindow
types.SeriesBase
Values floats.Slice
EndTime time.Time
// contains filtered or unexported fields
}
func (*EWMA) EmitUpdate ¶ added in v1.2.1
func (*EWMA) TestUpdate ¶ added in v1.38.0
type FisherTransform ¶ added in v1.38.0
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 ¶ added in v1.38.0
func (inc *FisherTransform) Clone() types.UpdatableSeriesExtend
func (*FisherTransform) EmitUpdate ¶ added in v1.38.0
func (inc *FisherTransform) EmitUpdate(value float64)
func (*FisherTransform) Index ¶ added in v1.38.0
func (inc *FisherTransform) Index(i int) float64
func (*FisherTransform) Last ¶ added in v1.38.0
func (inc *FisherTransform) Last(i int) float64
func (*FisherTransform) Length ¶ added in v1.38.0
func (inc *FisherTransform) Length() int
func (*FisherTransform) OnUpdate ¶ added in v1.38.0
func (inc *FisherTransform) OnUpdate(cb func(value float64))
func (*FisherTransform) Update ¶ added in v1.38.0
func (inc *FisherTransform) Update(value float64)
type GHFilter ¶ added in v1.40.2
type GHFilter struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
UpdateCallbacks []func(value float64)
// contains filtered or unexported fields
}
func (*GHFilter) EmitUpdate ¶ added in v1.40.2
type GMA ¶ added in v1.40.0
type GMA struct {
types.SeriesBase
types.IntervalWindow
SMA *SMA
UpdateCallbacks []func(value float64)
}
func (*GMA) BindK ¶ added in v1.40.0
func (inc *GMA) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*GMA) EmitUpdate ¶ added in v1.40.0
func (*GMA) TestUpdate ¶ added in v1.40.0
type HULL ¶ added in v1.31.0
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 ¶ added in v1.31.0
type KLineCalculateUpdater ¶ added in v1.37.0
type KLineClosedBinder ¶ added in v1.37.0
type KLineClosedBinder interface {
BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
}
type KLineClosedEmitter ¶ added in v1.37.0
KLineClosedEmitter is currently applied to the market data stream the market data stream emits the KLine closed event to the listeners.
type KLinePusher ¶ added in v1.37.0
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 KLineWindowUpdater ¶
type KLineWindowUpdater interface {
OnKLineWindowUpdate(func(interval types.Interval, window types.KLineWindow))
}
type KalmanFilter ¶ added in v1.40.2
type KalmanFilter struct {
types.SeriesBase
types.IntervalWindow
AdditionalSmoothWindow uint
Values floats.Slice
UpdateCallbacks []func(value float64)
// contains filtered or unexported fields
}
func (*KalmanFilter) EmitUpdate ¶ added in v1.40.2
func (inc *KalmanFilter) EmitUpdate(value float64)
func (*KalmanFilter) Index ¶ added in v1.40.2
func (inc *KalmanFilter) Index(i int) float64
func (*KalmanFilter) Last ¶ added in v1.40.2
func (inc *KalmanFilter) Last(i int) float64
func (*KalmanFilter) Length ¶ added in v1.40.2
func (inc *KalmanFilter) Length() int
func (*KalmanFilter) OnUpdate ¶ added in v1.40.2
func (inc *KalmanFilter) OnUpdate(cb func(value float64))
func (*KalmanFilter) PushK ¶ added in v1.40.2
func (inc *KalmanFilter) PushK(k types.KLine)
func (*KalmanFilter) Update ¶ added in v1.40.2
func (inc *KalmanFilter) Update(value float64)
type KlingerOscillator ¶ added in v1.44.0
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 ¶ added in v1.44.0
func (inc *KlingerOscillator) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*KlingerOscillator) EmitUpdate ¶ added in v1.44.0
func (inc *KlingerOscillator) EmitUpdate(value float64)
func (*KlingerOscillator) Last ¶ added in v1.44.0
func (inc *KlingerOscillator) Last(i int) float64
func (*KlingerOscillator) Length ¶ added in v1.44.0
func (inc *KlingerOscillator) Length() int
func (*KlingerOscillator) OnUpdate ¶ added in v1.44.0
func (inc *KlingerOscillator) OnUpdate(cb func(value float64))
func (*KlingerOscillator) PushK ¶ added in v1.44.0
func (inc *KlingerOscillator) PushK(k types.KLine)
func (*KlingerOscillator) Update ¶ added in v1.44.0
func (inc *KlingerOscillator) Update(high, low, cloze, volume float64)
type LinReg ¶ added in v1.43.0
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 ¶ added in v1.43.0
func (lr *LinReg) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*LinReg) EmitUpdate ¶ added in v1.43.0
func (*LinReg) IndexRatio ¶ added in v1.43.0
IndexRatio returns the slope ratio
func (*LinReg) LengthRatio ¶ added in v1.43.0
LengthRatio of the slope ratio values
type Line ¶ added in v1.30.2
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 ¶ added in v1.30.2
func (l *Line) Bind(updater KLineWindowUpdater)
type MACDConfig ¶ added in v1.41.0
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 ¶ added in v1.48.0
type MACDLegacy struct {
MACDConfig
Values floats.Slice `json:"-"`
Histogram floats.Slice `json:"-"`
EndTime time.Time
// contains filtered or unexported fields
}
func (*MACDLegacy) EmitUpdate ¶ added in v1.48.0
func (inc *MACDLegacy) EmitUpdate(macd float64, signal float64, histogram float64)
func (*MACDLegacy) Last ¶ added in v1.48.0
func (inc *MACDLegacy) Last(i int) float64
func (*MACDLegacy) Length ¶ added in v1.48.0
func (inc *MACDLegacy) Length() int
func (*MACDLegacy) MACD ¶ added in v1.48.0
func (inc *MACDLegacy) MACD() types.SeriesExtend
func (*MACDLegacy) OnUpdate ¶ added in v1.48.0
func (inc *MACDLegacy) OnUpdate(cb func(macd float64, signal float64, histogram float64))
func (*MACDLegacy) PushK ¶ added in v1.48.0
func (inc *MACDLegacy) PushK(k types.KLine)
func (*MACDLegacy) Singals ¶ added in v1.48.0
func (inc *MACDLegacy) Singals() types.SeriesExtend
func (*MACDLegacy) Update ¶ added in v1.48.0
func (inc *MACDLegacy) Update(x float64)
type MACDValues ¶ added in v1.30.2
type MACDValues struct {
types.SeriesBase
*MACDLegacy
}
func (*MACDValues) Index ¶ added in v1.30.2
func (inc *MACDValues) Index(i int) float64
func (*MACDValues) Last ¶ added in v1.30.2
func (inc *MACDValues) Last(i int) float64
func (*MACDValues) Length ¶ added in v1.30.2
func (inc *MACDValues) Length() int
type OBV ¶ added in v1.16.0
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 ¶ added in v1.16.0
func (inc *OBV) Bind(updater KLineWindowUpdater)
func (*OBV) CalculateAndUpdate ¶ added in v1.37.0
func (*OBV) EmitUpdate ¶ added in v1.16.0
type PSAR ¶ added in v1.44.0
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 ¶ added in v1.44.0
func (inc *PSAR) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*PSAR) EmitUpdate ¶ added in v1.44.0
type Pivot ¶ added in v1.33.0
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 ¶ added in v1.33.0
func (inc *Pivot) Bind(updater KLineWindowUpdater)
func (*Pivot) CalculateAndUpdate ¶ added in v1.37.0
func (*Pivot) EmitUpdate ¶ added in v1.33.0
type PivotHigh ¶ added in v1.40.0
type PivotHigh struct {
types.SeriesBase
types.IntervalWindow
Highs floats.Slice
Values floats.Slice
EndTime time.Time
// contains filtered or unexported fields
}
func (*PivotHigh) EmitUpdate ¶ added in v1.40.0
type PivotLow ¶ added in v1.38.0
type PivotLow struct {
types.SeriesBase
types.IntervalWindow
Lows floats.Slice
Values floats.Slice
EndTime time.Time
// contains filtered or unexported fields
}
func (*PivotLow) EmitUpdate ¶ added in v1.38.0
type PivotSupertrend ¶ added in v1.44.0
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 ¶ added in v1.44.0
func (inc *PivotSupertrend) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*PivotSupertrend) Direction ¶ added in v1.44.0
func (inc *PivotSupertrend) Direction() types.Direction
GetDirection return the current trend
func (*PivotSupertrend) EmitUpdate ¶ added in v1.44.0
func (inc *PivotSupertrend) EmitUpdate(value float64)
func (*PivotSupertrend) GetSignal ¶ added in v1.44.0
func (inc *PivotSupertrend) GetSignal() types.Direction
GetSignal returns signal (Down, None or Up)
func (*PivotSupertrend) Index ¶ added in v1.44.0
func (inc *PivotSupertrend) Index(i int) float64
func (*PivotSupertrend) Last ¶ added in v1.44.0
func (inc *PivotSupertrend) Last(i int) float64
func (*PivotSupertrend) LastSupertrendResistance ¶ added in v1.44.0
func (inc *PivotSupertrend) LastSupertrendResistance() float64
LastSupertrendResistance return the current supertrend resistance value
func (*PivotSupertrend) LastSupertrendSupport ¶ added in v1.44.0
func (inc *PivotSupertrend) LastSupertrendSupport() float64
LastSupertrendSupport return the current supertrend support value
func (*PivotSupertrend) Length ¶ added in v1.44.0
func (inc *PivotSupertrend) Length() int
func (*PivotSupertrend) LoadK ¶ added in v1.44.0
func (inc *PivotSupertrend) LoadK(allKLines []types.KLine)
func (*PivotSupertrend) OnUpdate ¶ added in v1.44.0
func (inc *PivotSupertrend) OnUpdate(cb func(value float64))
func (*PivotSupertrend) PushK ¶ added in v1.44.0
func (inc *PivotSupertrend) PushK(k types.KLine)
func (*PivotSupertrend) Update ¶ added in v1.44.0
func (inc *PivotSupertrend) Update(highPrice, lowPrice, closePrice float64)
type RMA ¶ added in v1.31.0
type RMA struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
EndTime time.Time
Adjust bool
// contains filtered or unexported fields
}
func (*RMA) Bind ¶ added in v1.31.0
func (inc *RMA) Bind(updater KLineWindowUpdater)
func (*RMA) CalculateAndUpdate ¶ added in v1.37.0
func (*RMA) Clone ¶ added in v1.38.0
func (inc *RMA) Clone() types.UpdatableSeriesExtend
func (*RMA) EmitUpdate ¶ added in v1.31.0
type RSI ¶ added in v1.29.0
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 ¶ added in v1.29.0
func (inc *RSI) Bind(updater KLineWindowUpdater)
func (*RSI) CalculateAndUpdate ¶ added in v1.37.0
func (*RSI) EmitUpdate ¶ added in v1.29.0
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 ¶ added in v1.37.0
func (inc *SMA) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*SMA) Clone ¶ added in v1.38.0
func (inc *SMA) Clone() types.UpdatableSeriesExtend
func (*SMA) EmitUpdate ¶ added in v1.2.1
type SSF ¶ added in v1.34.0
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 ¶ added in v1.37.0
func (*SSF) EmitUpdate ¶ added in v1.34.0
type STOCH ¶ added in v1.17.0
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 ¶ added in v1.17.0
type Simple ¶ added in v1.38.0
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 ¶ added in v1.37.0
type StdDev struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
EndTime time.Time
// contains filtered or unexported fields
}
func (*StdDev) EmitUpdate ¶ added in v1.37.0
type Supertrend ¶ added in v1.33.0
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 ¶ added in v1.33.0
func (inc *Supertrend) Bind(updater KLineWindowUpdater)
func (*Supertrend) BindK ¶ added in v1.39.0
func (inc *Supertrend) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*Supertrend) CalculateAndUpdate ¶ added in v1.37.0
func (inc *Supertrend) CalculateAndUpdate(kLines []types.KLine)
func (*Supertrend) Direction ¶ added in v1.44.0
func (inc *Supertrend) Direction() types.Direction
GetDirection return the current trend
func (*Supertrend) EmitUpdate ¶ added in v1.33.0
func (inc *Supertrend) EmitUpdate(value float64)
func (*Supertrend) GetSignal ¶ added in v1.33.0
func (inc *Supertrend) GetSignal() types.Direction
func (*Supertrend) Index ¶ added in v1.33.0
func (inc *Supertrend) Index(i int) float64
func (*Supertrend) Last ¶ added in v1.33.0
func (inc *Supertrend) Last(i int) float64
func (*Supertrend) LastSupertrendResistance ¶ added in v1.44.0
func (inc *Supertrend) LastSupertrendResistance() float64
LastSupertrendResistance return the current supertrend resistance
func (*Supertrend) LastSupertrendSupport ¶ added in v1.44.0
func (inc *Supertrend) LastSupertrendSupport() float64
LastSupertrendSupport return the current supertrend support
func (*Supertrend) Length ¶ added in v1.33.0
func (inc *Supertrend) Length() int
func (*Supertrend) LoadK ¶ added in v1.39.0
func (inc *Supertrend) LoadK(allKLines []types.KLine)
func (*Supertrend) OnUpdate ¶ added in v1.33.0
func (inc *Supertrend) OnUpdate(cb func(value float64))
func (*Supertrend) PushK ¶ added in v1.37.0
func (inc *Supertrend) PushK(k types.KLine)
func (*Supertrend) Update ¶ added in v1.33.0
func (inc *Supertrend) Update(highPrice, lowPrice, closePrice float64)
type TEMA ¶ added in v1.31.0
type TEMA struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
A1 *EWMA
A2 *EWMA
A3 *EWMA
UpdateCallbacks []func(value float64)
}
func (*TEMA) Bind ¶ added in v1.31.0
func (inc *TEMA) Bind(updater KLineWindowUpdater)
func (*TEMA) CalculateAndUpdate ¶ added in v1.37.0
func (*TEMA) EmitUpdate ¶ added in v1.31.0
type TILL ¶ added in v1.31.0
type TILL struct {
types.SeriesBase
types.IntervalWindow
VolumeFactor float64
// contains filtered or unexported fields
}
func (*TILL) Bind ¶ added in v1.31.0
func (inc *TILL) Bind(updater KLineWindowUpdater)
func (*TILL) BindK ¶ added in v1.38.0
func (inc *TILL) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*TILL) CalculateAndUpdate ¶ added in v1.37.0
func (*TILL) EmitUpdate ¶ added in v1.31.0
type TMA ¶ added in v1.31.0
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 ¶ added in v1.31.0
type TSI ¶ added in v1.44.0
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 ¶ added in v1.44.0
func (inc *TSI) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*TSI) EmitUpdate ¶ added in v1.44.0
type UtBotAlert ¶ added in v1.44.0
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 ¶ added in v1.44.0
func NewUtBotAlert(iw types.IntervalWindow, keyValue float64) *UtBotAlert
func (*UtBotAlert) BindK ¶ added in v1.44.0
func (inc *UtBotAlert) BindK(target KLineClosedEmitter, symbol string, interval types.Interval)
func (*UtBotAlert) EmitUpdate ¶ added in v1.44.0
func (inc *UtBotAlert) EmitUpdate(value types.Direction)
func (*UtBotAlert) GetSignal ¶ added in v1.44.0
func (inc *UtBotAlert) GetSignal() types.Direction
GetSignal returns signal (down, none or up)
func (*UtBotAlert) Last ¶ added in v1.44.0
func (inc *UtBotAlert) Last() types.Direction
func (*UtBotAlert) Length ¶ added in v1.44.0
func (inc *UtBotAlert) Length() int
func (*UtBotAlert) LoadK ¶ added in v1.44.0
func (inc *UtBotAlert) LoadK(allKLines []types.KLine)
LoadK calculates the initial values
func (*UtBotAlert) OnUpdate ¶ added in v1.44.0
func (inc *UtBotAlert) OnUpdate(cb func(value types.Direction))
func (*UtBotAlert) PushK ¶ added in v1.44.0
func (inc *UtBotAlert) PushK(k types.KLine)
func (*UtBotAlert) Update ¶ added in v1.44.0
func (inc *UtBotAlert) Update(highPrice, lowPrice, closePrice float64)
type VIDYA ¶ added in v1.31.0
type VIDYA struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
// contains filtered or unexported fields
}
func (*VIDYA) Bind ¶ added in v1.31.0
func (inc *VIDYA) Bind(updater KLineWindowUpdater)
func (*VIDYA) CalculateAndUpdate ¶ added in v1.37.0
func (*VIDYA) EmitUpdate ¶ added in v1.31.0
type VWAP ¶ added in v1.16.0
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 ¶ added in v1.16.0
func (inc *VWAP) Bind(updater KLineWindowUpdater)
func (*VWAP) CalculateAndUpdate ¶ added in v1.37.0
func (*VWAP) EmitUpdate ¶ added in v1.16.0
type VWMA ¶ added in v1.21.0
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 ¶ added in v1.21.0
func (inc *VWMA) Bind(updater KLineWindowUpdater)
func (*VWMA) CalculateAndUpdate ¶ added in v1.37.0
func (*VWMA) EmitUpdate ¶ added in v1.21.0
type Volatility ¶ added in v1.37.0
type Volatility struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
EndTime time.Time
UpdateCallbacks []func(value float64)
}
func (*Volatility) Bind ¶ added in v1.37.0
func (inc *Volatility) Bind(updater KLineWindowUpdater)
func (*Volatility) CalculateAndUpdate ¶ added in v1.37.0
func (inc *Volatility) CalculateAndUpdate(allKLines []types.KLine)
func (*Volatility) EmitUpdate ¶ added in v1.37.0
func (inc *Volatility) EmitUpdate(value float64)
func (*Volatility) Index ¶ added in v1.37.0
func (inc *Volatility) Index(i int) float64
func (*Volatility) Last ¶ added in v1.37.0
func (inc *Volatility) Last(i int) float64
func (*Volatility) Length ¶ added in v1.37.0
func (inc *Volatility) Length() int
func (*Volatility) OnUpdate ¶ added in v1.37.0
func (inc *Volatility) OnUpdate(cb func(value float64))
type VolumeForce ¶ added in v1.44.0
type VolumeForce struct {
Value float64
// contains filtered or unexported fields
}
Utility to hold the state of calculation
func (*VolumeForce) Update ¶ added in v1.44.0
func (inc *VolumeForce) Update(high, low, cloze, volume float64)
type VolumeProfile ¶ added in v1.44.0
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 ¶ added in v1.44.0
func (inc *VolumeProfile) PointOfControlAboveEqual(price float64, limit ...float64) (resultPrice float64, vol float64)
Get Resistance Level by finding PoC
func (*VolumeProfile) PointOfControlBelowEqual ¶ added in v1.44.0
func (inc *VolumeProfile) PointOfControlBelowEqual(price float64, limit ...float64) (resultPrice float64, vol float64)
Get Support Level by finding PoC
type WWMA ¶ added in v1.31.0
type WWMA struct {
types.SeriesBase
types.IntervalWindow
Values floats.Slice
LastOpenTime time.Time
UpdateCallbacks []func(value float64)
}
func (*WWMA) Bind ¶ added in v1.31.0
func (inc *WWMA) Bind(updater KLineWindowUpdater)
func (*WWMA) CalculateAndUpdate ¶ added in v1.37.0
func (*WWMA) EmitUpdate ¶ added in v1.31.0
type WeightedDrift ¶ added in v1.40.0
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 ¶ added in v1.40.0
func (inc *WeightedDrift) Bind(updater KLineWindowUpdater)
func (*WeightedDrift) CalculateAndUpdate ¶ added in v1.40.0
func (inc *WeightedDrift) CalculateAndUpdate(allKLines []types.KLine)
func (*WeightedDrift) Clone ¶ added in v1.40.0
func (inc *WeightedDrift) Clone() (out *WeightedDrift)
func (*WeightedDrift) EmitUpdate ¶ added in v1.40.0
func (inc *WeightedDrift) EmitUpdate(value float64)
func (*WeightedDrift) Index ¶ added in v1.40.0
func (inc *WeightedDrift) Index(i int) float64
func (*WeightedDrift) Last ¶ added in v1.40.0
func (inc *WeightedDrift) Last(i int) float64
func (*WeightedDrift) Length ¶ added in v1.40.0
func (inc *WeightedDrift) Length() int
func (*WeightedDrift) OnUpdate ¶ added in v1.40.0
func (inc *WeightedDrift) OnUpdate(cb func(value float64))
func (*WeightedDrift) PushK ¶ added in v1.40.0
func (inc *WeightedDrift) PushK(k types.KLine)
func (*WeightedDrift) TestUpdate ¶ added in v1.40.0
func (inc *WeightedDrift) TestUpdate(value float64, weight float64) *WeightedDrift
func (*WeightedDrift) Update ¶ added in v1.40.0
func (inc *WeightedDrift) Update(value float64, weight float64)
func (*WeightedDrift) ZeroPoint ¶ added in v1.40.0
func (inc *WeightedDrift) ZeroPoint() float64
Assume that MA is SMA
type ZLEMA ¶ added in v1.31.0
type ZLEMA struct {
types.SeriesBase
types.IntervalWindow
// contains filtered or unexported fields
}
func (*ZLEMA) Bind ¶ added in v1.31.0
func (inc *ZLEMA) Bind(updater KLineWindowUpdater)
func (*ZLEMA) CalculateAndUpdate ¶ added in v1.37.0
func (*ZLEMA) EmitUpdate ¶ added in v1.31.0
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
- ghfilter.go
- ghfilter_callbacks.go
- gma.go
- gma_callbacks.go
- hull.go
- hull_callbacks.go
- interface.go
- kalmanfilter.go
- kalmanfilter_callbacks.go
- klingeroscillator.go
- klingeroscillator_callbacks.go
- line.go
- linreg.go
- linreg_callbacks.go
- macd.go
- macdlegacy_callbacks.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
- 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
- utBotAlert.go
- utBotAlert_callbacks.go
- util.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