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 ¶
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 ¶
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 ¶
TradingExchangeName returns the defaulted trading exchange name
func (*BotConfig) TradingPair ¶
TradingPair returns the config's trading pair name.
type FeeConfig ¶
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 ¶
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 ¶
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 ¶
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