Documentation ¶
Index ¶
- type Handler
- type Portfolio
- func (p *Portfolio) GetComplianceManager(exchangeName string, a asset.Item, cp currency.Pair) (*compliance.Manager, error)
- func (p *Portfolio) GetFee(exchangeName string, a asset.Item, cp currency.Pair) decimal.Decimal
- func (p *Portfolio) GetLatestHoldingsForAllCurrencies() []holdings.Holding
- func (p *Portfolio) GetLatestOrderSnapshotForEvent(e common.EventHandler) (compliance.Snapshot, error)
- func (p *Portfolio) GetLatestOrderSnapshots() ([]compliance.Snapshot, error)
- func (p *Portfolio) OnFill(ev fill.Event, funding funding.IPairReader) (*fill.Fill, error)
- func (p *Portfolio) OnSignal(ev signal.Event, cs *exchange.Settings, funds funding.IPairReserver) (*order.Order, error)
- func (p *Portfolio) Reset()
- func (p *Portfolio) SetFee(exch string, a asset.Item, cp currency.Pair, fee decimal.Decimal)
- func (p *Portfolio) SetupCurrencySettingsMap(settings *exchange.Settings) (*Settings, error)
- func (p *Portfolio) UpdateHoldings(ev common.DataEventHandler, funds funding.IPairReader) error
- func (p *Portfolio) ViewHoldingAtTimePeriod(ev common.EventHandler) (*holdings.Holding, error)
- type Settings
- type SizeHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Handler ¶
type Handler interface { OnSignal(signal.Event, *exchange.Settings, funding.IPairReserver) (*order.Order, error) OnFill(fill.Event, funding.IPairReader) (*fill.Fill, error) GetLatestOrderSnapshotForEvent(common.EventHandler) (compliance.Snapshot, error) GetLatestOrderSnapshots() ([]compliance.Snapshot, error) ViewHoldingAtTimePeriod(common.EventHandler) (*holdings.Holding, error) UpdateHoldings(common.DataEventHandler, funding.IPairReader) error GetComplianceManager(string, asset.Item, currency.Pair) (*compliance.Manager, error) SetFee(string, asset.Item, currency.Pair, decimal.Decimal) GetFee(string, asset.Item, currency.Pair) decimal.Decimal Reset() // contains filtered or unexported methods }
Handler contains all functions expected to operate a portfolio manager
type Portfolio ¶
type Portfolio struct {
// contains filtered or unexported fields
}
Portfolio stores all holdings and rules to assess orders, allowing the portfolio manager to modify, accept or reject strategy signals
func (*Portfolio) GetComplianceManager ¶
func (p *Portfolio) GetComplianceManager(exchangeName string, a asset.Item, cp currency.Pair) (*compliance.Manager, error)
GetComplianceManager returns the order snapshots for a given exchange, asset, pair
func (*Portfolio) GetFee ¶
GetFee can panic for bad requests, but why are you getting things that don't exist?
func (*Portfolio) GetLatestHoldingsForAllCurrencies ¶
GetLatestHoldingsForAllCurrencies will return the current holdings for all loaded currencies this is useful to assess the position of your entire portfolio in order to help with risk decisions
func (*Portfolio) GetLatestOrderSnapshotForEvent ¶
func (p *Portfolio) GetLatestOrderSnapshotForEvent(e common.EventHandler) (compliance.Snapshot, error)
GetLatestOrderSnapshotForEvent gets orders related to the event
func (*Portfolio) GetLatestOrderSnapshots ¶
func (p *Portfolio) GetLatestOrderSnapshots() ([]compliance.Snapshot, error)
GetLatestOrderSnapshots returns the latest snapshots from all stored pair data
func (*Portfolio) OnFill ¶
OnFill processes the event after an order has been placed by the exchange. Its purpose is to track holdings for future portfolio decisions.
func (*Portfolio) OnSignal ¶
func (p *Portfolio) OnSignal(ev signal.Event, cs *exchange.Settings, funds funding.IPairReserver) (*order.Order, error)
OnSignal receives the event from the strategy on whether it has signalled to buy, do nothing or sell on buy/sell, the portfolio manager will size the order and assess the risk of the order if successful, it will pass on an order.Order to be used by the exchange event handler to place an order based on the portfolio manager's recommendations
func (*Portfolio) Reset ¶
func (p *Portfolio) Reset()
Reset returns the portfolio manager to its default state
func (*Portfolio) SetupCurrencySettingsMap ¶
SetupCurrencySettingsMap ensures a map is created and no panics happen
func (*Portfolio) UpdateHoldings ¶
func (p *Portfolio) UpdateHoldings(ev common.DataEventHandler, funds funding.IPairReader) error
UpdateHoldings updates the portfolio holdings for the data event
func (*Portfolio) ViewHoldingAtTimePeriod ¶
ViewHoldingAtTimePeriod retrieves a snapshot of holdings at a specific time period, returning empty when not found
type Settings ¶
type Settings struct { Fee decimal.Decimal BuySideSizing exchange.MinMax SellSideSizing exchange.MinMax Leverage exchange.Leverage HoldingsSnapshots []holdings.Holding ComplianceManager compliance.Manager }
Settings holds all important information for the portfolio manager to assess purchasing decisions
func (*Settings) GetHoldingsForTime ¶
GetHoldingsForTime returns the holdings for a time period, or an empty holding if not found
func (*Settings) GetLatestHoldings ¶
GetLatestHoldings returns the latest holdings after being sorted by time