Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
5727 commits
Select commit Hold shift + click to select a range
b2bbf2d
grid2: add comment to the sync call
c9s Mar 1, 2023
f553ee0
grid2: log base fee rounding precision
c9s Mar 1, 2023
1d8df08
fixedpoint: fix fixedpoint rounding
c9s Mar 1, 2023
fe37a27
Merge pull request #1073 from c9s/fix/dec-rounding
c9s Mar 1, 2023
6ee2c34
feat: add private strategy demo trading-gpt
yubing744 Mar 1, 2023
4aa25db
grid2: add one more calculateMinimalQuoteInvestment test case
c9s Mar 2, 2023
729d32a
grid2: add minimal quote investment check error log
c9s Mar 2, 2023
01ecdc8
fix order submit retry
c9s Mar 2, 2023
11329df
grid2: add StopIfLessThanMinimalQuoteInvestment option
c9s Mar 2, 2023
385a974
grid2: add StopIfLessThanMinimalQuoteInvestment doc comment
c9s Mar 2, 2023
3cb190c
bbgo: apply logger into the order executor
c9s Mar 2, 2023
a2c6b0d
go: mod tidy
c9s Mar 2, 2023
5c3a01e
bbgo: fix logger usage
c9s Mar 2, 2023
f4b0126
bbgo: add back retry timeout context
c9s Mar 2, 2023
ae5bd50
bbgo: add BBGO_SUBMIT_ORDER_RETRY_TIMEOUT env var for overriding timeout
c9s Mar 2, 2023
6947c8b
grid2: improve clean up
c9s Mar 2, 2023
5212365
grid2: remove s.ExchangeSession check
c9s Mar 2, 2023
86584b0
grid2: fix exchange session field
c9s Mar 2, 2023
c5e2acf
grid2: call Initialize in clean up
c9s Mar 2, 2023
904491e
add orderType parameter
narumiruna Mar 2, 2023
e915825
grid2: defer call grid closed
c9s Mar 2, 2023
d03c7d6
Merge pull request #1074 from c9s/narumi/rebalance/order-type
c9s Mar 2, 2023
bc7a071
FIX: add persistence service to environment
gx578007 Mar 2, 2023
8039068
Merge pull request #1075 from c9s/bhwu/add-persistence-to-env
gx578007 Mar 2, 2023
16fe416
Merge pull request #1069 from yubing744/feature/add-private-strategy-…
c9s Mar 2, 2023
5cbc6f1
grid2: aggregate order fee instead of only base fee
c9s Mar 3, 2023
bd86a89
grid2: return fee currency
c9s Mar 3, 2023
9a89237
grid2: fix base/quote fee reduction
c9s Mar 3, 2023
ca741f9
grid2: add fee currency check for buy order
c9s Mar 3, 2023
bf4553d
grid2: add OrderFillDelay option
c9s Mar 3, 2023
bfcb60d
Merge pull request #1076 from c9s/fix/grid2/fix-fee-reduction
c9s Mar 3, 2023
4deefef
FEATURE: save expiring data to redis
gx578007 Mar 3, 2023
41b237e
Merge pull request #1077 from c9s/bhwu/support-redis-expiration
gx578007 Mar 3, 2023
0d41f02
grid2: rewrite cancel all check loop
c9s Mar 3, 2023
fa395b0
grid2: improve the onStart handler
c9s Mar 3, 2023
3f560b2
grid2: backoff retry open orders api
c9s Mar 3, 2023
1a109c1
grid2: use write context for submitting orders
c9s Mar 3, 2023
e2435f1
grid2: pass submit orders in one call since we have solved the order …
c9s Mar 3, 2023
d21ded2
Merge pull request #1078 from c9s/fix/grid2/improve-cancel-all-check
c9s Mar 3, 2023
9d1da7c
grid2: remove outdated comment
c9s Mar 3, 2023
45da0bd
Merge pull request #1079 from c9s/fix/grid2/write-context
c9s Mar 3, 2023
94b946a
add orderType parameter
narumiruna Mar 3, 2023
ec0d438
FIX: [grid2] fix active orderbook at recovering
gx578007 Mar 5, 2023
fc1efff
Merge pull request #1081 from c9s/bhwu/fix-recover
c9s Mar 5, 2023
0f307bb
grid2: pull out start process to a function
c9s Mar 5, 2023
5805f0c
grid2: call cancelWrite before everything
c9s Mar 5, 2023
a01888d
bbgo: fix logger usage in BatchRetryPlaceOrder
c9s Mar 5, 2023
07f2de4
bbgo: print submit order in the message
c9s Mar 5, 2023
4927dd7
grid2: add more logs
c9s Mar 5, 2023
584fae1
grid2: fix recover order filtering
c9s Mar 5, 2023
dfba758
grid2: add one more log
c9s Mar 5, 2023
a5e35b4
FIX: add mutex in memory store
gx578007 Mar 5, 2023
773b055
grid2: fix length check
c9s Mar 5, 2023
9f29fbd
grid2: add order group id to the submitOrder forms
c9s Mar 5, 2023
958e49d
Merge pull request #1082 from c9s/bhwu/add-mutex-to-mem-store
c9s Mar 5, 2023
1dd6f9e
grid2: remove order group cancel
c9s Mar 6, 2023
d466a63
FIX: add group id on submit order API
kbearXD Mar 6, 2023
83d9977
make sure group id is > 0
kbearXD Mar 6, 2023
d4912ed
FIX: [grid2] avoid initializing metrics twice
gx578007 Mar 6, 2023
bb80df0
Merge pull request #1084 from c9s/bhwu/avoid-init-metrics-twice
c9s Mar 6, 2023
4e6614e
Merge pull request #1083 from c9s/fix/maxapi/group-id
c9s Mar 6, 2023
cd500e6
set order type default value in Defaults method
narumiruna Mar 6, 2023
00e022d
fixup! set order type default value in Defaults method
narumiruna Mar 6, 2023
f064f5f
Merge pull request #1080 from c9s/narumi/marketcap/order-type
narumiruna Mar 6, 2023
f805445
FIX: [grid2] group id should be bound by MaxInt32
gx578007 Mar 7, 2023
b04492a
Merge pull request #1085 from c9s/bhwu/grid2/fix-group-id
gx578007 Mar 7, 2023
62eed96
grid2: round down quoteQuantity/baseQuantity after the fee reduction
c9s Mar 7, 2023
756a3bb
grid2: add base round down for buy order
c9s Mar 7, 2023
f26568e
Merge pull request #1086 from c9s/fix/grid2/quote-fee-rounding
c9s Mar 7, 2023
db119a2
grid2: update metrics before we re-play orders
c9s Mar 7, 2023
72b6f73
grid2: fix complete grid order book condition
c9s Mar 7, 2023
a75bc2e
grid2: add isCompleteGridOrderBook doc comment
c9s Mar 7, 2023
2970f73
improve/exit: show symbol in trailing stop triggered message
andycheng123 Mar 8, 2023
c860e45
grid2: simplify isCompleteGridOrderBook
c9s Mar 8, 2023
9068ed7
fix/scale: fix LinearScale calculation
andycheng123 Mar 8, 2023
9516340
fix/scale: update test case
andycheng123 Mar 8, 2023
58b2678
improve/exit: use roi.Percentage() instead of roi.Float64()
andycheng123 Mar 8, 2023
f9f6346
FEATURE: split self trades when use MAX RESTful API to query trades
kbearXD Mar 8, 2023
93dc8e3
Merge pull request #1088 from c9s/fix/grid2/recover
c9s Mar 8, 2023
3a6d210
Merge pull request #1089 from andycheng123/improve/exit
c9s Mar 8, 2023
f92bcda
improve/exit: fix typo
andycheng123 Mar 8, 2023
40e2296
add positions and profit stats
narumiruna Mar 8, 2023
5988567
FEATURE: [grid2] add more metrics and fix metric-related issues
gx578007 Mar 8, 2023
045c8de
refactor metric function to be separated in terms of lock
gx578007 Mar 9, 2023
5b4b1e8
Merge pull request #1091 from c9s/feature/maxapi/split-self-trade
kbearXD Mar 9, 2023
d29c3fa
FIX: use updated_at instead of created_at to convert MAX order to typ…
kbearXD Mar 9, 2023
517a7c6
Merge pull request #1092 from c9s/bhwu/grid2/add-more-metrics
gx578007 Mar 9, 2023
1ebdd37
Merge pull request #1093 from c9s/narumi/rebalance/positions
narumiruna Mar 9, 2023
ead5486
FIX: filter wrong order id from self-trade trades
kbearXD Mar 9, 2023
4586f68
Merge pull request #1094 from c9s/fix/maxapi/order-updated-at
kbearXD Mar 9, 2023
6a6d7a6
Merge pull request #1095 from c9s/fix/maxapi/query-trades-by-order-id
kbearXD Mar 9, 2023
4288c82
FEATURE: recover grids with open orders by querying trades process an…
kbearXD Mar 7, 2023
67001fc
new config 'recoverGridByScanningTrades'
kbearXD Mar 9, 2023
b672889
Merge pull request #1087 from c9s/feature/grids/recover-from-trades
kbearXD Mar 10, 2023
ccf567f
grid2: add ClearDuplicatedPriceOpenOrders option
c9s Mar 9, 2023
64e0a16
grid2: add debug option
c9s Mar 9, 2023
f093c73
grid2: add queryOpenOrdersUntilSuccessful func
c9s Mar 10, 2023
89abbeb
grid2: add context to backoffs
c9s Mar 10, 2023
df6e58d
grid2: replace all openOrders query to queryOpenOrdersUntilSuccessful
c9s Mar 10, 2023
2ba2cbf
Merge pull request #1096 from c9s/feature/grid2-clear-dup-price-open-…
c9s Mar 10, 2023
d51a802
fix/scale: fix typo and add some more tests
andycheng123 Mar 10, 2023
78d65d7
Merge pull request #1090 from andycheng123/fix/scale
c9s Mar 10, 2023
36f48bc
FIX: fix format string float point issue
kbearXD Mar 10, 2023
fd2032b
FIX: [grid2] avoid handling one orderID twice
gx578007 Mar 10, 2023
a7cfd48
add fixedmaker
narumiruna Mar 10, 2023
c660992
grid2: fix Warn by using Warnf
c9s Mar 10, 2023
3eae532
grid2: init filledOrderIDMap for tests
c9s Mar 10, 2023
c84fbc7
Merge pull request #1099 from c9s/bhwu/grid2/handle-dup-orderid
c9s Mar 10, 2023
31e299b
Merge pull request #1101 from c9s/narumi/fixedmaker
c9s Mar 10, 2023
291a6f2
fix test error
kbearXD Mar 10, 2023
8c9ed05
add more test case
kbearXD Mar 10, 2023
16b3096
FIX: [grid2] specify client order id explicitly
gx578007 Mar 10, 2023
74656e0
fix fixedmaker errors
narumiruna Mar 10, 2023
5ea007a
Merge pull request #1102 from c9s/narumi/fixedmaker
narumiruna Mar 10, 2023
b050ae4
grid2: fix log format
c9s Mar 11, 2023
4559a35
graceful cancel in rebalance strategy
narumiruna Mar 12, 2023
51a52d1
comment out negative precision for dnum
kbearXD Mar 13, 2023
94828e6
Merge pull request #1103 from c9s/narumi/rebalance/graceful-cancel
narumiruna Mar 13, 2023
0ea345a
improve/linregmaker: fix balance calculation in backtesting
andycheng123 Jan 18, 2023
a607f23
improve/linregmaker: more log for can buy sell
andycheng123 Jan 6, 2023
3c14382
improve/linregmaker: fix StandardIndicatorSet initialization problem
andycheng123 Jan 16, 2023
6e854f8
improve/linregmaker: add MinProfitSpread
andycheng123 Jan 18, 2023
dd87d71
improve/linregmaker: fix end date of linregmaker config
andycheng123 Jan 6, 2023
5fc459d
improve/linregmaker: rename MinProfitDisableOn to MinProfitActivation…
andycheng123 Jan 19, 2023
cb412dc
improve/bollmaker: add MinProfitActivationRate
andycheng123 Jan 19, 2023
360173a
fix/linregmaker: fix syntax error
andycheng123 Feb 7, 2023
57d420f
Merge pull request #1098 from c9s/fix/precision/format-string
kbearXD Mar 13, 2023
83ba32b
mock SubmitOrders by DoAndReturn
gx578007 Mar 13, 2023
4b540fc
Merge pull request #1100 from c9s/bhwu/grid2/specify-client-order-id
gx578007 Mar 13, 2023
35ceda8
grid2: use newClientOrderID only for max
c9s Mar 13, 2023
07ebd83
Merge pull request #1052 from andycheng123/improve/linregmaker-minprofit
c9s Mar 13, 2023
4b3f00f
Merge pull request #1105 from c9s/strategy/grid2/client-order-id-max
c9s Mar 13, 2023
18b401e
update command doc files
c9s Mar 13, 2023
b58dcab
bump version to v1.44.0
c9s Mar 13, 2023
a5641f6
add v1.44.0 release note
c9s Mar 13, 2023
0b7f42c
adjust max amount by balance
narumiruna Mar 13, 2023
c9f6995
fix OrderExecutorMap's SumbitOrders
narumiruna Mar 13, 2023
640001f
check minimal order quantity
narumiruna Mar 13, 2023
0690518
add option to rebalance on start
narumiruna Mar 13, 2023
add9372
use mid price to calculate weight
narumiruna Mar 13, 2023
60d7d20
grid2: fix newline for the message format
c9s Mar 13, 2023
7af4e3b
FEATURE: get filled orders when bbgo down
kbearXD Mar 10, 2023
4af8523
new struct PinOrderMap
kbearXD Mar 13, 2023
9da8c39
avoid re-query same order
kbearXD Mar 14, 2023
cddf357
Merge pull request #1104 from c9s/narumi/rebalance/balance
narumiruna Mar 14, 2023
dce1e4c
rename buildSyncOrderMap to SyncOrderMap
kbearXD Mar 14, 2023
ee43884
Merge pull request #1097 from c9s/feature/grids/recover-from-trades
kbearXD Mar 14, 2023
e0b445f
FEATURE: make MAX QueryTrades support start_time, end_time
kbearXD Mar 14, 2023
da48e0f
make end_time down to start_time + 3 days if end_time > start_time + …
kbearXD Mar 14, 2023
0458858
fix position and profitstats
narumiruna Mar 14, 2023
78071dc
Merge pull request #1107 from c9s/feature/maxapi/support-time-range
kbearXD Mar 14, 2023
ca48904
fix/bollmaker: MinProfitActivationRate is disabled if it's not set
andycheng123 Mar 15, 2023
0a6c41c
fix/bollmaker: fix s.MinProfitActivationRate condition
andycheng123 Mar 15, 2023
c37bc27
Merge pull request #1110 from andycheng123/fix/bollmaker
c9s Mar 15, 2023
7d91fd0
Merge pull request #1109 from c9s/narumi/rebalance/fix-order-executor…
narumiruna Mar 15, 2023
af847f7
update command doc files
c9s Mar 15, 2023
40040ff
bump version to v1.44.1
c9s Mar 15, 2023
4c6fc4a
add v1.44.1 release note
c9s Mar 15, 2023
0882bc4
bollmaker: log submit order error
c9s Mar 15, 2023
0f9319a
make CreatePositions and CreateProfitStats public
narumiruna Mar 15, 2023
94f2bcf
Merge pull request #1111 from c9s/narumi/rebalance/public
narumiruna Mar 15, 2023
891cac0
FIX: fix wrong fee currency
kbearXD Mar 15, 2023
26054e4
fix on max api level
kbearXD Mar 15, 2023
da3b0bc
Merge pull request #1112 from c9s/fix/grids/fee-currency-case
c9s Mar 15, 2023
e686a26
FEATURE: verify the grids before emit filled orders
kbearXD Mar 15, 2023
f987c85
move info log to debug log
kbearXD Mar 15, 2023
ffdc242
use debugOrders
kbearXD Mar 15, 2023
74c465d
FIX: [grid2] fix correct price metrics
gx578007 Mar 15, 2023
50c626d
Merge pull request #1114 from c9s/feature/grids/recover-from-trades
c9s Mar 15, 2023
4ac5a2a
Merge pull request #1115 from c9s/bhwu/fix-correct-price-metrics
c9s Mar 15, 2023
2378951
bbgo: should get isolation from the ctx when saving state
c9s Mar 15, 2023
2fbe90b
bbgo: fix: pass isolated context to SaveState() call
c9s Mar 15, 2023
c3ee89c
Merge pull request #1116 from c9s/fix/save-state
c9s Mar 15, 2023
cf9a2e5
add skew to adjust bid/ask price
narumiruna Mar 15, 2023
52b2ffe
Merge pull request #1113 from c9s/narumi/fixedmaker/skew
narumiruna Mar 15, 2023
a5675f7
MINOR: use Debug config for debug log
kbearXD Mar 16, 2023
035735f
Merge pull request #1118 from c9s/feature/grids/recover-from-trades
c9s Mar 16, 2023
939427c
use ATR to adjust spread ratio
narumiruna Mar 15, 2023
57e3f46
Merge pull request #1117 from c9s/narumi/fixedmaker/atr
narumiruna Mar 16, 2023
feabade
FEATURE: make PinOrderMap's key from string to Pin
kbearXD Mar 16, 2023
0b922a9
grid2: pull out backoff cancel all to cancelAllOrdersUntilSuccessful
c9s Mar 16, 2023
3151f81
Merge pull request #1120 from c9s/refactor/backoff-cancel-all
c9s Mar 16, 2023
8182840
use fixedpoint.Value as key
kbearXD Mar 16, 2023
bb8dbb1
exits/trailingstop: fix typo
andycheng123 Mar 17, 2023
294c09b
Merge pull request #1119 from c9s/feature/grids/recover-from-trades
kbearXD Mar 17, 2023
b455ae7
Merge pull request #1123 from andycheng123/fix/exits
andycheng123 Mar 17, 2023
7114016
clamp skew
narumiruna Mar 16, 2023
6ea49f9
Merge pull request #1122 from c9s/narumi/fixedmaker/clamp
narumiruna Mar 18, 2023
bc23055
FEATURE: emit grid error when failed to recover or open grid
kbearXD Mar 20, 2023
b48f970
Merge pull request #1124 from c9s/feature/grid2/emit-error
kbearXD Mar 20, 2023
0e2e830
FEATURE: [grid2] using dnum
gx578007 Mar 20, 2023
8c337cd
add test for dnum
kbearXD Mar 20, 2023
aa419e8
make dnum support negative precision
gx578007 Mar 20, 2023
fda4e48
max: move submitOrderLimiter to the exchange wide var
c9s Mar 21, 2023
88af0a1
max: move tradeQueryLimiter to the exchange instance
c9s Mar 21, 2023
da381dc
Merge pull request #1126 from c9s/c9s/max/separate-rate-limiter
c9s Mar 21, 2023
ab52dd6
funding: filter kline event with types.KLineWith
c9s Mar 22, 2023
12b9775
rename funding to xfunding
c9s Mar 22, 2023
b2c0a34
rename funding config file
c9s Mar 22, 2023
e93d13e
xfunding: implement CrossRun
c9s Mar 22, 2023
b881aea
add position action
c9s Mar 22, 2023
d6c430a
xfunding: implement CrossSubscribe
c9s Mar 22, 2023
e607fc1
xfunding: check spotSession, futuresSession names
c9s Mar 22, 2023
98b0ffa
all: add more futures channel types
c9s Mar 22, 2023
3c69ccc
types: update channel names
c9s Mar 22, 2023
6265ad2
xfunding: add premium checker
c9s Mar 22, 2023
dc5e0cb
xfunding: solve lint error
c9s Mar 22, 2023
928f668
xfunding: pull out premium check to detectPremiumIndex
c9s Mar 22, 2023
684f6c6
xfunding: document spot trade handler
c9s Mar 22, 2023
6668d68
xfunding: adjust quoteInvestment according to the quote balance
c9s Mar 22, 2023
c632e6e
binance: add binance futures_transfer_request
c9s Mar 22, 2023
6848e11
binance: implement TransferFuturesAsset
c9s Mar 22, 2023
6ca85b1
xfunding: adjust quote investment according to the fee rate
c9s Mar 22, 2023
6797069
binanceapi: fix payload encode format
c9s Mar 22, 2023
487fbf8
binance: implement TransferFuturesAccountAsset api
c9s Mar 22, 2023
161dc7d
types: add transfer direction
c9s Mar 23, 2023
2a927dc
interact: reduce info logs
c9s Mar 23, 2023
a838b49
bbgo: refactor order executor with max retries
c9s Mar 23, 2023
20cd73e
xfunding: fix transfer and refactoring more methods
c9s Mar 23, 2023
80c30d1
xfunding: correct method names
c9s Mar 23, 2023
1660861
xfunding: fix sync guard
c9s Mar 23, 2023
b7edc38
xfunding: record pending transfer
c9s Mar 23, 2023
8b87a87
xfunding: add state for recording TotalBaseTransfer
c9s Mar 23, 2023
44850e4
xfunding: add mutex protection
c9s Mar 23, 2023
018e281
types: add AdjustQuantityByMinNotional to types.Market
c9s Mar 23, 2023
32c617a
replenish on start
narumiruna Mar 23, 2023
c3ca5b7
types: add minNotionalSealant to adjust quantity method
c9s Mar 23, 2023
bf9cd78
Merge pull request #1129 from c9s/narumi/fixedmaker/onstart
narumiruna Mar 23, 2023
02c28a0
types: fix AdjustQuantityByMinNotional by round up the quantity
c9s Mar 23, 2023
1b5126c
xfunding: add mutex
c9s Mar 23, 2023
7ba7eb8
xfunding: implement reduceFuturesPosition
c9s Mar 23, 2023
b5f69e7
xfunding: reset stats when direction changed
c9s Mar 23, 2023
a933f90
xfunding: log low funding fee
c9s Mar 23, 2023
aba8039
xfunding: add MinHoldingPeriod support
c9s Mar 23, 2023
3624dd0
xfunding: implement close position transfer
c9s Mar 23, 2023
e016892
xfunding: pull out startClosingPosition, startOpeningPosition method
c9s Mar 23, 2023
108bb5d
xfunding: add guard condition for starting and stopping
c9s Mar 23, 2023
c1fbbbe
xfunding: move position state to state struct
c9s Mar 23, 2023
62e6b23
xfunding: refactor and refine PositionState checking
c9s Mar 23, 2023
209fb10
xfunding: add stringer support on PremiumIndex
c9s Mar 23, 2023
f3049de
all: improve logging
c9s Mar 23, 2023
84313db
xfunding: refactor state functions and fix transfer out
c9s Mar 23, 2023
0f21c1f
xfunding: fix Warnf format
c9s Mar 23, 2023
1517076
xfunding: implement syncSpotPosition
c9s Mar 23, 2023
4669692
xfunding: remove debug log and test code
c9s Mar 23, 2023
cd1314e
Merge pull request #1125 from c9s/bhwu/grid2/using-dnum
gx578007 Mar 24, 2023
ea7af70
add mutex lock
c9s Mar 24, 2023
feec194
binance: improve transfer logs
c9s Mar 24, 2023
cc74156
Merge pull request #1127 from c9s/c9s/strategy/funding
c9s Mar 24, 2023
545f138
strategy: add neutral maker
austin362667 Mar 24, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/contracts
.env.*
/linode
/frontend
/desktop
/data
/output
3 changes: 3 additions & 0 deletions .evans.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[default]
protoFile = ["pkg/pb/bbgo.proto"]
package = "bbgo"
Empty file added .gitattributes
Empty file.
4 changes: 4 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# These are supported funding model platforms

github: c9s
custom: [https://etherscan.io/address/0x5ed8508e3d046cbe9ff44d6063e29349000c8ddd]
60 changes: 60 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Docker Image

on:
workflow_dispatch:
inputs:
ref:
description: 'ref to build'
required: false
default: 'main'
push:
# Sequence of patterns matched against refs/tags
tags:
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
branches:
- "main"

jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
# list of Docker images to use as base name for tags
images: |
yoanlin/bbgo
quay.io/yoanlin/bbgo
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to Quay Container Registry
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
# tags: yoanlin/bbgo:latest
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta.outputs.tags }}
102 changes: 102 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Go

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15

strategy:
matrix:
redis-version:
- 6.2
go-version:
- 1.18
env:
MYSQL_DATABASE: bbgo
MYSQL_USER: "root"
MYSQL_PASSWORD: "root" # pragma: allowlist secret

steps:

- uses: actions/checkout@v2
with:
# lfs: 'true'
ssh-key: ${{ secrets.git_ssh_key }}

- uses: actions/cache@v2
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Set up MySQL
run: |
sudo /etc/init.d/mysql start
mysql -e 'CREATE DATABASE ${{ env.MYSQL_DATABASE }};' -u${{ env.MYSQL_USER }} -p${{ env.MYSQL_PASSWORD }}

- name: Set up redis
uses: shogo82148/actions-setup-redis@v1
with:
redis-version: ${{ matrix.redis-version }}
# auto-start: "false"

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}

- name: Install Migration Tool
run: go install github.com/c9s/rockhopper/cmd/rockhopper@v1.2.1

- name: Test Migration SQL Files For MySQL
run: |
rockhopper --config rockhopper_mysql.yaml up

- name: Test Migration SQL Files For SQLite
run: |
rockhopper --config rockhopper_sqlite.yaml up

- name: Build
run: go build -v ./cmd/bbgo

- name: Link Market Data
run: |
mkdir -p ~/.bbgo/cache
ln -s $PWD/data/binance-markets.json ~/.bbgo/cache/binance-markets.json
touch data/binance-markets.json

- name: Test
run: |
go test -race -coverprofile coverage.txt -covermode atomic ./pkg/...
sed -i -e '/_requestgen.go/d' coverage.txt

- name: TestDnum
run: |
go test -race -coverprofile coverage_dnum.txt -covermode atomic -tags dnum ./pkg/...
sed -i -e '/_requestgen.go/d' coverage_dnum.txt

- name: Revive Check
uses: morphy2k/revive-action@v2
with:
reporter: github-pr-review
fail_on_error: true

- name: Upload Coverage Report
uses: codecov/codecov-action@v3
with:
files: ./coverage.txt,./coverage_dnum.txt

- name: Create dotenv file
run: |
echo "DB_DRIVER=mysql" >> .env.local
echo "DB_DSN=root:root@/bbgo" >> .env.local

22 changes: 22 additions & 0 deletions .github/workflows/golang-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: golang-lint
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
permissions:
contents: read

jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: 1.18
- uses: actions/checkout@v3
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.46.2
40 changes: 40 additions & 0 deletions .github/workflows/node.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Node.js CI

on:
push:
branches: [ main ]
paths:
- apps/backtest-report
- frontend
pull_request:
branches: [ main ]
paths:
- apps/backtest-report
- frontend

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [ 16.x ]

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm install -g yarn
- name: Install
run: yarn install
working-directory: "apps/backtest-report"
- name: Build
run: yarn run next build
working-directory: "apps/backtest-report"
- name: Export
run: yarn run next export
working-directory: "apps/backtest-report"
- run: yarn export
working-directory: "frontend"
48 changes: 48 additions & 0 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Python

on:
push:
branches: [ main ]
paths:
- python

pull_request:
branches: [ main ]
paths:
- python

jobs:

build:
runs-on: ubuntu-latest

strategy:
matrix:
python-version: [ 3.8 ]

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install poetry
run: pip install poetry==1.1.13

- name: Install package
run: |
cd python
poetry install

- name: Test
run: |
cd python
poetry run pytest -v -s tests

- name: Lint
run: |
cd python
poetry run flake8 .
Loading