bbgo_origin/config/bollmaker.yaml

91 lines
3.3 KiB
YAML

---
persistence:
redis:
host: 127.0.0.1
port: 6379
db: 0
# example command:
# godotenv -f .env.local -- go run ./cmd/bbgo backtest --exchange max --sync-from 2020-11-01 --config config/grid.yaml --base-asset-baseline
backtest:
# for testing max draw down (MDD) at 03-12
# see here for more details
# https://www.investopedia.com/terms/m/maximum-drawdown-mdd.asp
startTime: "2021-08-01"
endTime: "2021-08-30"
symbols:
- ETHUSDT
account:
balances:
ETH: 1.0
USDT: 20_000.0
exchangeStrategies:
- on: binance
bollmaker:
symbol: ETHUSDT
# interval is how long do you want to update your order price and quantity
interval: 1m
# quantity is the base order quantity for your buy/sell order.
quantity: 0.05
# useTickerPrice use the ticker api to get the mid price instead of the closed kline price.
# The back-test engine is kline-based, so the ticker price api is not supported.
# Turn this on if you want to do real trading.
useTickerPrice: false
# spread is the price spread from the middle price.
# For ask orders, the ask price is ((bestAsk + bestBid) / 2 * (1.0 + spread))
# For bid orders, the bid price is ((bestAsk + bestBid) / 2 * (1.0 - spread))
# Spread can be set by percentage or floating number. e.g., 0.1% or 0.001
spread: 0.1%
# minProfitSpread is the minimal order price spread from the current average cost.
# For long position, you will only place sell order above the price (= average cost * (1 + minProfitSpread))
# For short position, you will only place buy order below the price (= average cost * (1 - minProfitSpread))
minProfitSpread: 0.1%
# maxExposurePosition is the maximum position you can hold
# +10 means you can hold 10 ETH long position by maximum
# -10 means you can hold -10 ETH short position by maximum
# maxExposurePosition: 3.0
maxExposurePosition: 10
# DisableShort means you can don't want short position during the market making
# THe short here means you might sell some of your existing inventory.
disableShort: true
# strongUptrendSkew is the order quantity skew for strong uptrend band.
# when the bollinger band detect a strong uptrend, what's the order quantity skew we want to use.
# greater than 1.0 means when placing buy order, place sell order with less quantity
# less than 1.0 means when placing sell order, place buy order with less quantity
strongUptrendSkew: 0.3
# strongDowntrendSkew is the order quantity skew for strong downtrend band.
# when the bollinger band detect a strong downtrend, what's the order quantity skew we want to use.
# greater than 1.0 means when placing buy order, place sell order with less quantity
# less than 1.0 means when placing sell order, place buy order with less quantity
strongDowntrendSkew: 2.0
# uptrendSkew, like the strongUptrendSkew, but the price is still in the default band.
uptrendSkew: 0.8
# downtrendSkew, like the strongDowntrendSkew, but the price is still in the default band.
downtrendSkew: 1.2
defaultBollinger:
interval: "5m"
window: 21
bandWidth: 2.0
# neutralBollinger is the smaller range of the bollinger band
# If price is in this band, it usually means the price is oscillating.
neutralBollinger:
interval: "5m"
window: 21
bandWidth: 1.0