mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-10 09:11:55 +00:00
bollmaker: add position stack config
This commit is contained in:
parent
f893c084d7
commit
57481a5c14
128
config/bollmaker-pstack.yaml
Normal file
128
config/bollmaker-pstack.yaml
Normal file
|
@ -0,0 +1,128 @@
|
|||
---
|
||||
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-09-01"
|
||||
endTime: "2021-09-30"
|
||||
symbols:
|
||||
- ETHUSDT
|
||||
account:
|
||||
balances:
|
||||
ETH: 1.0
|
||||
USDT: 200_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: 1
|
||||
|
||||
# dynamicExposurePositionScale overrides maxExposurePosition
|
||||
# for domain,
|
||||
# -1 means -100%, the price is on the lower band price.
|
||||
# if the price breaks the lower band, a number less than -1 will be given.
|
||||
# 1 means 100%, the price is on the upper band price.
|
||||
# if the price breaks the upper band, a number greater than 1 will be given, for example, 1.2 for 120%, and 1.3 for 130%.
|
||||
dynamicExposurePositionScale:
|
||||
byPercentage:
|
||||
# exp means we want to use exponential scale, you can replace "exp" with "linear" for linear scale
|
||||
exp:
|
||||
# from lower band -100% (-1) to upper band 100% (+1)
|
||||
domain: [ -1, 1 ]
|
||||
# when in down band, holds 1.0 by maximum
|
||||
# when in up band, holds 0.05 by maximum
|
||||
range: [ 10.0, 1.0 ]
|
||||
|
||||
# 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
|
||||
|
||||
# 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: "1h"
|
||||
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: 2.0
|
||||
|
||||
# tradeInBand: when tradeInBand is set, you will only place orders in the bollinger band.
|
||||
tradeInBand: false
|
||||
|
||||
# buyBelowNeutralSMA: when this set, it will only place buy order when the current price is below the SMA line.
|
||||
buyBelowNeutralSMA: false
|
||||
|
||||
persistence:
|
||||
type: redis
|
||||
|
||||
# Set up your stop order, this is optional
|
||||
# sometimes the stop order might decrease your total profit.
|
||||
# you can setup multiple stop,
|
||||
stops:
|
||||
# use trailing stop order
|
||||
- trailingStop:
|
||||
# callbackRate: when the price reaches -1% from the previous highest, we trigger the stop
|
||||
callbackRate: 5.1%
|
||||
|
||||
# closePosition is how much position do you want to close
|
||||
closePosition: 20%
|
||||
|
||||
# minProfit is how much profit you want to take.
|
||||
# if you set this option, your stop will only be triggered above the average cost.
|
||||
minProfit: 5%
|
||||
|
||||
# interval is the time interval for checking your stop
|
||||
interval: 1m
|
||||
|
||||
# virtual means we don't place a a REAL stop order
|
||||
# when virtual is on
|
||||
# the strategy won't place a REAL stop order, instead if watches the close price,
|
||||
# and if the condition matches, it submits a market order to close your position.
|
||||
virtual: true
|
||||
|
Loading…
Reference in New Issue
Block a user