Documentation
¶
Overview ¶
Package volume contains the volume strategy functions.
This package belongs to the Indicator project. Indicator is a Golang module that supplies a variety of technical indicators, strategies, and a backtesting framework for analysis.
License ¶
Copyright (c) 2021-2026 Onur Cinar. The source code is provided under GNU AGPLv3 License. https://github.com/cinar/indicator
Disclaimer ¶
The information provided on this project is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.
Index ¶
Constants ¶
const ( // DefaultMoneyFlowIndexStrategySellAt is the default sell at of 80. DefaultMoneyFlowIndexStrategySellAt = 80 // DefaultMoneyFlowIndexStrategyBuyAt is the default buy at of 20. DefaultMoneyFlowIndexStrategyBuyAt = 20 )
const ( // DefaultPercentBandMFIStrategyPercentBBuyAt is the default buy for %B at of 0.8. DefaultPercentBandMFIStrategyPercentBBuyAt = 0.8 // DefaultPercentBandMFIStrategyPercentBSellAt is the default sell for %B at of 0.2. DefaultPercentBandMFIStrategyPercentBSellAt = 0.2 // DefaultPercentBandMFIStrategyMfiBuyAt is the default buy for MFI at of 80. DefaultPercentBandMFIStrategyMfiBuyAt = 80 // DefaultPercentBandMFIStrategyMfiSellAt is the default sell for MFI at of 20. DefaultPercentBandMFIStrategyMfiSellAt = 20 )
const (
// DefaultNegativeVolumeIndexStrategyEmaPeriod is the default EMA period of 255.
DefaultNegativeVolumeIndexStrategyEmaPeriod = 255
)
Variables ¶
This section is empty.
Functions ¶
func AllStrategies ¶
AllStrategies returns a slice containing references to all available volume strategies.
Types ¶
type ChaikinMoneyFlowStrategy ¶
type ChaikinMoneyFlowStrategy struct {
// ChaikinMoneyFlow is the Chaikin Money Flow indicator instance.
ChaikinMoneyFlow *volume.Cmf[float64]
}
ChaikinMoneyFlowStrategy represents the configuration parameters for calculating the Chaikin Money Flow strategy. Recommends a Buy action when it crosses above 0, and recommends a Sell action when it crosses below 0.
func NewChaikinMoneyFlowStrategy ¶
func NewChaikinMoneyFlowStrategy() *ChaikinMoneyFlowStrategy
NewChaikinMoneyFlowStrategy function initializes a new Chaikin Money Flow strategy instance with the default parameters.
func NewChaikinMoneyFlowStrategyWith ¶
func NewChaikinMoneyFlowStrategyWith(period int) *ChaikinMoneyFlowStrategy
NewChaikinMoneyFlowStrategyWith function initializes a new Chaikin Money Flow strategy instance with the given parameters.
func (*ChaikinMoneyFlowStrategy) Compute ¶
func (c *ChaikinMoneyFlowStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute function processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*ChaikinMoneyFlowStrategy) Name ¶
func (c *ChaikinMoneyFlowStrategy) Name() string
Name function returns the name of the strategy.
type EaseOfMovementStrategy ¶ added in v2.1.9
type EaseOfMovementStrategy struct {
// EaseOfMovement is the Ease of Movement indicator instance.
EaseOfMovement *volume.Emv[float64]
}
EaseOfMovementStrategy represents the configuration parameters for calculating the Ease of Movement strategy. Recommends a Buy action when it crosses above 0, and recommends a Sell action when it crosses below 0.
func NewEaseOfMovementStrategy ¶ added in v2.1.9
func NewEaseOfMovementStrategy() *EaseOfMovementStrategy
NewEaseOfMovementStrategy function initializes a new Ease of Movement strategy instance with the default parameters.
func NewEaseOfMovementStrategyWith ¶ added in v2.1.9
func NewEaseOfMovementStrategyWith(period int) *EaseOfMovementStrategy
NewEaseOfMovementStrategyWith function initializes a new Ease of Movement strategy instance with the given parameters.
func (*EaseOfMovementStrategy) Compute ¶ added in v2.1.9
func (e *EaseOfMovementStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute function processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*EaseOfMovementStrategy) Name ¶ added in v2.1.9
func (e *EaseOfMovementStrategy) Name() string
Name function returns the name of the strategy.
type ForceIndexStrategy ¶ added in v2.1.9
type ForceIndexStrategy struct {
// ForceIndex is the Force Index instance.
ForceIndex *volume.Fi[float64]
}
ForceIndexStrategy represents the configuration parameters for calculating the Force Index strategy. It recommends a Buy action when it crosses above zero, and a Sell action when it crosses below zero.
func NewForceIndexStrategy ¶ added in v2.1.9
func NewForceIndexStrategy() *ForceIndexStrategy
NewForceIndexStrategy function initializes a new Force Index strategy instance with the default parameters.
func NewForceIndexStrategyWith ¶ added in v2.1.9
func NewForceIndexStrategyWith(period int) *ForceIndexStrategy
NewForceIndexStrategyWith function initializes a new Force Index strategy instance with the given parameters.
func (*ForceIndexStrategy) Compute ¶ added in v2.1.9
func (f *ForceIndexStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*ForceIndexStrategy) Name ¶ added in v2.1.9
func (f *ForceIndexStrategy) Name() string
Name returns the name of the strategy.
type MoneyFlowIndexStrategy ¶
type MoneyFlowIndexStrategy struct {
// MoneyFlowIndex is the Money Flow Index indicator instance.
MoneyFlowIndex *volume.Mfi[float64]
// SellAt is the sell at value.
SellAt float64
// BuyAt is the buy at value.
BuyAt float64
}
MoneyFlowIndexStrategy represents the configuration parameters for calculating the Money Flow Index strategy. Recommends a Sell action when it crosses over 80, and recommends a Buy action when it crosses below 20.
func NewMoneyFlowIndexStrategy ¶
func NewMoneyFlowIndexStrategy() *MoneyFlowIndexStrategy
NewMoneyFlowIndexStrategy function initializes a new Money Flow Index strategy instance with the default parameters.
func NewMoneyFlowIndexStrategyWith ¶
func NewMoneyFlowIndexStrategyWith(sellAt, buyAt float64) *MoneyFlowIndexStrategy
NewMoneyFlowIndexStrategyWith function initializes a new Money Flow Index strategy instance with the given parameters.
func (*MoneyFlowIndexStrategy) Compute ¶
func (m *MoneyFlowIndexStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*MoneyFlowIndexStrategy) Name ¶
func (m *MoneyFlowIndexStrategy) Name() string
Name returns the name of the strategy.
type NegativeVolumeIndexStrategy ¶
type NegativeVolumeIndexStrategy struct {
// NegativeVolumeIndex is the Negative Volume Index indicator instance.
NegativeVolumeIndex *volume.Nvi[float64]
// NegativeVolumeIndexEma is the Negative Volume Index EMA instance.
NegativeVolumeIndexEma *trend.Ema[float64]
}
NegativeVolumeIndexStrategy represents the configuration parameters for calculating the Negative Volume Index strategy. Recommends a Buy action when it crosses below its EMA, recommends a Sell action when it crosses above its EMA, and recommends a Hold action otherwise.
func NewNegativeVolumeIndexStrategy ¶
func NewNegativeVolumeIndexStrategy() *NegativeVolumeIndexStrategy
NewNegativeVolumeIndexStrategy function initializes a new Negative Volume Index strategy instance with the default parameters.
func NewNegativeVolumeIndexStrategyWith ¶
func NewNegativeVolumeIndexStrategyWith(emaPeriod int) *NegativeVolumeIndexStrategy
NewNegativeVolumeIndexStrategyWith function initializes a new Negative Volume Index strategy instance with the given parameters.
func (*NegativeVolumeIndexStrategy) Compute ¶
func (n *NegativeVolumeIndexStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*NegativeVolumeIndexStrategy) Name ¶
func (n *NegativeVolumeIndexStrategy) Name() string
Name returns the name of the strategy.
type PercentBandMFIStrategy ¶ added in v2.1.22
type PercentBandMFIStrategy struct {
// MoneyFlowIndex is the Money Flow Index indicator instance.
MoneyFlowIndex *volume.Mfi[float64]
// PercentB is the %B indicator instance.
PercentB *volatility.PercentB[float64]
// SellPercentBAt is the sell at value of %B.
SellPercentBAt float64
// BuyPercentBAt is the buy at value of %B.
BuyPercentBAt float64
// SellMfiAt is the sell at value of MFI.
SellMfiAt float64
// BuyMfiAt is the buy at value of MFI.
BuyMfiAt float64
}
PercentBandMFIStrategy represents the configuration parameters for calculating the %B combined with MFI strategy. Recommends a Buy action when %B is above 0.8 and MFI is above 80, and recommends a Sell action when %B is below 0.2 and MFI is below 20.
func NewPercentBandMFIStrategy ¶ added in v2.1.22
func NewPercentBandMFIStrategy() *PercentBandMFIStrategy
NewPercentBandMFIStrategy function initializes a new PercentBandMFI strategy instance with the default parameters.
func NewPercentBandMFIStrategyWith ¶ added in v2.1.22
func NewPercentBandMFIStrategyWith(sellPercentBAt, buyPercentBAt, sellMfiAt, buyMfiAt float64) *PercentBandMFIStrategy
NewPercentBandMFIStrategyWith function initializes a new PercentBandMFI strategy instance with the given parameters.
func (*PercentBandMFIStrategy) Compute ¶ added in v2.1.22
func (m *PercentBandMFIStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*PercentBandMFIStrategy) Name ¶ added in v2.1.22
func (m *PercentBandMFIStrategy) Name() string
Name returns the name of the strategy.
type WeightedAveragePriceStrategy ¶ added in v2.1.10
type WeightedAveragePriceStrategy struct {
// WeightedAveragePrice is the Weighted Average Price indicator instance.
WeightedAveragePrice *volume.Vwap[float64]
}
WeightedAveragePriceStrategy represents the configuration parameters for calculating the Weighted Average Price strategy. Recommends a Buy action when the closing crosses below the VWAP, recommends a Sell action when the closing crosses above the VWAP, and recommends a Hold action otherwise.
func NewWeightedAveragePriceStrategy ¶ added in v2.1.10
func NewWeightedAveragePriceStrategy() *WeightedAveragePriceStrategy
NewWeightedAveragePriceStrategy function initializes a new Weighted Average Price strategy instance with the default parameters.
func NewWeightedAveragePriceStrategyWith ¶ added in v2.1.10
func NewWeightedAveragePriceStrategyWith(period int) *WeightedAveragePriceStrategy
NewWeightedAveragePriceStrategyWith function initializes a new Weighted Average Price strategy instance with the given parameters.
func (*WeightedAveragePriceStrategy) Compute ¶ added in v2.1.10
func (v *WeightedAveragePriceStrategy) Compute(snapshots <-chan *asset.Snapshot) <-chan strategy.Action
Compute processes the provided asset snapshots and generates a stream of actionable recommendations.
func (*WeightedAveragePriceStrategy) Name ¶ added in v2.1.10
func (v *WeightedAveragePriceStrategy) Name() string
Name returns the name of the strategy.