Files
jesse-trading/jesse/config.py

196 lines
5.9 KiB
Python

config = {
# these values are related to the user's environment
'env': {
'databases': {
'postgres_host': '127.0.0.1',
'postgres_name': 'jesse_db',
'postgres_port': 5432,
'postgres_username': 'jesse_user',
'postgres_password': 'password',
},
'caching': {
'driver': None
},
'logging': {
'order_submission': True,
'order_cancellation': True,
'order_execution': True,
'position_opened': True,
'position_increased': True,
'position_reduced': True,
'position_closed': True,
'shorter_period_candles': False,
'trading_candles': True,
'balance_update': True,
},
'exchanges': {
'Sandbox': {
'fee': 0,
'type': 'spot',
# used only in margin trading
'settlement_currency': 'USDT',
'assets': [
{'asset': 'USDT', 'balance': 10000},
{'asset': 'BTC', 'balance': 0},
],
},
# https://www.bitfinex.com
'Bitfinex': {
'type': 'margin',
# used only in margin trading
'settlement_currency': 'USD',
'fee': 0.002,
'assets': [
{'asset': 'USDT', 'balance': 10000},
{'asset': 'USD', 'balance': 10000},
{'asset': 'BTC', 'balance': 0},
],
},
# https://www.binance.com
'Binance': {
'type': 'spot',
# used only in margin trading
'settlement_currency': 'USDT',
'fee': 0.001,
'assets': [
{'asset': 'USDT', 'balance': 10000},
{'asset': 'BTC', 'balance': 0},
],
},
# https://www.binance.com
'Binance Futures': {
'type': 'margin',
# used only in margin trading
'settlement_currency': 'USDT',
'fee': 0.0002,
'assets': [
{'asset': 'USDT', 'balance': 10000},
],
},
# https://testnet.binancefuture.com
'Testnet Binance Futures': {
'type': 'margin',
# used only in margin trading
'settlement_currency': 'USDT',
'fee': 0.0002,
'assets': [
{'asset': 'USDT', 'balance': 10000},
],
},
# https://pro.coinbase.com
'Coinbase': {
'type': 'spot',
# used only in margin trading
'settlement_currency': 'USDT',
'fee': 0.005,
'assets': [
{'asset': 'USDT', 'balance': 10000},
{'asset': 'BTC', 'balance': 0},
],
},
'Polygon': {
'api_key': '',
},
},
# changes the metrics output of the backtest
'metrics': {
'sharpe_ratio': True,
'calmar_ratio': False,
'sortino_ratio': False,
'omega_ratio': False,
'winning_streak': False,
'losing_streak': False,
'largest_losing_trade': False,
'largest_winning_trade': False,
'total_winning_trades': False,
'total_losing_trades': False,
},
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Optimize mode
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Below configurations are related to the optimize mode
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
'optimization': {
# sharpe, calmar, sortino, omega
'ratio': 'sharpe',
},
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Data
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Below configurations are related to the data
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
'data': {
# The minimum number of warmup candles that is loaded before each session.
'warmup_candles_num': 210,
}
},
# These values are just placeholders used by Jesse at runtime
'app': {
# list of currencies to consider
'considering_symbols': [],
# The symbol to trade.
'trading_symbols': [],
# list of time frames to consider
'considering_timeframes': [],
# Which candle type do you intend trade on
'trading_timeframes': [],
# list of exchanges to consider
'considering_exchanges': [],
# list of exchanges to consider
'trading_exchanges': [],
'considering_candles': [],
# dict of registered live trade drivers
'live_drivers': {},
# Accepted values are: 'backtest', 'livetrade', 'fitness'.
'trading_mode': '',
# variable used for test-driving the livetrade mode
'is_test_driving': False,
# this would enable many console.log()s in the code, which are helpful for debugging.
'debug_mode': False,
},
}
backup_config = config.copy()
def set_config(c):
global config
config['env'] = c
# add sandbox because it isn't in the local config file
config['env']['exchanges']['Sandbox'] = {
'type': 'spot',
# used only in margin trading
'settlement_currency': 'USDT',
'fee': 0,
'assets': [
{'asset': 'USDT', 'balance': 10000},
{'asset': 'BTC', 'balance': 0},
],
}
def reset_config():
global config
config = backup_config.copy()