forked from stellar-deprecated/kelp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsample_trader.cfg
147 lines (130 loc) · 7.89 KB
/
sample_trader.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Sample config file for the kelp bot
# the trading account, this is the account that "owns" the trades (GCB7WIQ3TILJLPOT4E7YMOYF6A5TKYRWK3ZHJ5UR6UKD7D7NJVWNWIQV)
TRADING_SECRET_SEED="SAOQ6IG2WWDEP47WEJNLIU27OBODMEWFDN6PVUR5KHYDOCVCL34J2CUD"
# (optional) the source account, this is the account used to deduct fees and consume the sequence number (GBHXGGUD3LIAWJHFO7737C4TFNDDDLZ74C6VBEPF5H53XNRCVIUWZA5I)
SOURCE_SECRET_SEED="SDDAHRX2JB663N3OLKZIBZPF33ZEKMHARX362S737JEJS2AX3GJZY5LU"
# the base asset and issuer.
ASSET_CODE_A="XLM"
# uncomment the ISSUER_A if your base asset is not XLM
#ISSUER_A=""
# the counter (or quote) asset and issuer
ASSET_CODE_B="COUPON"
ISSUER_B="GBMMZMK2DC4FFP4CAI6KCVNCQ7WLO5A7DQU7EC7WGHRDQBZB763X4OQI"
# Issuer seed: SANPCJHHXCPRN6IIZRBEQXS5M3L2LY7EYQLAVTYD56KL3V7ABO4I3ISZ
# how often you want the bot to run
TICK_INTERVAL_SECONDS=300
# randomized interval delay in millis
MAX_TICK_DELAY_MILLIS=0
# the mode to use when submitting - maker_only, both (default)
# when trading on a non-SDEX exchange the only supported mode is "both"
SUBMIT_MODE="both"
# how many continuous errors in each update cycle can the bot accept before it will delete all offers to protect its exposure.
# this number has to be exceeded for all the offers to be deleted and any error will be counted only once per update cycle.
# any time the bot completes a full run successfully this counter will be reset.
# the bot will continue running even if it hits an error or deletes all offers.
# the typical use case for this config value is to keep the orders on your orderbook intact if your price feed is unreachable for a small amount of time.
# example: use -1 if you never want to delete all offers (this is not recommended).
# example: use 0 if you want to delete all offers on any error.
# example: use 2 if you want to tolerate 2 continuous update cycles with errors, i.e. 3 continuous update cycles with errors will delete all offers.
DELETE_CYCLES_THRESHOLD=0
# how many milliseconds to sleep before checking for fills again, a value of 0 disables fill tracking
# fill tracking is not supported when trading on a non-SDEX exchange (i.e. set it to 0)
FILL_TRACKER_SLEEP_MILLIS=0
# how many continuous errors in each fill-tracking cycle can the bot accept before it will delete all offers to protect its exposure.
# this number has to be exceeded for all the offers to be deleted and any error will be counted only once per cycle.
# any time the bot completes a full run successfully this counter will be reset.
# the bot will continue running even if it hits an error or deletes all offers.
# the typical use case for this config value is to keep the orders on your orderbook intact if you the endpoint to read fills is unreachable for a small amount of time.
# example: use -1 if you never want to delete all offers (this is not recommended).
# example: use 0 if you want to delete all offers on any error.
# example: use 2 if you want to tolerate 2 continuous cycles with errors, i.e. 3 continuous cycles with errors will delete all offers.
FILL_TRACKER_DELETE_CYCLES_THRESHOLD=0
# the url for your horizon instance. If this url contains the string "test" then the bot assumes it is using the test network.
HORIZON_URL="https://horizon-testnet.stellar.org"
# the URL to use for your CCXT-rest instance. Defaults to http://localhost:3000 if unset
#CCXT_REST_URL="http://localhost:3000"
# specify parameters for how we compute the operation fee from the /fee_stats endpoint
[FEE]
# trigger when "ledger_capacity_usage" in /fee_stats is >= this value
CAPACITY_TRIGGER=0.8
# percentile computation to use from /fee_stats (10, 20, ..., 90, 95, 99)
PERCENTILE=90
# max fee in stroops per operation to use
MAX_OP_FEE_STROOPS=5000
# uncomment below to add support for monitoring.
# type of alerting system to use, currently only "PagerDuty" is supported.
#ALERT_TYPE="PagerDuty"
#ALERT_API_KEY=""
# the port that the monitoring server should run on. Uncomment the following line to add monitoring server.
#MONITORING_PORT=8081
# tls certificate for the server to use if HTTPS is desired. If left empty, then the monitoring server will default to
# HTTP. A valid certificate and key file can be obtained from a Certificate Authority - an example of one is Let's Encrypt.
# If you would like to generate one for local testing, you can run `mkcert localhost` (mkcert can be installed on MacOs and Linux).
# Note that this does NOT allow you to run a publicly-accessible TLS server and is for local development only.
#MONITORING_TLS_CERT="./localhost.pem"
# tls key for the cert. If left empty, then the server will default to HTTP.
#MONITORING_TLS_KEY="./localhost-key.pem"
# If you would like to use Google OAuth for the monitoring server, you have to register your app with Google
# and request a client ID and secret. For more info see: https://developers.google.com/identity/protocols/OAuth2.
# When you register, you MUST configure the Authorized redirect URIs to something of the
# form "https://[hostname]:[MONITORING_PORT]/_googleauth". For testing locally, you can set it to "https://localhost:[PORT]/_googleauth"
# This gives the ability to secure monitoring endpoints by forcing clients to sign in using their Google accounts,
# and only acceptable emails will be allowed access (see below).
#GOOGLE_CLIENT_ID=""
#GOOGLE_CLIENT_SECRET=""
# a comma-separated list of emails (Google accounts) that are allowed access to monitoring endpoints that require
# Google authentication.
#ACCEPTABLE_GOOGLE_EMAILS=""
# minimum values for Kraken: https://support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum-order-size-volume-
# minimum order value for Binance: https://support.binance.com/hc/en-us/articles/115000594711-Trading-Rule
# (optional) number of decimal units to be used for price, which is specified in units of the quote asset, to place an order on the non-sdex (centralized) exchange
#CENTRALIZED_PRICE_PRECISION_OVERRIDE=6
# (optional) number of decimal units to be used for volume, which is specified in units of the base asset, to place an order on the non-sdex (centralized) exchange
#CENTRALIZED_VOLUME_PRECISION_OVERRIDE=1
# (optional) minimum volume of base units needed to place an order on the non-sdex (centralized) exchange
#CENTRALIZED_MIN_BASE_VOLUME_OVERRIDE=30.0
# (optional) minimum volume of quote units needed to place an order on the non-sdex (centralized) exchange
#CENTRALIZED_MIN_QUOTE_VOLUME_OVERRIDE=10.0
# uncomment if you want to track fills in a postgres db
#[POSTGRES_DB]
#HOST="localhost"
#PORT=5432
#DB_NAME="kelp"
#USER=""
#PASSWORD=""
#SSL_ENABLE=false
# uncomment lines below to use kraken. Can use "sdex" or leave out to trade on the Stellar Decentralized Exchange.
# can alternatively use any of the ccxt-exchanges marked as "Trading" (run `kelp exchanges` for full list)
#TRADING_EXCHANGE="kraken"
# you can use multiple API keys to overcome rate limit concerns for kraken
#[[EXCHANGE_API_KEYS]]
#KEY=""
#SECRET=""
#[[EXCHANGE_API_KEYS]]
#KEY=""
#SECRET=""
# if your exchange requires additional parameters during initialization, list them here (only ccxt supported currently)
# Note that some CCXT exchanges require additional parameters, e.g. coinbase pro requires a "password"
#[[EXCHANGE_PARAMS]]
#PARAM="password"
#VALUE="<coinbasepro-api-passphrase-here>"
#[[EXCHANGE_PARAMS]]
#PARAM=""
#VALUE=""
# if your exchange requires additional parameters as http headers, list them here (only ccxt supported currently)
# e.g., coinbase pro requires CB-ACCESS-KEY, CB-ACCESS-SIGN, CB-ACCESS-TIMESTAMP, and CB-ACCESS-PASSPHRASE
#[[EXCHANGE_HEADERS]]
#HEADER="CB-ACCESS-KEY"
#VALUE="STATIC:<coinbasepro-api-key-here>"
#[[EXCHANGE_HEADERS]]
#HEADER="CB-ACCESS-SIGN"
#VALUE="COINBASEPRO__CB-ACCESS-SIGN:<coinbasepro-api-secret-here>"
#[[EXCHANGE_HEADERS]]
#HEADER="CB-ACCESS-TIMESTAMP"
#VALUE="TIMESTAMP:" # leave the value as "TIMESTAMP:" for coinbasepro
#[[EXCHANGE_HEADERS]]
#HEADER="CB-ACCESS-PASSPHRASE"
#VALUE="STATIC:<coinbasepro-passphrase-here>"
#[[EXCHANGE_HEADERS]]
#HEADER=""
#VALUE=""