mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-10 09:11:55 +00:00
update: readme for dnum. fix: script for curl downloading
This commit is contained in:
parent
bc0429c0fd
commit
e5c3dffb59
22
README.md
22
README.md
|
@ -35,6 +35,7 @@ A trading bot framework written in Go. The name bbgo comes from the BB8 bot in t
|
||||||
- Docker image ready.
|
- Docker image ready.
|
||||||
- Kubernetes support.
|
- Kubernetes support.
|
||||||
- Helm chart ready.
|
- Helm chart ready.
|
||||||
|
- High precision float point (up to 16 digits, run with `-tags dnum`).
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
|
@ -62,14 +63,13 @@ Get your exchange API key and secret after you register the accounts (you can ch
|
||||||
- OKEx: <https://www.okex.com/join/2412712?src=from:ios-share>
|
- OKEx: <https://www.okex.com/join/2412712?src=from:ios-share>
|
||||||
- Kucoin: <https://www.kucoin.com/ucenter/signup?rcode=r3KX2D4>
|
- Kucoin: <https://www.kucoin.com/ucenter/signup?rcode=r3KX2D4>
|
||||||
|
|
||||||
Since the exchange implementation and support are done by a small team, if you like the work they've done for you, It
|
This project is maintained and supported by a small group of team. If you would like to support this project, please register on the exchanges using the provided links with referral codes above.
|
||||||
would be great if you can use their referral code as your support to them. :-D
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### Install from binary
|
### Install from binary
|
||||||
|
|
||||||
The following script will help you set up a config file, dotenv file:
|
The following script will help you set up a config file and a dotenv file:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# grid trading strategy for binance exchange
|
# grid trading strategy for binance exchange
|
||||||
|
@ -77,8 +77,24 @@ bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-gri
|
||||||
|
|
||||||
# grid trading strategy for max exchange
|
# grid trading strategy for max exchange
|
||||||
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-grid.sh) max
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-grid.sh) max
|
||||||
|
|
||||||
|
# bollinger grid trading strategy for binance exchange
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-bollgrid.sh) binance
|
||||||
|
|
||||||
|
# bollinger grid trading strategy for max exchange
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-bollgrid.sh) max
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you already have configuration somewhere, a download-only script might be suitable for you:
|
||||||
|
```sh
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/download.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
Or refer to the [Release Page](https://github.com/c9s/bbgo/releases) and download manually.
|
||||||
|
|
||||||
|
Since v2, we've added new float point implementation from dnum to support decimals with higher precision.
|
||||||
|
To download & setup, please refer to [Dnum Installation](doc/topics/dnum-binary.md)
|
||||||
|
|
||||||
### One-click Linode StackScript:
|
### One-click Linode StackScript:
|
||||||
|
|
||||||
- BBGO Grid Trading on Binance <https://cloud.linode.com/stackscripts/950715>
|
- BBGO Grid Trading on Binance <https://cloud.linode.com/stackscripts/950715>
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
* [Build From Source](build-from-source.md) - How to build bbgo
|
* [Build From Source](build-from-source.md) - How to build bbgo
|
||||||
* [Back-testing](topics/back-testing.md) - How to back-test strategies
|
* [Back-testing](topics/back-testing.md) - How to back-test strategies
|
||||||
* [TWAP](topics/twap.md) - TWAP order execution to buy/sell large quantity of order
|
* [TWAP](topics/twap.md) - TWAP order execution to buy/sell large quantity of order
|
||||||
|
* [Dnum Installation](topics/dnum-binary.md) - installation of high-precision version of bbgo
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
* [Setting up Slack Notification](configuration/slack.md)
|
* [Setting up Slack Notification](configuration/slack.md)
|
||||||
|
|
26
doc/topics/dnum-binary.md
Normal file
26
doc/topics/dnum-binary.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
## Dnum: High Precision Numeric Implementation
|
||||||
|
----------------------------------------------
|
||||||
|
The `dnum` version of `fixedpoint` supports up to 16 digits of decimal precision. It's two times slower than the legacy version, which only supports up to 8 digits of decimal precision. We recommend that strategy developers do algorithmic calculations in `float64`, then convert them back to `fixedpoint` to interact with exchanges to keep the balance between speed and the accuracy of accounting result.
|
||||||
|
|
||||||
|
To Install dnum version of bbgo, we've create several scripts for quick setup:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# grid trading strategy for binance exchange
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-grid-dnum.sh) binance
|
||||||
|
|
||||||
|
# grid trading strategy for max exchange
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-grid-dnum.sh) max
|
||||||
|
|
||||||
|
# bollinger grid trading strategy for binance exchange
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-bollgrid-dnum.sh) binance
|
||||||
|
|
||||||
|
# bollinger grid trading strategy for max exchange
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-bollgrid-dnum.sh) max
|
||||||
|
```
|
||||||
|
|
||||||
|
If you already have the configuration somewhere, you may want to use the download-only script:
|
||||||
|
```sh
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/download-dnum.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
The precompiled dnum binaries are also available in the [Release Page](https://github.com/c9s/bbgo/releases).
|
40
scripts/download-dnum.sh
Normal file
40
scripts/download-dnum.sh
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
|
arch=""
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
dist_file=bbgo-dnum-$version-$osf-$arch.tar.gz
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
function warn()
|
||||||
|
{
|
||||||
|
echo -e "${YELLOW}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function error()
|
||||||
|
{
|
||||||
|
echo -e "${RED}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function info()
|
||||||
|
{
|
||||||
|
echo -e "${GREEN}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
info "downloading..."
|
||||||
|
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
||||||
|
tar xzf $dist_file
|
||||||
|
mv bbgo-dnum-$osf-$arch bbgo
|
||||||
|
chmod +x bbgo
|
||||||
|
info "downloaded successfully"
|
|
@ -1,8 +1,16 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
|
arch=""
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
version=v1.15.2
|
dist_file=bbgo-$version-$osf-$arch.tar.gz
|
||||||
dist_file=bbgo-$version-$osf-amd64.tar.gz
|
|
||||||
|
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
|
@ -27,6 +35,6 @@ function info()
|
||||||
info "downloading..."
|
info "downloading..."
|
||||||
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
||||||
tar xzf $dist_file
|
tar xzf $dist_file
|
||||||
mv bbgo-$osf bbgo
|
mv bbgo-$osf-$arch bbgo
|
||||||
chmod +x bbgo
|
chmod +x bbgo
|
||||||
info "downloaded successfully"
|
info "downloaded successfully"
|
||||||
|
|
109
scripts/setup-bollgrid-dnum.sh
Normal file
109
scripts/setup-bollgrid-dnum.sh
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
function warn()
|
||||||
|
{
|
||||||
|
echo -e "${YELLOW}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function error()
|
||||||
|
{
|
||||||
|
echo -e "${RED}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function info()
|
||||||
|
{
|
||||||
|
echo -e "${GREEN}$@${NC}"
|
||||||
|
}
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
|
arch=""
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
dist_file=bbgo-dnum-$version-$osf-$arch.tar.gz
|
||||||
|
|
||||||
|
info "downloading..."
|
||||||
|
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
||||||
|
tar xzf $dist_file
|
||||||
|
mv bbgo-dnum-$osf-$arch bbgo
|
||||||
|
chmod +x bbgo
|
||||||
|
info "downloaded successfully"
|
||||||
|
|
||||||
|
function gen_dotenv()
|
||||||
|
{
|
||||||
|
read -p "Enter your MAX API key: " api_key
|
||||||
|
read -p "Enter your MAX API secret: " api_secret
|
||||||
|
echo "Generating your .env.local file..."
|
||||||
|
cat <<END > .env.local
|
||||||
|
MAX_API_KEY=$api_key
|
||||||
|
MAX_API_SECRET=$api_secret
|
||||||
|
END
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -e ".env.local" ]] ; then
|
||||||
|
echo "Found existing .env.local, you will overwrite the existing .env.local file!"
|
||||||
|
read -p "Are you sure? (Y/n) " a
|
||||||
|
if [[ $a != "n" ]] ; then
|
||||||
|
gen_dotenv
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
gen_dotenv
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e "bbgo.yaml" ]] ; then
|
||||||
|
echo "Found existing bbgo.yaml, you will overwrite the existing bbgo.yaml file!"
|
||||||
|
read -p "Are you sure? (Y/n) " a
|
||||||
|
if [[ $a == "n" ]] ; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<END > bbgo.yaml
|
||||||
|
---
|
||||||
|
exchangeStrategies:
|
||||||
|
- on: max
|
||||||
|
bollgrid:
|
||||||
|
symbol: BTCUSDT
|
||||||
|
interval: 1h
|
||||||
|
gridNumber: 20
|
||||||
|
quantity: 0.001
|
||||||
|
profitSpread: 100.0
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
info "config file is generated successfully"
|
||||||
|
echo "================================================================"
|
||||||
|
echo "now you can edit your strategy config file bbgo.yaml to run bbgo"
|
||||||
|
|
||||||
|
if [[ $osf == "darwin" ]] ; then
|
||||||
|
echo "we found you're using MacOS, you can type:"
|
||||||
|
echo ""
|
||||||
|
echo " open -a TextEdit bbgo.yaml"
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "you look like a pro user, you can edit the config by:"
|
||||||
|
echo ""
|
||||||
|
echo " vim bbgo.yaml"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "To run bbgo just type: "
|
||||||
|
echo ""
|
||||||
|
echo " ./bbgo run"
|
||||||
|
echo ""
|
||||||
|
echo "To stop bbgo, just hit CTRL-C"
|
||||||
|
|
||||||
|
if [[ $osf == "darwin" ]] ; then
|
||||||
|
open -a TextEdit bbgo.yaml
|
||||||
|
fi
|
|
@ -20,10 +20,16 @@ function info()
|
||||||
{
|
{
|
||||||
echo -e "${GREEN}$@${NC}"
|
echo -e "${GREEN}$@${NC}"
|
||||||
}
|
}
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
arch=amd64
|
arch=""
|
||||||
version=v1.21.4
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
dist_file=bbgo-$version-$osf-$arch.tar.gz
|
dist_file=bbgo-$version-$osf-$arch.tar.gz
|
||||||
|
|
||||||
info "downloading..."
|
info "downloading..."
|
||||||
|
|
114
scripts/setup-dnum.sh
Normal file
114
scripts/setup-dnum.sh
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
|
arch=""
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
dist_file=bbgo-dnum-$version-$osf-$arch.tar.gz
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
function warn()
|
||||||
|
{
|
||||||
|
echo -e "${YELLOW}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function error()
|
||||||
|
{
|
||||||
|
echo -e "${RED}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function info()
|
||||||
|
{
|
||||||
|
echo -e "${GREEN}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
info "downloading..."
|
||||||
|
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
||||||
|
tar xzf $dist_file
|
||||||
|
mv bbgo-dnum-$osf-$arch bbgo
|
||||||
|
chmod +x bbgo
|
||||||
|
info "downloaded successfully"
|
||||||
|
|
||||||
|
if [[ -e "bbgo.yaml" ]] ; then
|
||||||
|
echo "Found existing bbgo.yaml, you will overwrite the existing bbgo.yaml file!"
|
||||||
|
read -p "Are you sure? (Y/n) " a
|
||||||
|
if [[ $a == "n" ]] ; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<END > bbgo.yaml
|
||||||
|
---
|
||||||
|
riskControls:
|
||||||
|
sessionBased:
|
||||||
|
max:
|
||||||
|
orderExecutor:
|
||||||
|
bySymbol:
|
||||||
|
BTCUSDT:
|
||||||
|
# basic risk control order executor
|
||||||
|
basic:
|
||||||
|
minQuoteBalance: 100.0
|
||||||
|
maxBaseAssetBalance: 3.0
|
||||||
|
minBaseAssetBalance: 0.0
|
||||||
|
maxOrderAmount: 1000.0
|
||||||
|
|
||||||
|
exchangeStrategies:
|
||||||
|
- on: max
|
||||||
|
grid:
|
||||||
|
symbol: BTCUSDT
|
||||||
|
quantity: 0.002
|
||||||
|
gridNumber: 100
|
||||||
|
profitSpread: 50.0
|
||||||
|
upperPrice: 14000.0
|
||||||
|
lowerPrice: 11000.0
|
||||||
|
END
|
||||||
|
|
||||||
|
echo "Config file is generated"
|
||||||
|
|
||||||
|
if [[ -e ".env.local" ]] ; then
|
||||||
|
echo "Found existing .env.local, you will overwrite the existing .env.local file!"
|
||||||
|
read -p "Are you sure? (Y/n) " a
|
||||||
|
if [[ $a == "n" ]] ; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -p "Enter your MAX API key: " api_key
|
||||||
|
|
||||||
|
read -p "Enter your MAX API secret: " api_secret
|
||||||
|
|
||||||
|
echo "Generating your .env.local file..."
|
||||||
|
cat <<END > .env.local
|
||||||
|
export MAX_API_KEY=$api_key
|
||||||
|
export MAX_API_SECRET=$api_secret
|
||||||
|
END
|
||||||
|
|
||||||
|
echo "Now you can edit your strategy config file bbgo.yaml to run bbgo"
|
||||||
|
|
||||||
|
if [[ $osf == "darwin" ]] ; then
|
||||||
|
echo "We found you're using MacOS, you can type:"
|
||||||
|
echo ""
|
||||||
|
echo " open -a TextEdit bbgo.yaml"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "To run bbgo just type: "
|
||||||
|
echo ""
|
||||||
|
echo " source .env.local && ./bbgo run --config bbgo.yaml"
|
||||||
|
echo ""
|
||||||
|
echo "To stop bbgo, just hit CTRL-C"
|
||||||
|
|
||||||
|
if [[ $osf == "darwin" ]] ; then
|
||||||
|
open -a TextEdit bbgo.yaml
|
||||||
|
fi
|
||||||
|
|
121
scripts/setup-grid-dnum.sh
Normal file
121
scripts/setup-grid-dnum.sh
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
function warn()
|
||||||
|
{
|
||||||
|
echo -e "${YELLOW}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function error()
|
||||||
|
{
|
||||||
|
echo -e "${RED}$@${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function info()
|
||||||
|
{
|
||||||
|
echo -e "${GREEN}$@${NC}"
|
||||||
|
}
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
|
arch=""
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
dist_file=bbgo-dnum-$version-$osf-$arch.tar.gz
|
||||||
|
exchange=max
|
||||||
|
|
||||||
|
if [[ -n $1 ]] ; then
|
||||||
|
exchange=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exchange_upper=$(echo -n $exchange | tr 'a-z' 'A-Z')
|
||||||
|
|
||||||
|
|
||||||
|
info "downloading..."
|
||||||
|
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
||||||
|
tar xzf $dist_file
|
||||||
|
mv bbgo-dnum-$osf-$arch bbgo
|
||||||
|
chmod +x bbgo
|
||||||
|
info "downloaded successfully"
|
||||||
|
|
||||||
|
function gen_dotenv()
|
||||||
|
{
|
||||||
|
read -p "Enter your $exchange_upper API key: " api_key
|
||||||
|
read -p "Enter your $exchange_upper API secret: " api_secret
|
||||||
|
info "generating your .env.local file..."
|
||||||
|
cat <<END > .env.local
|
||||||
|
${exchange_upper}_API_KEY=$api_key
|
||||||
|
${exchange_upper}_API_SECRET=$api_secret
|
||||||
|
END
|
||||||
|
|
||||||
|
info "dotenv is configured successfully"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -e ".env.local" ]] ; then
|
||||||
|
warn "found an existing .env.local, you will overwrite the existing .env.local file!"
|
||||||
|
read -p "are you sure? (Y/n) " a
|
||||||
|
if [[ $a != "n" ]] ; then
|
||||||
|
gen_dotenv
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
gen_dotenv
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -e "bbgo.yaml" ]] ; then
|
||||||
|
warn "found existing bbgo.yaml, you will overwrite the existing bbgo.yaml file!"
|
||||||
|
read -p "are you sure? (Y/n) " a
|
||||||
|
if [[ $a == "n" ]] ; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<END > bbgo.yaml
|
||||||
|
---
|
||||||
|
exchangeStrategies:
|
||||||
|
- on: ${exchange}
|
||||||
|
grid:
|
||||||
|
symbol: BTCUSDT
|
||||||
|
quantity: 0.001
|
||||||
|
gridNumber: 100
|
||||||
|
profitSpread: 100.0
|
||||||
|
upperPrice: 50_000.0
|
||||||
|
lowerPrice: 10_000.0
|
||||||
|
long: true
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
info "config file is generated successfully"
|
||||||
|
echo "================================================================"
|
||||||
|
echo "now you can edit your strategy config file bbgo.yaml to run bbgo"
|
||||||
|
|
||||||
|
if [[ $osf == "darwin" ]] ; then
|
||||||
|
echo "we found you're using MacOS, you can type:"
|
||||||
|
echo ""
|
||||||
|
echo " open -a TextEdit bbgo.yaml"
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "you look like a pro user, you can edit the config by:"
|
||||||
|
echo ""
|
||||||
|
echo " vim bbgo.yaml"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "To run bbgo just type: "
|
||||||
|
echo ""
|
||||||
|
echo " ./bbgo run"
|
||||||
|
echo ""
|
||||||
|
echo "To stop bbgo, just hit CTRL-C"
|
||||||
|
|
||||||
|
if [[ $osf == "darwin" ]] ; then
|
||||||
|
open -a TextEdit bbgo.yaml
|
||||||
|
fi
|
|
@ -21,9 +21,16 @@ function info()
|
||||||
echo -e "${GREEN}$@${NC}"
|
echo -e "${GREEN}$@${NC}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
arch=amd64
|
arch=""
|
||||||
version=v1.21.4
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
dist_file=bbgo-$version-$osf-$arch.tar.gz
|
dist_file=bbgo-$version-$osf-$arch.tar.gz
|
||||||
exchange=max
|
exchange=max
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}')
|
||||||
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
osf=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
version=v1.21.4
|
arch=""
|
||||||
dist_file=bbgo-$version-$osf-amd64.tar.gz
|
case $(uname -m) in
|
||||||
|
x86_64 | ia64) arch="amd64";;
|
||||||
|
arm64 | aarch64 | arm) arch="arm64";;
|
||||||
|
*)
|
||||||
|
echo "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
dist_file=bbgo-$version-$osf-$arch.tar.gz
|
||||||
|
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
|
@ -27,7 +35,7 @@ function info()
|
||||||
info "downloading..."
|
info "downloading..."
|
||||||
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file
|
||||||
tar xzf $dist_file
|
tar xzf $dist_file
|
||||||
mv bbgo-$osf bbgo
|
mv bbgo-$osf-$arch bbgo
|
||||||
chmod +x bbgo
|
chmod +x bbgo
|
||||||
info "downloaded successfully"
|
info "downloaded successfully"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user