indicator

package
v1.22.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2021 License: MIT Imports: 6 Imported by: 28

Documentation

Index

Constants

View Source
const DPeriod int = 3
View Source
const MaxNumOfEWMA = 5_000

These numbers should be aligned with bbgo MaxNumOfKLines and MaxNumOfKLinesTruncate

View Source
const MaxNumOfEWMATruncateSize = 100
View Source
const MaxNumOfSMA = 5_000
View Source
const MaxNumOfSMATruncateSize = 100
View Source
const MaxNumOfVOL = 5_000
View Source
const MaxNumOfVOLTruncateSize = 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 KLineClosePriceMapper added in v1.2.1

func KLineClosePriceMapper(k types.KLine) float64

func KLineOpenPriceMapper added in v1.2.1

func KLineOpenPriceMapper(k types.KLine) float64

func KLinePriceVolumeMapper added in v1.21.0

func KLinePriceVolumeMapper(k types.KLine) float64

func KLineTypicalPriceMapper added in v1.16.0

func KLineTypicalPriceMapper(k types.KLine) float64

func KLineVolumeMapper added in v1.21.0

func KLineVolumeMapper(k types.KLine) float64

func MapKLinePrice added in v1.2.1

func MapKLinePrice(kLines []types.KLine, f KLinePriceMapper) (prices []float64)

Types

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

func (inc *AD) EmitUpdate(value float64)

func (*AD) Last added in v1.16.0

func (inc *AD) Last() float64

func (*AD) OnUpdate added in v1.16.0

func (inc *AD) OnUpdate(cb func(value float64))

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 (inc *BOLL) EmitUpdate(sma float64, upBand float64, downBand float64)

func (*BOLL) LastDownBand

func (inc *BOLL) LastDownBand() float64

func (*BOLL) LastSMA

func (inc *BOLL) LastSMA() float64

func (*BOLL) LastStdDev

func (inc *BOLL) LastStdDev() float64

func (*BOLL) LastUpBand

func (inc *BOLL) LastUpBand() float64

func (*BOLL) OnUpdate

func (inc *BOLL) OnUpdate(cb func(sma float64, upBand float64, downBand float64))

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

func (inc *EWMA) EmitUpdate(value float64)

func (*EWMA) Last

func (inc *EWMA) Last() float64

func (*EWMA) OnUpdate added in v1.2.1

func (inc *EWMA) OnUpdate(cb func(value float64))

func (*EWMA) Update added in v1.16.0

func (inc *EWMA) Update(value float64)

type KLinePriceMapper added in v1.2.1

type KLinePriceMapper func(k types.KLine) float64

type KLineWindowUpdater

type KLineWindowUpdater interface {
	OnKLineWindowUpdate(func(interval types.Interval, window types.KLineWindow))
}

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

func (inc *MACD) EmitUpdate(value float64)

func (*MACD) OnUpdate added in v1.16.0

func (inc *MACD) OnUpdate(cb func(value float64))

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

func (inc *OBV) EmitUpdate(value float64)

func (*OBV) Last added in v1.16.0

func (inc *OBV) Last() float64

func (*OBV) OnUpdate added in v1.16.0

func (inc *OBV) OnUpdate(cb func(value float64))

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

func (inc *SMA) EmitUpdate(value float64)

func (*SMA) Last

func (inc *SMA) Last() float64

func (*SMA) OnUpdate added in v1.2.1

func (inc *SMA) OnUpdate(cb func(value float64))

type STOCH added in v1.17.0

type STOCH struct {
	types.IntervalWindow
	K types.Float64Slice
	D types.Float64Slice

	KLineWindow types.KLineWindow

	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

func (inc *STOCH) EmitUpdate(k float64, d float64)

func (*STOCH) LastD added in v1.17.0

func (inc *STOCH) LastD() float64

func (*STOCH) LastK added in v1.17.0

func (inc *STOCH) LastK() float64

func (*STOCH) OnUpdate added in v1.17.0

func (inc *STOCH) OnUpdate(cb func(k float64, d float64))

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

func (V *VWAP) EmitUpdate(value float64)

func (*VWAP) OnUpdate added in v1.16.0

func (V *VWAP) OnUpdate(cb func(value float64))

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

func (inc *VWMA) EmitUpdate(value float64)

func (*VWMA) Last added in v1.21.0

func (inc *VWMA) Last() float64

func (*VWMA) OnUpdate added in v1.21.0

func (inc *VWMA) OnUpdate(cb func(value float64))

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL