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 KLineHighPriceMapper(k types.KLine) float64
- func KLineLowPriceMapper(k types.KLine) float64
- func KLineOpenPriceMapper(k types.KLine) float64
- func KLinePriceVolumeMapper(k types.KLine) float64
- func KLineTypicalPriceMapper(k types.KLine) float64
- func KLineVolumeMapper(k types.KLine) float64
- func MapKLinePrice(kLines []types.KLine, f KLinePriceMapper) (prices []float64)
- type AD
- type ALMA
- 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))
- func (inc *BOLL) Update(kLines []types.KLine)
- type BandType
- type CA
- type CCI
- type DEMA
- type Drift
- type EMV
- type EWMA
- type HULL
- type KLinePriceMapper
- type KLineValueMapper
- type KLineWindowUpdater
- type Line
- type MACD
- type MACDValues
- type OBV
- type Pivot
- func (inc *Pivot) Bind(updater KLineWindowUpdater)
- 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))
- func (inc *Pivot) Update(klines []types.KLine)
- type RMA
- type RSI
- type SMA
- type SSF
- 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 Supertrend
- func (inc *Supertrend) Bind(updater KLineWindowUpdater)
- func (inc *Supertrend) EmitUpdate(value float64)
- func (inc *Supertrend) GetSignal() types.Direction
- func (inc *Supertrend) Index(i int) float64
- func (inc *Supertrend) Last() float64
- func (inc *Supertrend) Length() int
- func (inc *Supertrend) OnUpdate(cb func(value float64))
- func (inc *Supertrend) Update(highPrice, lowPrice, closePrice 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 DefaultEMVScale float64 = 100000000.
const MaxNumOfALMA = 5_000
const MaxNumOfALMATruncateSize = 100
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 KLineHighPriceMapper ¶ added in v1.33.0
func KLineLowPriceMapper ¶ added in v1.33.0
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 ALMA ¶ added in v1.34.0
type ALMA struct { types.IntervalWindow // required Offset float64 // required: recommend to be 5 Sigma int // required: recommend to be 0.5 Weight []float64 Sum float64 Values types.Float64Slice 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 @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) Bind ¶ added in v1.34.0
func (inc *ALMA) Bind(updater KLineWindowUpdater)
func (*ALMA) EmitUpdate ¶ added in v1.34.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 CCI ¶ added in v1.33.0
type CCI struct { types.IntervalWindow Input types.Float64Slice TypicalPrice types.Float64Slice MA types.Float64Slice Values types.Float64Slice UpdateCallbacks []func(value float64) }
Refer: Commodity Channel Index Refer URL: http://www.andrewshamlet.net/2017/07/08/python-tutorial-cci with modification of ddof=0 to let standard deviation to be divided by N instead of N-1
func (*CCI) Bind ¶ added in v1.33.0
func (inc *CCI) Bind(updater KLineWindowUpdater)
func (*CCI) EmitUpdate ¶ added in v1.33.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 Drift ¶ added in v1.33.1
type Drift struct { types.IntervalWindow Values types.Float64Slice SMA *SMA 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 (*Drift) Bind ¶ added in v1.33.1
func (inc *Drift) Bind(updater KLineWindowUpdater)
func (*Drift) EmitUpdate ¶ added in v1.33.1
type EMV ¶ added in v1.33.0
type EMV struct { types.IntervalWindow Values *SMA EMVScale float64 UpdateCallbacks []func(value float64) // contains filtered or unexported fields }
func (*EMV) Bind ¶ added in v1.33.0
func (inc *EMV) Bind(updater KLineWindowUpdater)
func (*EMV) EmitUpdate ¶ added in v1.33.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 KLineValueMapper ¶ added in v1.33.0
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 Pivot ¶ added in v1.33.0
type Pivot struct { types.IntervalWindow // Values Lows types.Float64Slice // higher low Highs types.Float64Slice // 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) EmitUpdate ¶ added in v1.33.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 Cache 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 SSF ¶ added in v1.34.0
type SSF struct { types.IntervalWindow Poles int Values types.Float64Slice 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) Bind ¶ added in v1.34.0
func (inc *SSF) Bind(updater KLineWindowUpdater)
func (*SSF) EmitUpdate ¶ added in v1.34.0
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 Supertrend ¶ added in v1.33.0
type Supertrend struct { 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) 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() float64
func (*Supertrend) Length ¶ added in v1.33.0
func (inc *Supertrend) Length() int
func (*Supertrend) OnUpdate ¶ added in v1.33.0
func (inc *Supertrend) OnUpdate(cb func(value float64))
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.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
- alma.go
- alma_callbacks.go
- atr.go
- atr_callbacks.go
- boll.go
- boll_callbacks.go
- ca_callbacks.go
- cci.go
- cci_callbacks.go
- cma.go
- dema.go
- dema_callbacks.go
- drift.go
- drift_callbacks.go
- emv.go
- emv_callbacks.go
- ewma.go
- ewma_callbacks.go
- hull.go
- hull_callbacks.go
- line.go
- macd.go
- macd_callbacks.go
- obv.go
- obv_callbacks.go
- pivot.go
- pivot_callbacks.go
- rma.go
- rma_callbacks.go
- rsi.go
- rsi_callbacks.go
- sma.go
- sma_callbacks.go
- ssf.go
- ssf_callbacks.go
- stoch.go
- stoch_callbacks.go
- supertrend.go
- supertrend_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