Commit Graph

877 Commits

Author SHA1 Message Date
TonyQ
16862e7208 exchange/stream : implement booktickerupdate event for ftx and
binance
2021-12-22 21:01:11 +08:00
c9s
388cfe0854 kucoin: fix go 1.17 compatibility issue 2021-12-22 01:45:07 +08:00
c9s
3b5015e1ca kucoin: integrate list tickers 2021-12-22 01:34:24 +08:00
c9s
0b6e66348e kucoin: implement query tickers 2021-12-22 01:28:16 +08:00
c9s
c32f3ab2f3 add generate_symbol_map.go generator 2021-12-22 01:28:16 +08:00
c9s
fce71cb37e implement QueryAccounts and QueryMarkets 2021-12-22 01:28:16 +08:00
c9s
62fa6dd274 implement get fills request 2021-12-22 01:28:16 +08:00
c9s
bace225470 binance: fix, call set time service only when key and secret is given 2021-12-22 01:27:25 +08:00
TonyQ
740989ca64 exchange/ftx: add more guard condition 2021-12-21 20:46:40 +08:00
TonyQ
3e45035ab1 database: sqlite3 issue fix
database: upgrade gosqllite3 version for increasing variable amount limit
	types: update kline starttime/endtime field to prevent sqlite3
	time parsing issue.

	fix #215
2021-12-15 14:34:31 +08:00
TonyQ
c0b9cc0f0b exchange: make ftx kline event more reliable 2021-12-15 11:23:07 +08:00
Yo-An Lin
05323f211f Merge pull request #368 from tony1223/feature/355-update-sync
backtest : auto sync
2021-12-15 01:39:19 +08:00
TonyQ
16933555b8 backtest : auto sync missing range 2021-12-15 01:26:05 +08:00
austin362667
ccd607ba28 binance: remove unsupported comments 2021-12-15 01:01:05 +08:00
austin362667
7f96fa8dde binance: add multierr 2021-12-15 01:01:05 +08:00
austin362667
bb592663ab binance: removed unsupport isolated futures trade 2021-12-15 01:01:05 +08:00
austin362667
a0130affe4 binance: add query orders & trades 2021-12-15 01:01:05 +08:00
TonyQ
20b03fe4a5 exchange: fix ftx for wrong last kline issue 2021-12-15 00:07:54 +08:00
austin362667
839bb6d0e8 binance: remove comments cuz not support isolated futures 2021-12-14 20:41:55 +08:00
Yo-An Lin
6c6eb252cc Merge pull request #363 from tony1223/feature/355-ftx-backtest 2021-12-14 16:09:16 +08:00
TonyQ
8eb3eede82 fix backtest (with review) 2021-12-14 16:02:54 +08:00
TonyQ
51e23b6a0c Merge branch 'main' of github.com:c9s/bbgo into feature/302-record-assets-review 2021-12-14 10:39:51 +08:00
TonyQ
4eb5a099ae account: add nav_history_details and account_service for #302 2021-12-14 08:09:18 +08:00
austin362667
d3526b2c71 binance: add SubmitFuturesOrder and related conversions 2021-12-13 23:19:14 +08:00
c9s
74811abb36 okex: rewrite okex api request with requestgen 2021-12-13 14:55:44 +08:00
c9s
e2937acb28 apply requestgen for CancelOrderRequest and CancelAllOrderRequest 2021-12-13 14:55:44 +08:00
Yo-An Lin
d847d223e3 Merge pull request #356 from c9s/feature/kucoin
refactor: apply requestgen
2021-12-13 02:14:05 +08:00
Yo-An Lin
a3215d6f31 Merge pull request #354 from austin362667/order-trade
binance: parse OrderTrade event stream & add futures client connection
2021-12-13 02:12:19 +08:00
c9s
34c2b342ba apply requestgen for CancelOrderRequest and CancelAllOrderRequest 2021-12-13 02:08:18 +08:00
c9s
c28833fba0 kucoinapi: use requestgen for list orders request 2021-12-13 01:53:00 +08:00
c9s
97b63f45d5 kucoin: rename receiver to r 2021-12-13 01:14:52 +08:00
c9s
22972953d0 use requestgen to generate the accessor methods 2021-12-13 01:11:15 +08:00
austin362667
04919e0fa4 binance: add futures exchange stream connection 2021-12-12 15:40:03 +08:00
austin362667
8ca60cec10 binance: add user stream event parser & toGlobalType converter 2021-12-12 15:39:06 +08:00
TonyQ
6915a0e573 ftx: update kline event handling for #318 2021-12-12 14:29:48 +08:00
c9s
de80a14715 kucoin: add cancel order command 2021-12-11 20:07:32 +08:00
c9s
95ecaa7a66 rename orderResponse to apiResponse 2021-12-11 20:02:35 +08:00
c9s
8a00509987 kucoin: check data pointer and return error 2021-12-11 19:44:07 +08:00
c9s
0c854a8a85 kucoin: add place order and list orders command 2021-12-11 19:40:53 +08:00
c9s
a9bc02ef3d kucoin: implement order placement and cancel api 2021-12-11 18:33:30 +08:00
c9s
4d57967664 kucoin: add orderbook api 2021-12-11 18:33:30 +08:00
c9s
18653aca7e kucoin: implement all ticker and get ticker api 2021-12-11 18:33:30 +08:00
c9s
50b79cb742 implement ListSymbols api 2021-12-11 18:33:30 +08:00
c9s
be7e9f551a add GetAccount api 2021-12-11 18:33:30 +08:00
c9s
c8ba3f7c1b kucoin: add query accounts api 2021-12-11 18:33:30 +08:00
c9s
cd69994647 kucoin: implement api client 2021-12-11 18:33:30 +08:00
Yo-An Lin
0cf72de21d Merge pull request #335 from tony1223/bug/334-ftx-ratelimit
ftx : fix #334 rate limit
2021-12-10 23:24:42 +08:00
TonyQ
5259bba5fe ftx : fix #334 rate limit 2021-12-10 23:08:26 +08:00
c9s
fe9b604d79 update ftx market mapping 2021-12-09 15:57:44 +08:00
c9s
ca85aa69e6 pull out global premium index type and funding rate type 2021-12-09 00:10:18 +08:00
c9s
71e043e4b2 move convertPremiumIndex to convert.go 2021-12-09 00:08:25 +08:00
c9s
fbae368e6c make getLaunchDate as a simple function 2021-12-09 00:06:46 +08:00
c9s
078c79d73f binance: refactor QueryMarkets 2021-12-09 00:05:36 +08:00
c9s
48612e2b13 reformat import lines and add fixme note 2021-12-09 00:01:33 +08:00
c9s
2223ef088c add ftx, okex to the public exchange factory for backtest 2021-12-08 23:27:01 +08:00
TonyQ
3dff1acd79 finetune ftx for #318 2021-12-08 19:36:37 +08:00
c9s
35da3ba3a0 check env vars for query related tests 2021-12-05 01:11:47 +08:00
c9s
062f9243c6 max: fix query ticker tests 2021-12-05 01:08:50 +08:00
c9s
715363298f fix query ticker tests 2021-12-05 00:58:01 +08:00
c9s
4bde40f2db override binance default http client timeout instead of zero timeout 2021-11-23 10:54:43 +08:00
Austin
c5d1a70a61 add Continuous Contract Kline/Candlestick Streams 2021-11-16 14:26:27 +08:00
Austin
a36739f119 add MarkPriceUpdateEvent 2021-11-16 01:24:36 +08:00
c9s
aceca1b49f adjust listen key keep alive to 30 min 2021-11-07 23:40:13 +08:00
c9s
a2c2646a16 binance: adjust rate limiter bucket 2021-11-05 01:25:16 +08:00
c9s
82d859a43d binance: fix binance order rate limiter 2021-11-05 01:21:58 +08:00
c9s
1a861c98a1 binance: add order rate limiter for binance 2021-11-04 12:50:32 +08:00
c9s
6cb593cd90 techsignal: use realtime funding rate 2021-10-20 14:01:19 +08:00
c9s
16fca0150d implement futures PremiumIndex support 2021-10-19 15:54:16 +08:00
c9s
1e6692ec8d rename funding rate query method name 2021-10-19 15:29:55 +08:00
c9s
e3431ef970 binance: fix binance order type for limit maker 2021-10-18 00:41:41 +08:00
c9s
4523135012 techsignal: add funding rate checker 2021-10-14 23:01:10 +08:00
c9s
7016d24fad import types.FuturesSettings into binance exchange 2021-10-07 21:29:52 +08:00
Jui-Nan Lin
feca628319 fix(ftx): array length should > 0 2021-09-03 15:38:02 +08:00
c9s
b6fff482a4 binance: fix withdrawal time parsing 2021-09-03 14:21:59 +08:00
c9s
35ec9ae7b6 binance: fix binance withdrawal api 2021-09-02 00:27:57 +08:00
c9s
f177860450 binance: fix withdrawal service 2021-09-02 00:21:56 +08:00
zebra
2e1400d594 add transfer function 2021-08-07 15:30:51 +08:00
sincoew
4f2b1d975a fix type change on max api 2021-07-15 17:51:14 +08:00
c9s
a8048703b3 max: fix order delete refurl 2021-06-27 11:33:00 +08:00
c9s
3fdcf466bf max: set reqcount for nonce by default 1 2021-06-27 11:32:54 +08:00
c9s
fd2928fc82 types: add maker/taker fee rate fields to the account struct 2021-06-16 13:04:23 +08:00
c9s
657e1dc9bf maxapi: pre-parse relative url and cache them 2021-06-16 13:04:05 +08:00
c9s
cbd0180939 maxapi: remove extra user agent header 2021-06-16 13:04:05 +08:00
c9s
16e5e08d58 maxapi: fix dump request error check 2021-06-16 13:04:05 +08:00
c9s
48c84824cf maxapi: volume, side, market is always required for creating orders 2021-06-16 13:04:05 +08:00
c9s
2da633c221 maxapi: add HTTP_TRANSPORT_IDLE_CONN_TIMEOUT env var for override 2021-06-16 13:04:05 +08:00
c9s
7c5b676366 maxapi: create an isolated http transport rather than the default one 2021-06-16 13:04:05 +08:00
c9s
684232041c maxapi: load http transport settings from env vars 2021-06-16 13:04:05 +08:00
c9s
b31b830b2b max: add request dump for debugging request 2021-06-16 13:03:45 +08:00
c9s
8c3992d514 max: no need to check order volume separately 2021-06-16 13:02:21 +08:00
c9s
fdf1ee9258 max: use precision -1 to trim zeros 2021-06-16 13:02:21 +08:00
c9s
a8eda62a8d max: set debug vars from env vars 2021-06-16 13:02:21 +08:00
c9s
0df26e0570 binance: adjust listen key keep alive to 20 minutes 2021-06-09 01:37:19 +08:00
c9s
457ca79517 binance: for network error, we should retry the request 2021-06-09 01:37:14 +08:00
c9s
ec6c10a96a binance: adjust read timeout and increase read buffer size 2021-06-09 01:36:06 +08:00
c9s
f487b53d9e binance: fix client order id checking 2021-06-07 01:07:00 +08:00
c9s
5fd0ab4cd3 skip client order id when no client order is given 2021-06-07 01:03:21 +08:00
c9s
291fdbaf25 optimize max submit order api priority 2021-06-07 01:03:09 +08:00
c9s
b9584117d6 add QueryLastFundingRate api to binance exchange 2021-06-01 03:15:19 +08:00
c9s
b5c4fc3e4e fix kline record insert fields 2021-06-01 01:39:23 +08:00
c9s
bf73def701 binance: embed fixedpoint.Value into binance Balance struct 2021-06-01 01:39:22 +08:00
c9s
e3473572e9 types: add TakerBuyBaseAssetVolume and TakerBuyQuoteAssetVolume fields to kline 2021-06-01 01:39:22 +08:00
c9s
2925a77815 binance: use fixedpoint.Value for parsing floating number string 2021-06-01 01:39:22 +08:00
Jui-Nan Lin
7abd7225e1 fix(ftx): klines should not be empty 2021-05-31 22:56:26 +08:00
c9s
7ff4051c61 binance: fix websocket handshake 2021-05-30 18:20:14 +08:00
c9s
0b935eff4f fix connection lock call 2021-05-30 18:14:22 +08:00
Yo-An Lin
406f592963 Merge pull request #258 from c9s/feature/okex
feature: add okex exchange user data stream and public stream
2021-05-30 16:21:12 +08:00
c9s
8d12c9262f okex: move connection context cancel calls 2021-05-30 15:54:31 +08:00
c9s
d6bd33a682 okex: remove unused code 2021-05-30 15:53:43 +08:00
c9s
d112dbb1a4 binance: check connCancel only when new context is allocated 2021-05-30 15:53:01 +08:00
c9s
f9d4068145 binance: pull out listen key from stream and reduce critical section 2021-05-30 15:51:25 +08:00
c9s
1a05f6fbd4 okex: pull read timeout and adjust to 30 seconds 2021-05-30 00:32:06 +08:00
c9s
d962dbe542 adjust read timeout 2021-05-29 20:40:47 +08:00
c9s
426a6157af okex: fix ping connection lock 2021-05-29 00:27:28 +08:00
c9s
64b9c78a5b okex: fix order detail segmentation 2021-05-29 00:27:05 +08:00
c9s
2a5ef30135 add ping worker to max 2021-05-29 00:26:53 +08:00
c9s
e11553139e binance: make convert functions private 2021-05-29 00:26:39 +08:00
c9s
f49490f986 fix websocket ping/pong issue 2021-05-28 23:34:21 +08:00
c9s
002b28f75a okex: implement candlestick api and improve kline console format 2021-05-28 20:51:10 +08:00
c9s
b430128ba1 okex: fix okex order cancellation 2021-05-28 03:05:59 +08:00
c9s
29304d14ba okex: implement submit orders and cancel order api 2021-05-28 02:45:09 +08:00
c9s
6407eab9c1 okex: convert order details into trades and orders 2021-05-28 02:21:35 +08:00
c9s
19b700dfba okex: parse and convert account information 2021-05-28 01:14:11 +08:00
c9s
777701c0cb add userdatastream cmd for testing private stream 2021-05-28 00:47:34 +08:00
c9s
545d0f18e3 okex: handle kline close event 2021-05-27 18:43:42 +08:00
c9s
2844b7c3a7 okex: add kline command for testing kline data 2021-05-27 18:35:34 +08:00
c9s
76048633cc okex: support websocket candle data 2021-05-27 17:55:23 +08:00
c9s
4fdd9d5097 okex: convert interval to candle types 2021-05-27 17:40:24 +08:00
c9s
1d400e281c okex: convert book data to book snapshot and book update 2021-05-27 16:01:15 +08:00
c9s
884e764fe7 okex: order book parsing 2021-05-27 15:48:51 +08:00
c9s
03431da00c okex: remove private dial method 2021-05-27 15:16:01 +08:00
c9s
f4f4304df6 move Dial method to StandardStream 2021-05-27 15:14:58 +08:00
c9s
7d62a7634b set market data stream to public 2021-05-27 15:11:44 +08:00
c9s
18045bb1e7 Move ReconnectC to the StandardStream 2021-05-27 14:42:14 +08:00
Yo-An Lin
7804415873 Merge pull request #254 from c9s/feature/okex
feature: add okex exchange
2021-05-27 01:28:41 +08:00
Yo-An Lin
930467d9c6 Merge pull request #257 from jnlin/ftx/symbol-map
feat(ftx): use go generate to build symbol map
2021-05-27 01:28:10 +08:00
c9s
8c50ce725c add stream callbacks 2021-05-27 01:07:38 +08:00
c9s
2538824661 okex: implement basic stream 2021-05-27 01:07:25 +08:00
c9s
2381df5009 add okex to the exchange factory 2021-05-27 00:35:51 +08:00
c9s
18daf54500 ftx: add LocalSymbol to test 2021-05-27 00:27:46 +08:00
c9s
5becfb99e6 okex: implement query account balance 2021-05-27 00:24:16 +08:00
c9s
859eaf3c2a okex: add trade service function skeletons 2021-05-27 00:05:43 +08:00
c9s
c6c353b29a okex: implement QueryTickers 2021-05-27 00:05:43 +08:00
c9s
c9aa0df054 gensymbols to generate spot symbol map 2021-05-27 00:05:43 +08:00
c9s
d8c6545d2d okex: implement query ticker 2021-05-27 00:05:43 +08:00
c9s
3511bcf13f okex: move go generate to the convert file 2021-05-27 00:05:43 +08:00
c9s
364e6fc990 okex: add local symbol convert function 2021-05-27 00:05:43 +08:00
c9s
016c60796d pull out BNB currency string 2021-05-27 00:05:43 +08:00
c9s
ea78c0308b add LocalSymbol field for exchange specific symbol 2021-05-27 00:05:43 +08:00
c9s
97b377da0a okex: implement query markets 2021-05-27 00:05:43 +08:00
c9s
4ded82c94e pull out types.Exchange interfaces to make it minimal 2021-05-27 00:05:43 +08:00
c9s
c8cb75cabc add funding rate api support 2021-05-27 00:05:43 +08:00
c9s
2bd79bcaf0 okex: add PublicDataService NewGetInstrumentsRequest 2021-05-27 00:05:43 +08:00
c9s
365b4c3837 okex: refactor trade service and fix order details api 2021-05-27 00:05:43 +08:00
c9s
5f8108f93e okex: add GetPendingOrderRequest 2021-05-27 00:05:43 +08:00
c9s
172239ddf6 okex: add order detail request 2021-05-27 00:05:43 +08:00
c9s
7e97163207 okex: implement batch place and batch cancel orders 2021-05-27 00:05:43 +08:00
c9s
1acbaefcd9 okex: implement place order and cancel order requests 2021-05-27 00:05:43 +08:00
c9s
b1aadb4bf0 okex: parse numbers as fixedpoints 2021-05-27 00:05:43 +08:00
c9s
8842208441 okex: add market ticker api support 2021-05-27 00:05:43 +08:00
c9s
e678289577 implement okex balances endpoint 2021-05-27 00:05:43 +08:00
c9s
fe269fd93d okex: implement base rest client 2021-05-27 00:05:43 +08:00
c9s
967c7e9f9d xbalance: add withdrawal options 2021-05-26 23:24:05 +08:00
Jui-Nan Lin
72e7915d8d feat(ftx): use go generate to build symbol map 2021-05-26 20:53:51 +08:00
zenix
698ec9911f Fix error formating on depth load fail 2021-05-26 00:57:35 +00:00
c9s
9c331063f4 improve depth error messages 2021-05-26 01:31:58 +08:00
c9s
06e982124b fix depth reset 2021-05-26 01:27:42 +08:00
c9s
07ded04a9b fix depth reset 2021-05-26 01:20:24 +08:00
c9s
44ff833c91 binance: buffer depth events 2021-05-26 01:05:12 +08:00
c9s
edeaa597f1 fix loadDepthSnapshot mutex lock issue 2021-05-26 00:58:40 +08:00
c9s
47bf7a1e03 remove time sleep for depthframe 2021-05-26 00:58:40 +08:00
Yo-An Lin
31871143a0 Merge pull request #249 from jnlin/ftx/websocket-kline
Implement kline stream and subaccount feature for FTX exchange
2021-05-26 00:31:35 +08:00
Jui-Nan Lin
1dd397f900 fix(ftx): return original symbol if not found (e.g. BTC-PREP) 2021-05-25 23:29:50 +08:00
Jui-Nan Lin
2e749bb7a8 fix(ftx): always update since to avoid infinite loop 2021-05-25 23:21:38 +08:00
Jui-Nan Lin
bca57e017b fix(ftx): set lastTradeID from options{} to filter trades 2021-05-25 23:14:49 +08:00
Jui-Nan Lin
2fd82ef775 fix(ftx): should use local symbol in fillResponse 2021-05-25 22:43:26 +08:00
Jui-Nan Lin
ab8c1ec18c fix(ftx): allow subaccount to be empty 2021-05-25 22:12:10 +08:00
c9s
686dcef2c5 binance: fix depth snapshot buffering 2021-05-25 21:36:14 +08:00
Jui-Nan Lin
bee3b913f2 fix(ftx): typo 2021-05-25 21:30:15 +08:00
c9s
d3f06bc9d7 fix binance depth stream buffering 2021-05-25 19:13:10 +08:00
Jui-Nan Lin
1318f221b2 fix(ftx): iterate subscription arraywhile polling klines 2021-05-25 18:37:48 +08:00
Jui-Nan Lin
a7a141c3ea fix(ftx): rename to pollKLines() 2021-05-24 14:21:40 +08:00
Jui-Nan Lin
239d55ce33 fix(ftx): use ID() 2021-05-24 14:18:40 +08:00
Jui-Nan Lin
9226d086b3 fix(ftx/rest): use Id() to make rest requests 2021-05-24 11:20:39 +08:00
Jui-Nan Lin
7fd3375741 fix(ftx/rest): add Id() for setting restful id 2021-05-24 11:19:30 +08:00
Jui-Nan Lin
2467d3fcf6 fix(ftx): get current kline candle in the beginning 2021-05-24 10:22:48 +08:00
Jui-Nan Lin
ddcd0d3969 fix(ftx): send ctx to handleChannelKlineMessage() 2021-05-24 10:16:17 +08:00
Jui-Nan Lin
64387ed2cb Merge branch 'main' into ftx/websocket-kline 2021-05-24 10:01:58 +08:00
Jui-Nan Lin
bd9a61ea97 fix(ftx): use select to handle kline message 2021-05-24 10:00:43 +08:00
Jui-Nan Lin
bbeafab59b fix(ftx): remove unused variables 2021-05-24 09:51:00 +08:00
Jui-Nan Lin
301ed621e6 fix(ftx): use timer.ticker() 2021-05-24 09:45:33 +08:00
Jui-Nan Lin
2394aab32e fix(ftx): start go routine while connecting to ftx websocket 2021-05-24 09:22:47 +08:00
Jui-Nan Lin
02912f362c fix(ftx): subscribe channel first to avoid losing order update 2021-05-24 09:21:49 +08:00
c9s
56b2c8845b fix preorder, postorder and inorder 2021-05-22 11:36:58 +08:00
Jui-Nan Lin
14abd1436b fix(ftx): call EmitConnect() after connected 2021-05-21 23:33:05 +08:00
Jui-Nan Lin
dd0bfab292 fix(ftx): call EmitStart() after connected 2021-05-21 23:25:26 +08:00
Jui-Nan Lin
c7f9352e20 fix(ftx): keep in the loop 2021-05-21 23:10:05 +08:00
Jui-Nan Lin
fb47a4882f fix(ftx): support subaccount in websocket 2021-05-21 23:07:53 +08:00
Jui-Nan Lin
05bde543b7 feat(ftx): emulating kline channel with polling 2021-05-21 23:07:39 +08:00
c9s
57a78777df move Time type to types.Time 2021-05-21 00:10:53 +08:00
Jui-Nan Lin
02649bdd63 fix(ftx): use generated order id if not specified 2021-05-19 21:37:29 +08:00
c9s
e95429bbc3 binance: save newer events for later usage 2021-05-19 01:02:41 +08:00
c9s
2fddc9166f show bid/ask volume in the message 2021-05-19 00:41:34 +08:00
c9s
9406682944 improve maxapi websocket reconnect issue 2021-05-18 14:14:58 +08:00
c9s
c3c3c47808 move lock section 2021-05-18 13:59:58 +08:00
c9s
c4ccd8094f make max client order id factory public 2021-05-18 09:10:43 +08:00
Jui-Nan Lin
c0cf529db7 fix(ftx): allow empty TimeInForce to place market orders 2021-05-17 21:05:44 +08:00
Jui-Nan Lin
31993d7ccf fix(ftx): update test toGlobalOrderBook 2021-05-17 18:53:43 +08:00
Jui-Nan Lin
316799d5a0 fix(ftxExchange): setup a symbol mapping table
ftx uses BTC/USDT symbol styles, however bbgo uses the BTCUSDT style
We setup a mapping table in Markets() to make conversion
2021-05-17 18:32:29 +08:00
c9s
e636a5008d replace Exchange field type with ExchangeName 2021-05-16 17:02:23 +08:00
c9s
5c10f8a4e2 binance: call set server time service 2021-05-16 15:03:31 +08:00
c9s
f69cbe9c31 add basic TwapExecution 2021-05-14 14:53:26 +08:00
Lee
d1cef15f75 Fix: Correct the Order FILLED event on binance 2021-05-13 00:41:23 +08:00
Lee
b0e71e4258 Fix: Correct the binance executionReport parser
Let JSON parse to be explicit for prevent Unmarshal case-insensitive issue
2021-05-12 18:45:16 +08:00
c9s
fd6fe56f32 implement withdrawal request on binance 2021-05-12 02:15:22 +08:00
c9s
ff7ead9bdf fix max withdrawal address bug 2021-05-12 01:21:04 +08:00
c9s
61319fb4ff implement Withdrawal method on max exchange 2021-05-12 00:23:13 +08:00
c9s
0b7c9a1437 implement withdrawal request api 2021-05-11 22:35:31 +08:00
c9s
03cee5eb0b apply types.ExchangeMAX 2021-05-05 16:57:01 +08:00
c9s
859bf35255 set sync-from from config by default 2021-05-05 16:45:17 +08:00
c9s
a70d5cbcdc fix kline sync conditions 2021-05-05 16:33:15 +08:00
c9s
d85037f9ea add binance kline query documentation 2021-05-05 16:23:46 +08:00
c9s
8fea2022e5 adjust rate limit for backtest data syncing 2021-05-02 17:46:08 +08:00
c9s
e87c2e271f add broker id on max 2021-04-28 19:24:07 +08:00
c9s
5d2296eddd extract client order id generation 2021-04-28 19:20:55 +08:00
zenix
2bda296194 Fix: upgrade binance api, fix go fmt, add hard start time for binance to reduce sync execution time 2021-04-21 19:50:33 +09:00
Wei-Ning Huang
e7961be86a binance: set TimeInForce to GTC by default for limit orders
Binance does not allow submitting order without TimeInForce set for
certain order types. Set TimeInforce to GTC (Good-Til-Cancel) by
default.
2021-04-14 09:49:03 +08:00
David Chang
f884fcd45c fix: add ioc trade type to order type 2021-04-12 14:35:46 +08:00
David Chang
0db2cc2c96 fix: add ioc trade type to order type 2021-04-12 09:35:59 +08:00
David Chang
c9198d498e feature: add ioc order type support to max exchange 2021-04-11 12:29:23 +08:00
ycdesu
1e3ce81c06 ftx: pull out map 2021-04-01 11:55:27 +08:00
ycdesu
a659bacb0d ftx: remove back slash from symbol 2021-04-01 11:54:16 +08:00
ycdesu
28c9ac95ac ftx: query kline using rest api 2021-03-31 18:09:13 +08:00
ycdesu
f912fde6e3 ftx: panic if subscribe unsupported channel 2021-03-29 22:11:39 +08:00
ycdesu
66f165584f fix: make since/until optional 2021-03-29 22:11:39 +08:00
ycdesu
f526a937d1 ftx: websocket keepalive 2021-03-29 22:11:39 +08:00
ycdesu
53c9b0a606 ftx: remove redundant abstraction 2021-03-29 22:11:39 +08:00
ycdesu
e152aa1036 ftx: trade update 2021-03-29 22:11:39 +08:00
ycdesu
f345730778 ftx: handle err response 2021-03-29 22:11:38 +08:00
ycdesu
9c4ccbd6e2 ftx: subscribe order update 2021-03-29 22:11:38 +08:00
ycdesu
34ea325499 ftx: refactor websocket_messages structs 2021-03-29 22:11:38 +08:00
ycdesu
d3cdd3c2a6 ftx: define order update response 2021-03-29 22:11:38 +08:00
ycdesu
2e2ae46bae ftx: subscribe order update 2021-03-29 22:11:38 +08:00
ycdesu
f60f1ef52e ftx: authenticate websocket 2021-03-27 18:16:52 +08:00
ycdesu
691251169d ftx: define ws login request 2021-03-27 16:58:51 +08:00
ycdesu
3bcd5a8e83 ftx: null guard in close 2021-03-27 09:54:12 +08:00
ycdesu
9e77b3afd8 ftx: support queryTrades method 2021-03-26 00:43:15 +08:00
c9s
8122fddd02 add exchange field to binance trades and binance orders 2021-03-24 17:51:19 +08:00
ycdesu
241f1ee9de ftx: support lastOrderID 2021-03-23 22:27:11 +08:00
ycdesu
17b6122cf8 ftx: assign query string to order/wallet requests 2021-03-23 22:26:18 +08:00
ycdesu
bce749c13b ftx: add missing query string 2021-03-23 22:25:57 +08:00
c9s
67bfc508c8 max: remove unnecessary log 2021-03-22 17:40:00 +08:00
c9s
111b3ba036 max: improve multi-order request 2021-03-22 17:32:22 +08:00
c9s
3c5071b87e use uint32 for groupID 2021-03-22 17:32:22 +08:00
c9s
cd5ac1ddf5 fix convert for limit maker 2021-03-22 17:32:22 +08:00
c9s
24c4d05e91 max: load websocket base url from the env var 2021-03-22 17:32:21 +08:00
ycdesu
ab743f85c2 ftx:support deposit histories 2021-03-21 20:17:41 +08:00
ycdesu
d2a5a755be ftx: implement queryMarket 2021-03-21 13:06:46 +08:00
ycdesu
14652c6918 ftx: define market request 2021-03-21 13:06:46 +08:00
c9s
814a77ea39 xmaker: improve balance checking 2021-03-21 12:55:33 +08:00
c9s
1f744b0fa5 convert limit maker type to post only 2021-03-21 12:55:33 +08:00
c9s
837934e690 add post_only order type 2021-03-21 12:55:33 +08:00
c9s
b4083bdf10 fix fee calc tests 2021-03-20 22:59:53 +08:00
c9s
a52101b163 remove bps from the fee calc 2021-03-20 22:53:14 +08:00
c9s
d97275e408 query max account fee from the vip level api 2021-03-19 17:06:48 +08:00
ycdesu
c8447663db refactor: use fixedpoint to store fee 2021-03-19 08:49:24 +08:00
ycdesu
83ae943a4f ftx: calculate commission 2021-03-18 23:58:28 +08:00
ycdesu
a62481590e ftx: support PlatformCurrency 2021-03-18 23:58:28 +08:00
ycdesu
8a75b21a38 ftx: support account info 2021-03-18 23:53:55 +08:00
c9s
dffd9fc980 add VipLevel api query support 2021-03-18 17:58:18 +08:00
c9s
890324a4ad maxapi: add VipLevel 2021-03-18 17:58:18 +08:00
Yo-An Lin
40b376802e Merge pull request #168 from c9s/feature/mark-trade-strategy 2021-03-18 10:31:59 +08:00
c9s
cad8349a1a remove state OrderStateFinalizing from the order state
since we are only interested in the closed orders
2021-03-18 01:15:49 +08:00
c9s
dd87bde785 fix reward sync time range issue 2021-03-18 01:15:38 +08:00
c9s
4a415a43b3 fix reward query 2021-03-18 00:46:10 +08:00
ycdesu
4a5a53ea28 ftx: support queryClosedOrders 2021-03-17 21:26:25 +08:00
ycdesu
54ca62ac5c ftx: define ordersHistory in rest client 2021-03-17 08:18:37 +08:00
ycdesu
342b0dd1dd ftx: cancel orders 2021-03-16 22:36:44 +08:00
Yo-An Lin
7ecb17dbe2 Merge pull request #163 from c9s/feature/mark-trade-strategy 2021-03-16 22:34:09 +08:00
c9s
714d61a829 add grid restore behavior 2021-03-16 20:04:06 +08:00
Yo-An Lin
f5b65e795e Merge pull request #160 from c9s/feature/grid-options 2021-03-16 12:59:14 +08:00
c9s
2f7c7d344b move emitStart method call into the stream Connect method 2021-03-16 01:32:27 +08:00
ycdesu
c88297117b ftx: new rest everytime 2021-03-15 19:02:14 +08:00
c9s
c95e712420 binance: emit disconnect 2021-03-15 17:48:16 +08:00
c9s
6d249cf83c bypass disconnect event 2021-03-15 17:48:16 +08:00
c9s
61a19cbfb4 align fields and tags 2021-03-15 17:31:07 +08:00
c9s
ab6b56d91e fix taker volume parsing 2021-03-15 15:37:53 +08:00
c9s
3ffa319ba8 improve max websocket reconnecting issue 2021-03-15 10:23:20 +08:00
Yo-An Lin
e0d7fefbf2 Merge pull request #150 from c9s/fix/pnl
feature: add deposit service and withdraw service for sync
2021-03-15 09:01:24 +08:00
c9s
0246e298d2 apply launch date if since time is empty 2021-03-14 11:18:22 +08:00
c9s
75c6a2791c reduce log 2021-03-14 11:18:22 +08:00
c9s
8e85274876 fix used time field for withdraw 2021-03-14 11:18:22 +08:00
c9s
b25671c864 fix max deposits history ordering 2021-03-14 11:18:22 +08:00
c9s
75778675e3 fix withdraw query order 2021-03-14 11:18:22 +08:00
c9s
dbcf35e4a4 add FeeCurrency field 2021-03-14 11:18:22 +08:00
c9s
2d6b6e7427 fix withdrawal data ordering 2021-03-14 11:18:22 +08:00
c9s
4d3b1ec938 fix QueryWithdrawHistory and QueryDepositHistory 2021-03-14 11:18:22 +08:00
c9s
877ea73435 maxapi: align fields 2021-03-14 11:18:22 +08:00
c9s
be672c89e6 max: update deposit and withdraw types 2021-03-14 11:18:22 +08:00
c9s
3f0290479b binance: update withdraw and deposit types 2021-03-14 11:18:22 +08:00
c9s
33213746f4 cmd: add --all option to the cancel command 2021-03-14 10:29:45 +08:00
ycdesu
a83b95d262 ftx: implemenet place order func 2021-03-13 10:41:04 +08:00
ycdesu
506fdcd84f ftx: add conversion helper 2021-03-13 09:51:16 +08:00
ycdesu
778ceb2985 ftx: define orderResponse struct 2021-03-13 09:51:03 +08:00
ycdesu
0e611dbee4 ftx: rename orders to ordersResponse 2021-03-12 23:03:08 +08:00
c9s
48fe6054b0 exchange/max: fix query reward issue 2021-03-10 14:18:01 +08:00
YC
b33402df24 Merge pull request #147 from c9s/ftx/query-open-orders 2021-03-08 18:50:56 +08:00
ycdesu
ee8ebde12d ftx: add todo 2021-03-07 12:53:41 +08:00
ycdesu
6599f276db ftx: implement query open orders 2021-03-07 12:51:13 +08:00
ycdesu
3676450e4b ftx: convert open order 2021-03-07 12:51:13 +08:00
ycdesu
16366b09a4 ftx: rename responses.go to rest_responses.go 2021-03-07 12:51:13 +08:00
ycdesu
26963ce7ab ftx: rename balance.go to rest_balance_request.go 2021-03-07 12:51:13 +08:00
ycdesu
f6f3fcab02 ftx: orderbook snapshot checksum 2021-03-06 19:23:44 +08:00
ycdesu
be7c393fcb ftx: print orderbook update 2021-03-04 10:02:40 +08:00
ycdesu
43275d08bc ftx: use pure function to convert orderbook snapshot 2021-03-03 22:36:14 +08:00
ycdesu
55b9569777 ftx: use the same struct to handle orderbook snapshot/update 2021-03-03 22:33:06 +08:00
ycdesu
e34f68ab90 ftx: unmarshal all fields at the same time 2021-03-03 10:31:46 +08:00
ycdesu
160f6323e8 ftx: emit orderbook snapshot 2021-03-02 22:18:41 +08:00
ycdesu
253810556e ftx: unmarshal orderbook snapshot 2021-03-02 18:33:19 +08:00
ycdesu
45528fa219 ftx: modify log 2021-03-02 18:33:19 +08:00
c9s
3e616c5fac convert and parse binance margin account structure 2021-02-28 15:06:20 +08:00
c9s
32c2780b16 convert binance margin account data into the global structure 2021-02-28 15:06:20 +08:00
ycdesu
883b7ef028 ftx: handle message in a new struct 2021-02-27 19:27:44 +08:00
ycdesu
d9ad022a81 ftx: define subscribed msg 2021-02-27 19:27:37 +08:00
ycdesu
73d05fe7bb ftx: send subscriptions when connected 2021-02-27 18:42:46 +08:00
ycdesu
c52f918dd4 ftx: add missing types.exchange methods 2021-02-27 17:24:08 +08:00
ycdesu
8b838b9a59 ftx: make logger private 2021-02-27 17:01:20 +08:00
ycdesu
b28d9631ab ftx: return ftx stream but hasn't implement it yet 2021-02-27 16:48:50 +08:00
c9s
1d29009133 fix max trade query ordering and sql query ordering for query last 2021-02-25 13:55:04 +08:00
c9s
14830c442c refactor and implement reward sync and query 2021-02-23 22:53:00 +08:00
c9s
5a7cf05701 integrate reward service into the sync service 2021-02-23 16:39:48 +08:00
c9s
fb62af05a4 add global Reward type 2021-02-23 10:08:01 +08:00
c9s
96362a4936 max: add rewards api and example 2021-02-22 18:45:44 +08:00
c9s
507586b560 fix max websocket subscription 2021-02-22 17:36:30 +08:00
c9s
21a4669905 adjust max query limiter and sync before running trader 2021-02-22 16:54:08 +08:00
c9s
f7c952f8ca add version files 2021-02-22 15:16:12 +08:00
c9s
59d68e7f0d max: adjust trades limit to 1000 2021-02-22 15:03:15 +08:00
c9s
eaad414706 adjust max api call rate limiting 2021-02-22 15:01:05 +08:00
c9s
cdb7ce84c8 apply rate limit 2021-02-22 13:36:39 +08:00
c9s
dd13b9a8bf remove start time query condition for trade sync since starting from trade id = 1 works 2021-02-19 14:18:50 +08:00
c9s
65ff2894c5 binance: calculate quote quantity manually if it's not defined 2021-02-18 18:24:00 +08:00
c9s
3a89b0a714 improve trade sync 2021-02-18 18:20:18 +08:00
c9s
654ad62f36 remove type assert 2021-02-18 17:42:14 +08:00
c9s
0ba595bd55 Fix trade sync for self trades
MAX uses one single trade for presenting self trade.

BINANCE uses two trade records for presenting self trade. the trade
creation time are the same.
2021-02-18 17:37:49 +08:00
c9s
c3dbb1b204 avoid using last trade id for syncing data 2021-02-18 16:40:47 +08:00
c9s
29bbd03836 add binance single ticker query method and fix quantity formating 2021-02-18 16:17:40 +08:00
c9s
49f4039a23 add timestamp parameter 2021-02-16 17:11:15 +08:00
c9s
9a7437de53 set default limit to 1000 2021-02-16 17:10:58 +08:00
c9s
02512805f8 set default query trade limit to 1000 for max 2021-02-16 16:32:48 +08:00
c9s
f7ef91b55c binance: set the default ping handler 2021-02-11 08:13:50 +08:00
c9s
ffa001fc29 fix quantity format 2021-02-11 00:21:56 +08:00
ycdesu
ed86e923df ftx: add exchange name 2021-02-08 22:33:12 +08:00
ycdesu
0eb0bdefa2 ftx: use uppercase in toGlobalCurrency 2021-02-08 22:29:50 +08:00
ycdesu
46b0315871 ftx: implement ftx balances querying 2021-02-08 19:07:18 +08:00
ycdesu
eb00720043 ftx: define empty ftx.toGlobalCurrency 2021-02-08 19:07:18 +08:00
ycdesu
7c48670c39 ftx: define rest client 2021-02-08 19:07:18 +08:00
ycdesu
565086cc2a util: extract IsError method 2021-02-08 19:07:18 +08:00
ycdesu
54ef8d3ca6 ftx: define empty exchange 2021-02-08 19:04:18 +08:00
Yo-An Lin
f8ae8ec5b0 Merge pull request #108 from ychi/feat/exchange-ticker-api 2021-02-08 07:37:50 +08:00
ycchen
7a67083fbe Address review feedbacks 2021-02-07 22:58:30 +01:00
Jui-Nan Lin
001f0e8c2f fix(max): use global trade side here, not string 2021-02-07 14:58:44 +08:00
ycchen
288f7257eb fix testcases 2021-02-06 19:39:43 +01:00
ycchen
5fed7b81de QueryTicker 2021-02-06 18:35:23 +01:00
ycchen
fa20df487e feat: ticker api for types.Exchange 2021-02-06 14:05:26 +01:00
Jui-Nan Lin
30f085fa91 fix(max): IsBuyer should check side "buy" and "bid" 2021-02-06 17:30:18 +08:00
Yo-An Lin
597dd21865 Merge pull request #116 from c9s/feature/sqlite3
convert time struct for sqlite driver
2021-02-06 15:05:49 +08:00
c9s
26f9e5488d apply datatype.Time to order time fields 2021-02-06 14:30:00 +08:00
c9s
3abdb3dd7b convert time struct for sqlite driver 2021-02-06 12:32:21 +08:00
ycdesu
f44d6a323a http: move response helper to util 2021-02-05 22:31:40 +08:00
c9s
6912f77c72 fix lock issue 2021-02-01 18:55:47 +08:00
c9s
b952e6fd54 rename Reset to private reset 2021-01-25 14:26:22 +08:00
c9s
4c0a586aa2 adjust depth update to 5 minutes 2021-01-25 14:24:59 +08:00
c9s
b99c01a03f fix stream book usage 2021-01-25 14:13:39 +08:00
c9s
1aefbbfddc improve orderbook validation error 2021-01-25 13:53:11 +08:00
c9s
e2de3040bd adjust ping ticker to 10seconds 2021-01-24 19:08:33 +08:00
c9s
7632638982 log depth api error 2021-01-24 16:54:13 +08:00
c9s
cabc082713 fix f.loadDepthSnapshot timing 2021-01-24 14:12:44 +08:00
c9s
50fc1fd3ac call Reset instead of replacing the whole map
the reason is that we have the update worker, which is already started.
2021-01-24 14:09:07 +08:00
c9s
2b441ad3bc binance: improve depth event filtering and reloading 2021-01-24 10:02:38 +08:00
c9s
1f1e1383f3 fix advancedOrderCancelApi interface 2021-01-23 17:20:26 +08:00
c9s
858a8d84bb groupID is an int64 field 2021-01-23 17:17:46 +08:00
c9s
4b039847b7 support group ID 2021-01-23 17:15:32 +08:00
c9s
e08d62395e adjust snapshot ticker to 10 minutes 2021-01-23 17:03:53 +08:00
c9s
6a6dacd595 fix binance depth snapshot updating 2021-01-23 16:59:51 +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
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
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
5cab37488b move MarginSettings struct to a file 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
48083151aa turning margin mode 2021-01-19 23:31:04 +08:00
c9s
c3db6db590 add margin option 2021-01-19 23:31:04 +08:00
c9s
50cd6f7d68 change go-binance to github.com/adshao/go-binance/v2 2021-01-11 13:36:49 +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
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
1c7d3d5481 support max staging url orverride 2020-12-17 14:44:30 +08:00
c9s
f7a119fa5e remove debug message 2020-12-04 19:15:53 +08:00
c9s
4f399ebb9f fix stop price formating 2020-12-03 09:25:47 +08:00
c9s
edb22383c7 fix ToGlobalOrder call 2020-12-02 22:44:57 +08:00
c9s
4cf5929cac improve trade parsing error 2020-12-02 22:21:13 +08:00
c9s
a86078d68c max: fix tick size 2020-11-22 21:34:05 +08:00
c9s
c40982164a fix trade slack formatting 2020-11-17 15:48: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
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
24e5911140 refactory sync mode into the backtest command 2020-11-11 16:08:24 +08:00
c9s
23c19c5968 use fixedpoint for balances 2020-11-10 14:19:33 +08:00
c9s
e7cc79f3cf replace errors.Errorf with fmt.Errorf 2020-11-09 16:34:35 +08:00
c9s
1e925cac6e move onConnect to the standard stream 2020-11-07 12:38:57 +08:00
c9s
94bb7f5dac max: fix order symbol convertion 2020-11-07 12:19:57 +08:00
c9s
b13a2deec5 emit klines and setup account balances 2020-11-07 03:18:05 +08:00
c9s
22a214328d implement backtest command, stream and add backtest config 2020-11-07 02:57:50 +08:00
c9s
8823a39fc2 support backtesting kline verification 2020-11-07 00:49:17 +08:00
c9s
555fe57341 implement kline sync function from command 2020-11-06 21:40:48 +08:00
c9s
78d7c71ecc add kline service and extend kline struct fields 2020-11-06 19:07:07 +08:00
c9s
b86b74effb fix max kline parsing 2020-11-05 15:04:56 +08:00
c9s
b38d0d15ed fix order sync for max 2020-11-05 14:12:19 +08:00
c9s
7e47f754c5 use channel to sync trades 2020-11-05 13:35:04 +08:00
c9s
7fab2e24de improve order persistence and support order data sync 2020-11-05 11:14:14 +08:00
c9s
a4555a2b7b implement QueryClosedOrders 2020-11-05 11:14:14 +08:00
c9s
fe16f9aa4d add is_working column 2020-11-05 11:14:14 +08:00
c9s
bb0ff263c8 assign order_id to the trade object 2020-11-05 11:14:14 +08:00
c9s
8e0b5d11a7 add max grid config and fix max price formatting 2020-10-31 20:38:20 +08:00
c9s
14abe3fb7e pull out active order book to the types package 2020-10-31 20:38:20 +08:00
c9s
8174b64e21 handle max order update message convertion 2020-10-31 18:29:58 +08:00
c9s
63df07b815 fix MAX market min price format 2020-10-31 18:29:58 +08:00
c9s
9c46ef17b2 handle order update 2020-10-31 18:29:58 +08:00
c9s
60b78979dc fix order id parsing (seems case insensitive) 2020-10-31 18:29:58 +08:00
c9s
c3961024cf implement grid strategy update orders method 2020-10-31 18:29:58 +08:00
c9s
67446670ac finalize swing strategy and fix trade reporter issue 2020-10-28 17:48:16 +08:00
c9s
e2df24f31c support standard indicatorset 2020-10-28 09:43:19 +08:00
c9s
085d02bee4 clean up strategy code since we can loaded from the config 2020-10-26 22:04:48 +08:00
c9s
145264aae4 cancel orders and re-submit maker orders 2020-10-26 00:26:17 +08:00