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 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"` TickIntervalSeconds int32 `valid:"-" toml:"TICK_INTERVAL_SECONDS" json:"tick_interval_seconds"` MaxTickDelayMillis int64 `valid:"-" toml:"MAX_TICK_DELAY_MILLIS" json:"max_tick_delay_millis"` 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, tickIntervalSeconds 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 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, 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 *metrics.MetricsTracker, startTime time.Time, ) *Trader
MakeTrader is the factory method for the Trader struct