Documentation
¶
Index ¶
- Constants
- type BotConfig
- func (b *BotConfig) AssetBase() hProtocol.Asset
- func (b *BotConfig) AssetQuote() hProtocol.Asset
- func (b *BotConfig) Init() error
- func (b *BotConfig) IsTradingSdex() bool
- func (b *BotConfig) SourceAccount() string
- func (b BotConfig) String() string
- func (b *BotConfig) TradingAccount() string
- func (b *BotConfig) TradingExchangeName() string
- func (b *BotConfig) TradingPair() string
- type FeeConfig
- type SleepMode
- type Trader
Constants ¶
const XLM = "XLM"
XLM is a constant for XLM
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BotConfig ¶
type BotConfig struct { SourceSecretSeed string `valid:"-" toml:"SOURCE_SECRET_SEED" json:"source_secret_seed"` TradingSecretSeed string `valid:"-" toml:"TRADING_SECRET_SEED" json:"trading_secret_seed"` AssetCodeA string `valid:"-" toml:"ASSET_CODE_A" json:"asset_code_a"` IssuerA string `valid:"-" toml:"ISSUER_A" json:"issuer_a"` AssetCodeB string `valid:"-" toml:"ASSET_CODE_B" json:"asset_code_b"` IssuerB string `valid:"-" toml:"ISSUER_B" json:"issuer_b"` // Deprecated: use TICK_INTERVAL_MILLIS instead TickIntervalSecondsDeprecated int32 `valid:"-" toml:"TICK_INTERVAL_SECONDS" json:"tick_interval_seconds" deprecated:"true"` TickIntervalMillis int32 `valid:"-" toml:"TICK_INTERVAL_MILLIS" json:"tick_interval_millis"` MaxTickDelayMillis int64 `valid:"-" toml:"MAX_TICK_DELAY_MILLIS" json:"max_tick_delay_millis"` SleepMode string `valid:"-" toml:"SLEEP_MODE" json:"sleep_mode"` DeleteCyclesThreshold int64 `valid:"-" toml:"DELETE_CYCLES_THRESHOLD" json:"delete_cycles_threshold"` SubmitMode string `valid:"-" toml:"SUBMIT_MODE" json:"submit_mode"` FillTrackerSleepMillis uint32 `valid:"-" toml:"FILL_TRACKER_SLEEP_MILLIS" json:"fill_tracker_sleep_millis"` FillTrackerDeleteCyclesThreshold int64 `valid:"-" toml:"FILL_TRACKER_DELETE_CYCLES_THRESHOLD" json:"fill_tracker_delete_cycles_threshold"` SynchronizeStateLoadEnable bool `valid:"-" toml:"SYNCHRONIZE_STATE_LOAD_ENABLE"` SynchronizeStateLoadMaxRetries int `valid:"-" toml:"SYNCHRONIZE_STATE_LOAD_MAX_RETRIES"` FillTrackerLastTradeCursorOverride string `valid:"-" toml:"FILL_TRACKER_LAST_TRADE_CURSOR_OVERRIDE"` HorizonURL string `valid:"-" toml:"HORIZON_URL" json:"horizon_url"` CcxtRestURL *string `valid:"-" toml:"CCXT_REST_URL" json:"ccxt_rest_url"` DollarValueFeedBaseAsset string `valid:"-" toml:"DOLLAR_VALUE_FEED_BASE_ASSET" json:"dollar_value_feed_base_asset"` DollarValueFeedQuoteAsset string `valid:"-" toml:"DOLLAR_VALUE_FEED_QUOTE_ASSET" json:"dollar_value_feed_quote_asset"` Fee *FeeConfig `valid:"-" toml:"FEE" json:"fee"` CentralizedPricePrecisionOverride *int8 `valid:"-" toml:"CENTRALIZED_PRICE_PRECISION_OVERRIDE" json:"centralized_price_precision_override"` CentralizedVolumePrecisionOverride *int8 `valid:"-" toml:"CENTRALIZED_VOLUME_PRECISION_OVERRIDE" json:"centralized_volume_precision_override"` // Deprecated: use CENTRALIZED_MIN_BASE_VOLUME_OVERRIDE instead MinCentralizedBaseVolumeDeprecated *float64 `valid:"-" toml:"MIN_CENTRALIZED_BASE_VOLUME" deprecated:"true" json:"min_centralized_base_volume"` CentralizedMinBaseVolumeOverride *float64 `valid:"-" toml:"CENTRALIZED_MIN_BASE_VOLUME_OVERRIDE" json:"centralized_min_base_volume_override"` CentralizedMinQuoteVolumeOverride *float64 `valid:"-" toml:"CENTRALIZED_MIN_QUOTE_VOLUME_OVERRIDE" json:"centralized_min_quote_volume_override"` PostgresDbConfig *postgresdb.Config `valid:"-" toml:"POSTGRES_DB" json:"postgres_db"` DbOverrideAccountID string `valid:"-" toml:"DB_OVERRIDE__ACCOUNT_ID" json:"db_override__account_id"` Filters []string `valid:"-" toml:"FILTERS" json:"filters"` AlertType string `valid:"-" toml:"ALERT_TYPE" json:"alert_type"` AlertAPIKey string `valid:"-" toml:"ALERT_API_KEY" json:"alert_api_key"` MonitoringPort uint16 `valid:"-" toml:"MONITORING_PORT" json:"monitoring_port"` MonitoringTLSCert string `valid:"-" toml:"MONITORING_TLS_CERT" json:"monitoring_tls_cert"` MonitoringTLSKey string `valid:"-" toml:"MONITORING_TLS_KEY" json:"monitoring_tls_key"` GoogleClientID string `valid:"-" toml:"GOOGLE_CLIENT_ID" json:"google_client_id"` GoogleClientSecret string `valid:"-" toml:"GOOGLE_CLIENT_SECRET" json:"google_client_secret"` AcceptableEmails string `valid:"-" toml:"ACCEPTABLE_GOOGLE_EMAILS" json:"acceptable_google_emails"` TradingExchange string `valid:"-" toml:"TRADING_EXCHANGE" json:"trading_exchange"` ExchangeAPIKeys toml.ExchangeAPIKeysToml `valid:"-" toml:"EXCHANGE_API_KEYS" json:"exchange_api_keys"` ExchangeParams toml.ExchangeParamsToml `valid:"-" toml:"EXCHANGE_PARAMS" json:"exchange_params"` ExchangeHeaders toml.ExchangeHeadersToml `valid:"-" toml:"EXCHANGE_HEADERS" json:"exchange_headers"` // contains filtered or unexported fields }
BotConfig represents the configuration params for the bot
func MakeBotConfig ¶ added in v1.8.0
func MakeBotConfig( sourceSecretSeed string, tradingSecretSeed string, assetCodeA string, issuerA string, assetCodeB string, issuerB string, tickIntervalMillis int32, maxTickDelayMillis int64, deleteCyclesThreshold int64, submitMode string, fillTrackerSleepMillis uint32, fillTrackerDeleteCyclesThreshold int64, horizonURL string, ccxtRestURL *string, dollarValueFeedBaseAsset string, dollarValueFeedQuoteAsset string, fee *FeeConfig, centralizedPricePrecisionOverride *int8, centralizedVolumePrecisionOverride *int8, centralizedMinBaseVolumeOverride *float64, centralizedMinQuoteVolumeOverride *float64, ) *BotConfig
MakeBotConfig factory method for BotConfig
func (*BotConfig) AssetQuote ¶
AssetQuote returns the config's assetQuote
func (*BotConfig) IsTradingSdex ¶ added in v1.6.0
IsTradingSdex returns whether the config is set to trade on SDEX
func (*BotConfig) SourceAccount ¶
SourceAccount returns the config's source account
func (*BotConfig) TradingAccount ¶
TradingAccount returns the config's trading account
func (*BotConfig) TradingExchangeName ¶ added in v1.8.0
TradingExchangeName returns the defaulted trading exchange name
func (*BotConfig) TradingPair ¶ added in v1.10.0
TradingPair returns the config's trading pair name.
type FeeConfig ¶ added in v1.5.0
type FeeConfig struct { CapacityTrigger float64 `valid:"-" toml:"CAPACITY_TRIGGER" json:"capacity_trigger"` // trigger when "ledger_capacity_usage" in /fee_stats is >= this value Percentile uint8 `valid:"-" toml:"PERCENTILE" json:"percentile"` // percentile computation to use from /fee_stats (10, 20, ..., 90, 95, 99) MaxOpFeeStroops uint64 `valid:"-" toml:"MAX_OP_FEE_STROOPS" json:"max_op_fee_stroops"` // max fee in stroops per operation to use }
FeeConfig represents input data for how to deal with network fees
type SleepMode ¶ added in v1.11.0
type SleepMode string
SleepMode defines when the bot sleeps, before (begin) or after (end) of update cycle
The following are the two types of sleep modes
func ParseSleepMode ¶ added in v1.11.0
ParseSleepMode factory, defaults to SleepModeEnd so it does not return any error
type Trader ¶
type Trader struct {
// contains filtered or unexported fields
}
Trader represents a market making bot, which is composed of various parts include the strategy and various APIs.
func MakeTrader ¶ added in v1.8.0
func MakeTrader( api *horizonclient.Client, ieif *plugins.IEIF, assetBase hProtocol.Asset, assetQuote hProtocol.Asset, valueBaseFeed api.PriceFeed, valueQuoteFeed api.PriceFeed, tradingAccount string, sdex *plugins.SDEX, exchangeShim api.ExchangeShim, strategy api.Strategy, timeController api.TimeController, sleepMode SleepMode, synchronizeStateLoadEnable bool, synchronizeStateLoadMaxRetries int, fillTracker api.FillTracker, deleteCyclesThreshold int64, submitMode api.SubmitMode, submitFilters []plugins.SubmitFilter, threadTracker *multithreading.ThreadTracker, fixedIterations *uint64, dataKey *model.BotKey, alert api.Alert, metricsTracker *plugins.MetricsTracker, startTime time.Time, ) *Trader
MakeTrader is the factory method for the Trader struct