Commit Graph

574 Commits

Author SHA1 Message Date
c9s
09d712416f add json struct tags 2021-01-20 16:15:34 +08:00
c9s
617f5119fd test trade profit calculation 2021-01-20 16:14:02 +08:00
c9s
169af63846 add more position tests 2021-01-20 16:10:20 +08:00
c9s
34148948ab add position and its tests 2021-01-20 16:08:14 +08:00
c9s
42811e8157 alias logrus as log 2021-01-20 02:45:50 +08:00
c9s
9280ec348f clean up pnl command
we should use environment to load the sessions
2021-01-20 02:45:13 +08:00
c9s
0e99d9bdcb move time.Sleep to batch processor to avoid rate limit 2021-01-20 02:32:55 +08:00
c9s
c79c7d1b11 fix margin order/trade sync 2021-01-20 02:09:12 +08:00
c9s
d3f6841a27 improve sync command for margin trades and orders 2021-01-20 01:46:17 +08:00
c9s
7520430b52 support margin api for query trades 2021-01-20 01:27:27 +08:00
c9s
1d8b7dc657 handle trade and order margin field 2021-01-20 01:24:29 +08:00
c9s
334eff4682 update sync service for margin fields 2021-01-19 23:33:06 +08:00
c9s
62f6d857b3 update compiled migrations package for margin columns 2021-01-19 23:31:13 +08:00
c9s
a6015fb3e2 add isMargin, isIsolated columns 2021-01-19 23:31:04 +08:00
c9s
2c1c9a046b tmp 2021-01-19 23:31:04 +08:00
c9s
677f4b93e6 add margin mode support to QueryOpenOrders 2021-01-19 23:31:04 +08:00
c9s
ad4226f35b support margin order creation 2021-01-19 23:31:04 +08:00
c9s
3eda64641e use exchange's margin option 2021-01-19 23:31:04 +08:00
c9s
7235100140 integrate submitMarginOrder api 2021-01-19 23:31:04 +08:00
c9s
f35e90a4f1 document marginSideEffect 2021-01-19 23:31:04 +08:00
c9s
5cab37488b move MarginSettings struct to a file 2021-01-19 23:31:04 +08:00
c9s
1c77de031a add extended margin fields to the order struct 2021-01-19 23:31:04 +08:00
c9s
f8a9610222 pass isolated margin symbol 2021-01-19 23:31:04 +08:00
c9s
f505c0e2c6 split go routine for keep alive and ping tickers 2021-01-19 23:31:04 +08:00
c9s
d4774f5f0e add IsolatedMargin option 2021-01-19 23:31:04 +08:00
c9s
310943d010 add isolated margin symbol option 2021-01-19 23:31:04 +08:00
c9s
48083151aa turning margin mode 2021-01-19 23:31:04 +08:00
c9s
e8fec434b5 cast exchange instance to margin exchange interface 2021-01-19 23:31:04 +08:00
c9s
3199c63d62 add margin mode 2021-01-19 23:31:04 +08:00
c9s
4002ec80d6 add public only field to the session config struct 2021-01-19 23:31:04 +08:00
c9s
c3db6db590 add margin option 2021-01-19 23:31:04 +08:00
c9s
1233035780 fix migration script 2021-01-19 23:11:07 +08:00
c9s
0bdfd0f04b check if err is nil 2021-01-18 21:59:02 +08:00
c9s
ddc33f633f check if err is nil 2021-01-18 21:57:57 +08:00
c9s
ad78f81b10 fix unique index for binance self trade 2021-01-18 16:48:47 +08:00
c9s
3db5c26416 improve transfer history layout 2021-01-15 14:24:24 +08:00
c9s
d96e6e8ccc use environment to configure database 2021-01-15 10:47:49 +08:00
c9s
1ce3244c17 drop the legacy migration command 2021-01-15 10:33:23 +08:00
c9s
293d889276 fix built-in migrations 2021-01-15 10:31:37 +08:00
c9s
d04e1e7816 refactory sync command and upgrade db automatically 2021-01-14 15:10:11 +08:00
c9s
ad567dc360 use mysql reformat dsn function to add parseTime parameters 2021-01-14 14:56:13 +08:00
c9s
cd9f2ba0e8 add compile migration files 2021-01-14 00:33:28 +08:00
c9s
6491166459 drop legacy pkg/migration 2021-01-14 00:00:05 +08:00
c9s
2699c32b38 add rockhopper 2021-01-13 23:53:36 +08:00
c9s
50cd6f7d68 change go-binance to github.com/adshao/go-binance/v2 2021-01-11 13:36:49 +08:00
c9s
653eba73c5 improve session error message 2021-01-09 19:47:21 +08:00
c9s
4a1af6f362 add check for PersistenceServiceFacade 2021-01-09 19:44:45 +08:00
c9s
93d71b5300 bbgo: session log error 2021-01-09 19:40:31 +08:00
c9s
995f9a9ea0 grid: add order amount field 2021-01-06 13:31:17 +08:00
c9s
92ab7e125a improve RegisterStrategy method to register strategy between cross and single 2020-12-31 17:14:47 +08:00
c9s
208c88cbd5 support single exchange trailingstop 2020-12-31 17:12:35 +08:00
c9s
87568ede70 reformat 2020-12-31 14:29:53 +08:00
c9s
395d3f17df grid: add long mode support 2020-12-31 13:54:32 +08:00
c9s
45e4d8c558 rename movingstop to trailingstop 2020-12-31 13:07:39 +08:00
c9s
25eab8e95f adjust log 2020-12-29 18:32:51 +08:00
c9s
f485c1ba7f fix grid strategy order placing 2020-12-29 18:18:32 +08:00
c9s
70479bfd16 binance: assign Isolated field 2020-12-29 17:26:22 +08:00
c9s
275aa9494a support canceling orders on max 2020-12-29 16:00:03 +08:00
c9s
9568b04328 fix log message 2020-12-28 16:24:57 +08:00
c9s
2932230fdb print out websocket error 2020-12-28 16:24:35 +08:00
c9s
d9e5ad4365 add event authenticated 2020-12-28 16:24:17 +08:00
c9s
f12e38b70e call cancelTrading defer 2020-12-21 15:47:20 +08:00
c9s
9db1c78171 add public only mode to backtest 2020-12-21 15:45:40 +08:00
c9s
f56318c9b6 add public only mode to stream 2020-12-21 15:43:54 +08:00
c9s
ce0e28708a add public only mode to binance stream 2020-12-21 15:26:05 +08:00
c9s
d4b99f41a4 reformat 2020-12-21 14:55:14 +08:00
c9s
39f5290634 shorten the log messages 2020-12-21 14:53:34 +08:00
c9s
a60529ee37 reload depth snapshot periodically 2020-12-21 14:43:40 +08:00
c9s
9223b2ba47 move FormatOrder to ExchangeSession since it depends on Market 2020-12-21 13:47:40 +08:00
c9s
3eae58322a add trade update callbacks and order update callbacks to order executor 2020-12-21 13:40:23 +08:00
c9s
e282a8a917 improve order submit loop 2020-12-17 17:54:48 +08:00
c9s
64dea71249 grid: use the default active order book order handler 2020-12-17 16:29:00 +08:00
c9s
6962582236 grid: add orders to the order store 2020-12-17 16:22:43 +08:00
c9s
9e1476dcb1 grid: improve position management by fixedpoint 2020-12-17 15:52:53 +08:00
c9s
1c7d3d5481 support max staging url orverride 2020-12-17 14:44:30 +08:00
c9s
728bf5fc81 bbgo: move some logs to debug level 2020-12-15 14:14:44 +08:00
c9s
63a5881d16 use golang.org/x/time for rate limiting 2020-12-15 14:04:27 +08:00
c9s
572f7a0e12 buyandhold: remove kline event debug log 2020-12-14 14:59:46 +08:00
c9s
6d15c629a7 fix buyandhold strategy 2020-12-14 14:40:31 +08:00
c9s
81c7d3c668 fix fmt import 2020-12-14 14:34:55 +08:00
c9s
cabd8f8dcb improve buyandhold strategy 2020-12-14 14:21:02 +08:00
c9s
321b4812ca supporting otp key restore from key url 2020-12-11 17:12:16 +08:00
c9s
fbb9d0d3ba show key URL 2020-12-11 17:08:06 +08:00
c9s
deb9a29521 support one-time password 2020-12-11 17:07:19 +08:00
c9s
f4ef19e5d6 implement PlainText for telegram bot 2020-12-11 15:58:05 +08:00
c9s
6af88a2a87 add interaction callbacks 2020-12-11 14:40:18 +08:00
c9s
45bc4dc9eb refactor telegram notifier with interaction component 2020-12-11 14:40:04 +08:00
c9s
f595b1ef65 fix compile flag check 2020-12-09 16:13:20 +08:00
c9s
846f463cfc print loaded position 2020-12-08 16:32:39 +08:00
c9s
6b760c72b7 use bot token prefix as the redis store namespace 2020-12-08 16:28:55 +08:00
c9s
03afa060d5 add updateInterval for mirrormaker 2020-12-08 16:01:46 +08:00
c9s
c66b140d90 support duration parse 2020-12-08 16:01:46 +08:00
c9s
fe7495898f check if persistence is configured 2020-12-08 15:09:17 +08:00
c9s
53d7fb5611 support telegram chat user persistence 2020-12-08 15:03:52 +08:00
c9s
a299721a98 improve message layout 2020-12-08 14:41:51 +08:00
c9s
4316f1fada pull out bot initialization 2020-12-08 14:25:30 +08:00
c9s
55cd0c6a6e pull out bot initialization to run 2020-12-08 14:20:49 +08:00
c9s
0222c33330 fix kline tail method 2020-12-08 10:26:20 +08:00
c9s
3aa8d70622 add mirrormaker 2020-12-07 23:04:09 +08:00
c9s
9eaf69388c add fixedpoint json marshaling 2020-12-07 23:03:06 +08:00
c9s
4addf65f64 support memory persistence 2020-12-07 12:03:56 +08:00
c9s
2d98336fb6 implement Persistent API for strategy 2020-12-07 11:44:41 +08:00
c9s
341f735bc3 configure ConfigurePersistence if it's defined 2020-12-07 11:44:41 +08:00
c9s
a01f83ab15 add persistence config and tests 2020-12-07 11:44:41 +08:00
c9s
b843388483 only query subscribed kline intervals 2020-12-07 11:44:23 +08:00
c9s
62a541fb27 rename preload to loadBuildConfig 2020-12-07 11:44:23 +08:00
Che-Chia (David) Chang
1b17cba2eb Merge pull request #67 from c9s/feature/add-telegram-bot-notifier
feature: add telegram bot notifier
2020-12-06 14:12:32 +08:00
David Chang
9f92fcf2e4 chore: rename telegram init to telegram auth 2020-12-06 13:59:47 +08:00
David Chang
58aadd9f45 fix: use correct format for log 2020-12-06 13:47:52 +08:00
David Chang
9e4602cf66 fix: allow upadte telegram chat user with bot command 2020-12-06 13:02:21 +08:00
David Chang
a55cd02e21 feature: add info command 2020-12-06 12:34:43 +08:00
David Chang
f9124aa907 fix: telegram bot send message to correct user 2020-12-06 12:11:27 +08:00
David Chang
7caf986d11 fix: change warning type from user to username 2020-12-05 14:28:48 +08:00
David Chang
c72ef2b31c fix: add missing root cmd flags 2020-12-05 14:25:19 +08:00
David Chang
b2d9bd0312 feature: add telegram bot notifier 2020-12-05 14:20:27 +08:00
c9s
c5d002a0b0 fix market data kline registration 2020-12-05 13:32:41 +08:00
c9s
900f822559 improve and fix ewma calculation 2020-12-05 13:32:41 +08:00
c9s
b188901ed0 fix ewma calculation 2020-12-05 13:32:41 +08:00
c9s
f7a119fa5e remove debug message 2020-12-04 19:15:53 +08:00
c9s
936650d879 rename kline trend to direction 2020-12-04 10:18:51 +08:00
c9s
22771288eb fix sma kline window check 2020-12-03 20:42:26 +08:00
c9s
177607e5fb fix ewma kline window check 2020-12-03 20:42:00 +08:00
c9s
f4aee5234a add updater to indicators 2020-12-03 18:14:16 +08:00
c9s
17fd6a405b add StopPriceRatio support 2020-12-03 09:50:36 +08:00
c9s
19d76928fd support movingstop by BalancePercentage 2020-12-03 09:41:41 +08:00
c9s
ef03c0cf20 separate Run and CrossRun
so that we mount one strategy as cross strategy or single exchange strategy
2020-12-03 09:31:40 +08:00
c9s
d60a82256d types: remove slice preallocated cap 2020-12-03 09:27:05 +08:00
c9s
2b264905f9 add warnings and fix subscription 2020-12-03 09:26:10 +08:00
c9s
4f399ebb9f fix stop price formating 2020-12-03 09:25:47 +08:00
c9s
17590fcc08 include movingstop in builtin 2020-12-03 08:52:43 +08:00
c9s
9d7aa2fe22 add movingstop strategy 2020-12-03 08:52:32 +08:00
c9s
0a5bac803c ignore duplicated trade 2020-12-03 08:51:57 +08:00
c9s
edb22383c7 fix ToGlobalOrder call 2020-12-02 22:44:57 +08:00
c9s
d38b16fb3e fix cross exchange strategy subscription 2020-12-02 22:44:41 +08:00
c9s
4cf5929cac improve trade parsing error 2020-12-02 22:21:13 +08:00
c9s
d226ec2e01 change field names to lower case so that we can use shorter name for the accessors 2020-12-02 22:21:13 +08:00
c9s
e57b9f235b add quota 2020-11-23 16:47:36 +08:00
c9s
db6c90b8dd cmd: fix run command signal handling 2020-11-23 16:36:03 +08:00
c9s
a86078d68c max: fix tick size 2020-11-22 21:34:05 +08:00
c9s
914d5cdc94 try to keep all orders from order store 2020-11-17 15:53:46 +08:00
c9s
c40982164a fix trade slack formatting 2020-11-17 15:48:18 +08:00
c9s
8f5491d818 improve balance printing 2020-11-17 14:45:27 +08:00
c9s
18d9245b06 improve order slice lock 2020-11-17 14:31:18 +08:00
c9s
ed6d6342e7 fix account currency translation 2020-11-17 14:24:26 +08:00
c9s
95b0910a09 fix trade order id parsing 2020-11-17 14:13:37 +08:00
c9s
03d99a4cab remove debug logs 2020-11-17 13:25:59 +08:00
c9s
4bda1fee08 fix order id parsing 2020-11-17 12:46:55 +08:00
c9s
cc3da5b678 pass order id for order store exists 2020-11-17 08:53:22 +08:00
c9s
f4512f031c improve cross exchange strategy mounting behavior and add fixedpoint atomic ops 2020-11-17 08:19:22 +08:00
c9s
3ea2e877ff do not submit subscribe request if param array is empty 2020-11-15 13:32:46 +08:00
c9s
ded970f5a4 imporve CrossExchange subscription handling 2020-11-15 13:27:33 +08:00
c9s
94aaaf21b0 improve wrapper binary invocation 2020-11-15 13:23:26 +08:00
c9s
e8b5379202 bollgrid: add warn messages 2020-11-12 17:41:28 +08:00
c9s
2b6547df47 bollgrid: add profit orderbook for bolling grid 2020-11-12 17:38:13 +08:00
c9s
cd283f2c28 remove unused logger field 2020-11-12 17:30:21 +08:00
c9s
1a6f5b99ae bollgrid: submit orders on connect 2020-11-12 16:31:09 +08:00
c9s
8cc1c589a1 fix waitgroup counting 2020-11-12 14:59:47 +08:00
c9s
fc9409673f add graceful shutdown 2020-11-12 14:50:21 +08:00
c9s
af8826a9e4 improve messages 2020-11-12 08:30:57 +08:00
c9s
6740541bcd improve bollgrid 2020-11-12 08:28:59 +08:00
c9s
35a5b61f60 add local active orderbook callback files 2020-11-11 23:19:16 +08:00
c9s
0264baa922 refactor and improve bollgrid 2020-11-11 23:18:53 +08:00
c9s
3912de235b rename baseQuantity to just quantity 2020-11-11 17:55:44 +08:00
c9s
b2cd595069 grid: rename baseQuantity to just quantity 2020-11-11 17:55:16 +08:00
c9s
4bb5730cea remove backtest flag from the sync command 2020-11-11 16:11:41 +08:00
c9s
24e5911140 refactory sync mode into the backtest command 2020-11-11 16:08:24 +08:00
c9s
097b2d30a6 add base-asset-baseline flag for backtest 2020-11-11 14:39:33 +08:00
c9s
04f6da3cb8 add traditional grid strategy 2020-11-10 19:06:20 +08:00
c9s
4ab402a188 clean up legacy code 2020-11-10 16:56:30 +08:00
c9s
04a7c7a2cc add stddev accessor 2020-11-10 16:55:35 +08:00
c9s
23c19c5968 use fixedpoint for balances 2020-11-10 14:19:33 +08:00
c9s
cdf7959029 fix fixedpoint unmarshal 2020-11-10 14:19:22 +08:00
c9s
923fea0d94 improve backtest cmd 2020-11-10 14:19:11 +08:00
c9s
941c93794c fix grid strategy for backtesting 2020-11-10 14:18:54 +08:00
c9s
770efeed4f pnl format improve 2020-11-10 14:18:27 +08:00
c9s
69a33b6400 fix and improve backtest 2020-11-10 14:18:04 +08:00
c9s
f5b17193c5 move verbose flag detection before we setup the environment 2020-11-09 16:49:03 +08:00
c9s
6c2aef31a3 improve backtest logging 2020-11-09 16:47:29 +08:00
c9s
e7cc79f3cf replace errors.Errorf with fmt.Errorf 2020-11-09 16:34:35 +08:00
c9s
1e129e4c86 collect error object instead of logging 2020-11-09 15:29:40 +08:00
c9s
8414f406bf drop the legacy order executor 2020-11-09 15:02:12 +08:00
c9s
4a2a542222 refactor basic risk controller 2020-11-09 14:56:54 +08:00
c9s
ded89e099f refactor simple price matching 2020-11-09 03:17:02 +08:00
c9s
5cc9506960 simplify executeTrade method since we should not use over locked funds 2020-11-09 03:09:12 +08:00
c9s
443f2c6891 document fee rate for BNB holders 2020-11-09 03:01:40 +08:00
c9s
377f4cae34 add account balance lock and unlock for testing maker strategies 2020-11-09 02:58:46 +08:00
c9s
5d4680e496 add lock and unlock functions 2020-11-09 01:10:14 +08:00
c9s
f69c87b3a8 fix fee calculation and add account balance checking 2020-11-08 21:52:44 +08:00
c9s
090011da9e pull out order matching trigger from the kline event callbacks 2020-11-08 13:07:45 +08:00
c9s
e3a1184d22 fix backtest sync exchange and consider fee rate 2020-11-08 12:47:14 +08:00
c9s
6bd3573287 add exchange field in the table so that we can reuse the kline objects for backtest 2020-11-08 12:13:34 +08:00
c9s
4b0bab31fb Merge branch 'feature/backtest' into main 2020-11-07 20:34:55 +08:00
c9s
641784e1b1 calculate pnl after the backtest 2020-11-07 20:34:34 +08:00
c9s
f3571b9832 fix tests 2020-11-07 20:18:11 +08:00
c9s
6040c69327 add sync flag for backtesting 2020-11-07 20:14:53 +08:00
c9s
f1db12eb10 add done channel for backtest exchange 2020-11-07 20:11:07 +08:00
c9s
a4a9067c6a integrate matching engine with backtest exchange 2020-11-07 19:57:36 +08:00
c9s
5be4aa53db move simple price matching to matching.go 2020-11-07 16:09:21 +08:00
c9s
3778adc8c8 implement SimplePriceMatching engine 2020-11-07 16:08:20 +08:00
c9s
0d8fa08171 add book Update method 2020-11-07 15:07:06 +08:00