Documentation ¶
Overview ¶
Package config contains structures used in retrieving app configuration from disk.
Package config contains structures and functions for configuring the app.
Index ¶
Constants ¶
const ( DiscreteThreeLevelString = "discreteThreeLevel" CoinAndBinomialString = "coinAndBinomial" )
const (
BotStrategyNormal = "normal"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BotConfig ¶
type BotConfig struct { // Name is the name of the bot. It is also used as the wallet name. // It is *not* a public key seen by Vega. Name string `yaml:"name"` // CallTimeout is the per-call timeout (in milliseconds) for communicating with the Vega node gRPC endpoint. CallTimeout int `yaml:"callTimeout"` // InstrumentBase is the base asset of the instrument. InstrumentBase string `yaml:"instrumentBase"` // InstrumentQuote is the quote asset of the instrument. InstrumentQuote string `yaml:"instrumentQuote"` // Strategy specifies which algorithm the bot is to use. Strategy string `yaml:"strategy"` // SettlementAsset is the asset used for settlement. SettlementAsset string `yaml:"settlementAsset"` // StrategyDetails contains the parameters needed by the strategy algorithm. StrategyDetails Strategy `yaml:"strategyDetails"` }
BotConfig specifies the configuration parameters for one bot, which talks to one market on one Vega node.
type Config ¶
type Config struct { Server *ServerConfig `yaml:"server"` Pricing *PricingConfig `yaml:"pricing"` Wallet *WalletConfig `yaml:"wallet"` Token *TokenConfig `yaml:"token"` Locations []string `yaml:"locations"` Bots []BotConfig `yaml:"bots"` }
Config describes the top level config file format.
func (*Config) CheckConfig ¶ added in v0.42.0
CheckConfig checks the config for valid structure and values.
func (*Config) ConfigureLogging ¶ added in v0.42.0
ConfigureLogging configures logging.
type LimitOrderDistParams ¶ added in v0.37.0
type LimitOrderDistParams struct { Method SteeringMethod `yaml:"method"` GttLength uint64 `yaml:"gttLengthSeconds"` TgtTimeHorizonHours float64 `yaml:"tgtTimeHorizonHours"` NumTicksFromMid uint64 `yaml:"numTicksFromMid"` NumIdenticalBots int `yaml:"numIdenticalBots"` }
LimitOrderDistParams for configuring the way price steering orders are sent.
type LiquidityOrder ¶
type LiquidityOrder struct { Reference string `yaml:"reference"` Proportion uint32 `yaml:"proportion"` Offset string `yaml:"offset"` }
LiquidityOrder describes ...
func (LiquidityOrder) ToVegaLiquidityOrder ¶ added in v0.42.0
func (l LiquidityOrder) ToVegaLiquidityOrder() *vega.LiquidityOrder
type LiquidityOrders ¶ added in v0.42.0
type LiquidityOrders []LiquidityOrder
func (LiquidityOrders) ToVegaLiquidityOrders ¶ added in v0.42.0
func (l LiquidityOrders) ToVegaLiquidityOrders() []*vega.LiquidityOrder
type PricingConfig ¶
PricingConfig describes the settings for contacting the price proxy.
type ServerConfig ¶
ServerConfig describes the settings for running the liquidity bot.
type Shape ¶
type Shape struct { Sells LiquidityOrders `yaml:"sells"` Buys LiquidityOrders `yaml:"buys"` }
Shape describes the buy and sell sides of a Liquidity Provision instruction.
func (Shape) ToVegaShape ¶ added in v0.42.0
type SteeringMethod ¶ added in v0.42.0
type SteeringMethod int
SteeringMethod is an enum for all the possible price calculations methods for price steering.
const ( // NotSet for when we cannot parse the input string. NotSet SteeringMethod = iota // DiscreteThreeLevel uses the discrete three level method. DiscreteThreeLevel // CoinAndBinomial uses the coin and binomial method. CoinAndBinomial )
func (*SteeringMethod) Get ¶ added in v0.42.0
func (s *SteeringMethod) Get() string
Get returns the underlying string.
func (SteeringMethod) MarshalText ¶ added in v0.42.0
func (s SteeringMethod) MarshalText() ([]byte, error)
MarshalText converts a SteeringMethod to a string.
func (SteeringMethod) String ¶ added in v0.42.0
func (s SteeringMethod) String() string
Get returns the underlying string.
func (*SteeringMethod) UnmarshalText ¶ added in v0.42.0
func (s *SteeringMethod) UnmarshalText(text []byte) error
UnmarshalText converts a string to a SteeringMethod.
type Strategy ¶
type Strategy struct { // ExpectedMarkPrice (optional) specifies the expected mark price for a market that may not yet // have a mark price. It is used to calculate margin cost of orders meeting liquidity // requirement. ExpectedMarkPrice Uint `yaml:"expectedMarkPrice"` // AuctionVolume ... AuctionVolume Uint `yaml:"auctionVolume"` // SeedAmount is the amount of tokens to mint, deposit and stake SeedAmount Uint `yaml:"seedAmount"` // SeedOrderSize is the size of the seed orders that tries to get the market out of auction SeedOrderSize uint64 `yaml:"seedOrderSize"` // CommitmentAmount is the amount of stake for the LP CommitmentAmount string `yaml:"commitmentAmount"` // Fee is the 0->1 fee for supplying liquidity Fee string `yaml:"fee"` // MaxLong specifies the maximum long position that the bot will tolerate. MaxLong Uint `yaml:"maxLong"` // MaxShort specifies the maximum short position that the bot will tolerate. MaxShort Uint `yaml:"maxShort"` // PosManagementFraction controls the size of market orders used to manage the bot's position. PosManagementFraction float64 `yaml:"posManagementFraction"` // OrdersFraction is used in rule-of-thumb heuristics to decide how // the bot should deploy collateral. OrdersFraction float64 `yaml:"ordersFraction"` // ShorteningShape (which includes both sides of the book) specifies the shape used when the bot // is trying to shorten its position. ShorteningShape Shape `yaml:"shorteningShape"` // LongeningShape (which includes both sides of the book) specifies the shape used when the bot // is trying to lengthen its position. Note that the initial shape used by the bot is always the // longening shape, because being long is a little cheaper in position margin than being short. LongeningShape Shape `yaml:"longeningShape"` // PosManagementSleepMilliseconds is the sleep time, in milliseconds, between position management PosManagementSleepMilliseconds int `yaml:"posManagementSleepMilliseconds"` // MarketPriceSteeringRatePerSecond ... MarketPriceSteeringRatePerSecond float64 `yaml:"marketPriceSteeringRatePerSecond"` // MinPriceSteerFraction is the minimum difference between external and current price that will // allow a price steering order to be placed. MinPriceSteerFraction float64 `yaml:"minPriceSteerFraction"` // PriceSteerOrderScale is the scaling factor used when placing a steering order PriceSteerOrderScale float64 `yaml:"priceSteerOrderScale"` // LimitOrderDistributionParams ... LimitOrderDistributionParams LimitOrderDistParams `yaml:"limitOrderDistributionParams"` // TargetLNVol specifies the target log-normal volatility (e.g. 0.5 for 50%). TargetLNVol float64 `yaml:"targetLNVol"` }
Strategy describes parameters for the bot's strategy.
type TokenConfig ¶ added in v0.42.0
type TokenConfig struct { EthereumAPIAddress string `yaml:"ethereumAPIAddress"` Erc20BridgeAddress string `yaml:"erc20BridgeAddress"` StakingBridgeAddress string `yaml:"stakingBridgeAddress"` ERC20TokenAddress string `yaml:"erc20TokenAddress"` VegaTokenAddress string `yaml:"vegaTokenAddress"` ContractOwnerAddress string `yaml:"contractOwnerAddress"` ContractOwnerPrivateKey string `yaml:"contractOwnerPrivateKey"` }
type Uint ¶ added in v0.41.0
type Uint struct {
// contains filtered or unexported fields
}
Uint is for storing a num.Uint as a string in a config file.
func (Uint) MarshalText ¶ added in v0.41.0
MarshalText converts a Uint to a string.
func (*Uint) UnmarshalText ¶ added in v0.41.0
UnmarshalText converts a string to a nun.Uint.
type WalletConfig ¶
type WalletConfig struct {
URL string `yaml:"url"`
}
WalletConfig describes the settings for running an internal wallet server.