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 ¶
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Resistance 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
- 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