Documentation ¶
Index ¶
- Constants
- func CalculateKLinesEMA(allKLines []types.KLine, priceF KLinePriceMapper, window int) float64
- func CalculateVWAP(klines []types.KLine, priceF KLinePriceMapper, window int) float64
- func KLineClosePriceMapper(k types.KLine) float64
- func KLineOpenPriceMapper(k types.KLine) float64
- func KLinePriceVolumeMapper(k types.KLine) float64
- func KLineTypicalPriceMapper(k types.KLine) float64
- func KLineVolumeMapper(k types.KLine) float64
- func MapKLinePrice(kLines []types.KLine, f KLinePriceMapper) (prices []float64)
- type AD
- type ATR
- type BOLL
- func (inc *BOLL) Bind(updater KLineWindowUpdater)
- func (inc *BOLL) EmitUpdate(sma float64, upBand float64, downBand float64)
- func (inc *BOLL) GetDownBand() types.Series
- func (inc *BOLL) GetSMA() types.Series
- func (inc *BOLL) GetStdDev() types.Series
- func (inc *BOLL) GetUpBand() types.Series
- func (inc *BOLL) LastDownBand() float64
- func (inc *BOLL) LastSMA() float64
- func (inc *BOLL) LastStdDev() float64
- func (inc *BOLL) LastUpBand() float64
- func (inc *BOLL) OnUpdate(cb func(sma float64, upBand float64, downBand float64))
- type BandType
- type CA
- type DEMA
- type EWMA
- type HULL
- type KLinePriceMapper
- type KLineWindowUpdater
- type Line
- type MACD
- type MACDValues
- type OBV
- type RMA
- type RSI
- type SMA
- type STOCH
- func (inc *STOCH) Bind(updater KLineWindowUpdater)
- 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) Update(high, low, cloze float64)
- type TEMA
- type TILL
- type TMA
- type VIDYA
- type VOLATILITY
- type VWAP
- type VWMA
- type WWMA
- type ZLEMA
Constants ¶
const DPeriod int = 3
const MaxNumOfEWMA = 5_000
These numbers should be aligned with bbgo MaxNumOfKLines and MaxNumOfKLinesTruncate
const MaxNumOfEWMATruncateSize = 100
const MaxNumOfSMA = 5_000
const MaxNumOfSMATruncateSize = 100
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
func CalculateKLinesEMA(allKLines []types.KLine, priceF KLinePriceMapper, window int) float64
func CalculateVWAP ¶ added in v1.29.0
func CalculateVWAP(klines []types.KLine, priceF KLinePriceMapper, window int) float64
func KLineClosePriceMapper ¶ added in v1.2.1
func KLineOpenPriceMapper ¶ added in v1.2.1
func KLinePriceVolumeMapper ¶ added in v1.21.0
func KLineTypicalPriceMapper ¶ added in v1.16.0
func KLineVolumeMapper ¶ added in v1.21.0
func MapKLinePrice ¶ added in v1.2.1
func MapKLinePrice(kLines []types.KLine, f KLinePriceMapper) (prices []float64)
Types ¶
type AD ¶ added in v1.16.0
type AD struct { types.IntervalWindow Values types.Float64Slice 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) Bind ¶ added in v1.16.0
func (inc *AD) Bind(updater KLineWindowUpdater)
func (*AD) EmitUpdate ¶ added in v1.16.0
type ATR ¶ added in v1.31.0
type ATR struct { types.IntervalWindow PercentageVolatility types.Float64Slice PreviousClose float64 RMA *RMA EndTime time.Time UpdateCallbacks []func(value float64) }
func (*ATR) Bind ¶ added in v1.31.0
func (inc *ATR) Bind(updater KLineWindowUpdater)
func (*ATR) EmitUpdate ¶ added in v1.31.0
type BOLL ¶
type BOLL struct { types.IntervalWindow // times of Std, generally it's 2 K float64 SMA types.Float64Slice StdDev types.Float64Slice UpBand types.Float64Slice DownBand types.Float64Slice EndTime time.Time // contains filtered or unexported fields }
func (*BOLL) Bind ¶
func (inc *BOLL) Bind(updater KLineWindowUpdater)
func (*BOLL) EmitUpdate ¶
func (*BOLL) GetDownBand ¶ added in v1.30.2
func (*BOLL) LastDownBand ¶
func (*BOLL) LastStdDev ¶
func (*BOLL) LastUpBand ¶
type CA ¶ added in v1.31.0
type CA struct { Interval types.Interval Values types.Float64Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: Cumulative Moving Average, Cumulative Average Refer: https://en.wikipedia.org/wiki/Moving_average
func (*CA) Bind ¶ added in v1.31.0
func (inc *CA) Bind(updater KLineWindowUpdater)
func (*CA) EmitUpdate ¶ added in v1.31.0
type DEMA ¶ added in v1.31.0
type DEMA struct { types.IntervalWindow Values types.Float64Slice 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) EmitUpdate ¶ added in v1.31.0
type EWMA ¶
type EWMA struct { types.IntervalWindow Values types.Float64Slice LastOpenTime time.Time UpdateCallbacks []func(value float64) }
func (*EWMA) Bind ¶
func (inc *EWMA) Bind(updater KLineWindowUpdater)
func (*EWMA) EmitUpdate ¶ added in v1.2.1
type HULL ¶ added in v1.31.0
type HULL struct { types.IntervalWindow UpdateCallbacks []func(value float64) // 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
func (*HULL) Bind ¶ added in v1.31.0
func (inc *HULL) Bind(updater KLineWindowUpdater)
func (*HULL) EmitUpdate ¶ added in v1.31.0
type KLinePriceMapper ¶ added in v1.2.1
type KLineWindowUpdater ¶
type KLineWindowUpdater interface {
OnKLineWindowUpdate(func(interval types.Interval, window types.KLineWindow))
}
type Line ¶ added in v1.30.2
type Line struct { 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 MACD ¶ added in v1.16.0
type MACD struct { types.IntervalWindow // 9 ShortPeriod int // 12 LongPeriod int // 26 Values types.Float64Slice FastEWMA EWMA SlowEWMA EWMA SignalLine EWMA Histogram types.Float64Slice EndTime time.Time UpdateCallbacks []func(value float64) }
func (*MACD) Bind ¶ added in v1.16.0
func (inc *MACD) Bind(updater KLineWindowUpdater)
func (*MACD) EmitUpdate ¶ added in v1.16.0
type MACDValues ¶ added in v1.30.2
type MACDValues struct {
*MACD
}
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() 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.IntervalWindow Values types.Float64Slice PrePrice float64 EndTime time.Time UpdateCallbacks []func(value float64) }
obv implements on-balance volume indicator
On-Balance Volume (OBV) Definition - https://www.investopedia.com/terms/o/onbalancevolume.asp
func (*OBV) Bind ¶ added in v1.16.0
func (inc *OBV) Bind(updater KLineWindowUpdater)
func (*OBV) EmitUpdate ¶ added in v1.16.0
type RMA ¶ added in v1.31.0
type RMA struct { types.IntervalWindow Values types.Float64Slice Sources types.Float64Slice EndTime time.Time UpdateCallbacks []func(value float64) }
Refer: Running Moving Average
func (*RMA) Bind ¶ added in v1.31.0
func (inc *RMA) Bind(updater KLineWindowUpdater)
func (*RMA) EmitUpdate ¶ added in v1.31.0
type RSI ¶ added in v1.29.0
type RSI struct { types.IntervalWindow Values types.Float64Slice Prices types.Float64Slice PreviousAvgLoss float64 PreviousAvgGain float64 EndTime time.Time UpdateCallbacks []func(value float64) }
rsi implements Relative Strength Index (RSI)
https://www.investopedia.com/terms/r/rsi.asp
func (*RSI) Bind ¶ added in v1.29.0
func (inc *RSI) Bind(updater KLineWindowUpdater)
func (*RSI) EmitUpdate ¶ added in v1.29.0
type SMA ¶
type SMA struct { types.IntervalWindow Values types.Float64Slice EndTime time.Time UpdateCallbacks []func(value float64) }
func (*SMA) Bind ¶
func (inc *SMA) Bind(updater KLineWindowUpdater)
func (*SMA) EmitUpdate ¶ added in v1.2.1
type STOCH ¶ added in v1.17.0
type STOCH struct { types.IntervalWindow K types.Float64Slice D types.Float64Slice HighValues types.Float64Slice LowValues types.Float64Slice EndTime time.Time UpdateCallbacks []func(k float64, d float64) }
stoch implements stochastic oscillator indicator
Stochastic Oscillator - https://www.investopedia.com/terms/s/stochasticoscillator.asp
func (*STOCH) Bind ¶ added in v1.17.0
func (inc *STOCH) Bind(updater KLineWindowUpdater)
func (*STOCH) EmitUpdate ¶ added in v1.17.0
type TEMA ¶ added in v1.31.0
type TEMA struct { types.IntervalWindow Values types.Float64Slice 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) EmitUpdate ¶ added in v1.31.0
type TILL ¶ added in v1.31.0
type TILL struct { types.IntervalWindow VolumeFactor float64 UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: Tillson T3 Moving Average Refer URL: https://tradingpedia.com/forex-trading-indicator/t3-moving-average-indicator/
func (*TILL) Bind ¶ added in v1.31.0
func (inc *TILL) Bind(updater KLineWindowUpdater)
func (*TILL) EmitUpdate ¶ added in v1.31.0
type TMA ¶ added in v1.31.0
type TMA struct { types.IntervalWindow UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: Triangular Moving Average Refer URL: https://ja.wikipedia.org/wiki/移動平均
func (*TMA) Bind ¶ added in v1.31.0
func (inc *TMA) Bind(updater KLineWindowUpdater)
func (*TMA) EmitUpdate ¶ added in v1.31.0
type VIDYA ¶ added in v1.31.0
type VIDYA struct { types.IntervalWindow Values types.Float64Slice UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
Refer: Variable Index Dynamic Average Refer URL: https://metatrader5.com/en/terminal/help/indicators/trend_indicators/vida
func (*VIDYA) Bind ¶ added in v1.31.0
func (inc *VIDYA) Bind(updater KLineWindowUpdater)
func (*VIDYA) EmitUpdate ¶ added in v1.31.0
type VOLATILITY ¶ added in v1.21.0
type VOLATILITY struct { types.IntervalWindow Values types.Float64Slice EndTime time.Time UpdateCallbacks []func(value float64) }
func (*VOLATILITY) Bind ¶ added in v1.21.0
func (inc *VOLATILITY) Bind(updater KLineWindowUpdater)
func (*VOLATILITY) EmitUpdate ¶ added in v1.21.0
func (inc *VOLATILITY) EmitUpdate(value float64)
func (*VOLATILITY) Last ¶ added in v1.21.0
func (inc *VOLATILITY) Last() float64
func (*VOLATILITY) OnUpdate ¶ added in v1.21.0
func (inc *VOLATILITY) OnUpdate(cb func(value float64))
type VWAP ¶ added in v1.16.0
type VWAP struct { types.IntervalWindow Values types.Float64Slice Prices types.Float64Slice Volumes types.Float64Slice WeightedSum float64 VolumeSum float64 EndTime time.Time UpdateCallbacks []func(value float64) }
vwap implements the volume weighted average price (VWAP) indicator:
Volume Weighted Average Price (VWAP) Definition - https://www.investopedia.com/terms/v/vwap.asp
Volume-Weighted Average Price (VWAP) Explained - https://academy.binance.com/en/articles/volume-weighted-average-price-vwap-explained
func (*VWAP) Bind ¶ added in v1.16.0
func (inc *VWAP) Bind(updater KLineWindowUpdater)
func (*VWAP) EmitUpdate ¶ added in v1.16.0
type VWMA ¶ added in v1.21.0
type VWMA struct { types.IntervalWindow Values types.Float64Slice EndTime time.Time UpdateCallbacks []func(value float64) }
vwma implements the volume weighted moving average (VWMA) indicator:
Calculation:
pv = element-wise multiplication of close prices and volumes VWMA = SMA(pv, window) / SMA(volumes, window)
Volume Weighted Moving Average - https://www.motivewave.com/studies/volume_weighted_moving_average.htm
func (*VWMA) Bind ¶ added in v1.21.0
func (inc *VWMA) Bind(updater KLineWindowUpdater)
func (*VWMA) EmitUpdate ¶ added in v1.21.0
type WWMA ¶ added in v1.31.0
type WWMA struct { types.IntervalWindow Values types.Float64Slice LastOpenTime time.Time UpdateCallbacks []func(value float64) }
func (*WWMA) Bind ¶ added in v1.31.0
func (inc *WWMA) Bind(updater KLineWindowUpdater)
func (*WWMA) EmitUpdate ¶ added in v1.31.0
type ZLEMA ¶ added in v1.31.0
type ZLEMA struct { types.IntervalWindow UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*ZLEMA) Bind ¶ added in v1.31.0
func (inc *ZLEMA) Bind(updater KLineWindowUpdater)
func (*ZLEMA) EmitUpdate ¶ added in v1.31.0
Source Files ¶
- ad.go
- ad_callbacks.go
- atr.go
- atr_callbacks.go
- boll.go
- boll_callbacks.go
- ca_callbacks.go
- cma.go
- dema.go
- dema_callbacks.go
- ewma.go
- ewma_callbacks.go
- hull.go
- hull_callbacks.go
- line.go
- macd.go
- macd_callbacks.go
- obv.go
- obv_callbacks.go
- rma.go
- rma_callbacks.go
- rsi.go
- rsi_callbacks.go
- sma.go
- sma_callbacks.go
- stoch.go
- stoch_callbacks.go
- tema.go
- tema_callbacks.go
- till.go
- till_callbacks.go
- tma.go
- tma_callbacks.go
- util.go
- vidya.go
- vidya_callbacks.go
- volatility.go
- volatility_callbacks.go
- vwap.go
- vwap_callbacks.go
- vwma.go
- vwma_callbacks.go
- wwma.go
- wwma_callbacks.go
- zlema.go
- zlema_callbacks.go