Commit Graph

1405 Commits

Author SHA1 Message Date
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
d863766e00 fix quote quantity alignment 2021-05-30 15:51:00 +08:00
c9s
c84d59734c clear all trades before running backtests 2021-05-30 15:25:00 +08:00
c9s
3aa36b5989 refactor and fix backtest for user data stream and market data stream 2021-05-30 15:08:11 +08:00
c9s
38fd5422ab xmaker: use uncovered position 2021-05-30 14:46:48 +08:00
c9s
1a05f6fbd4 okex: pull read timeout and adjust to 30 seconds 2021-05-30 00:32:06 +08:00
c9s
9a68cfd288 xmaker: fix trade checking 2021-05-30 00:11:35 +08:00
c9s
d962dbe542 adjust read timeout 2021-05-29 20:40:47 +08:00
c9s
70284a8c0f xmaker: move notify trade 2021-05-29 01:41:29 +08:00
c9s
3789315214 show accumulated net profit 2021-05-29 01:38:44 +08:00
c9s
df10e175f9 xmaker: fix wording 2021-05-29 01:32:33 +08:00
c9s
e2561bde96 xmaker: add NotifyTrade option 2021-05-29 01:31:13 +08:00
c9s
65a38e56b8 slacknotifier: spawn notify worker as a go routine 2021-05-29 01:30:57 +08:00
c9s
6e0bc7c1e2 xmaker: use trade channel to buffer trades 2021-05-29 01:03:43 +08:00
c9s
33db0b5c6f xmaker: add trade stores for trade buffering 2021-05-29 00:28:13 +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
8d31435ded add trade store 2021-05-29 00:25:23 +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
5f18b89dfa if publicOnly is set, we should not connect user data stream 2021-05-28 19:01:55 +08:00
c9s
f190b1e66a fix market data stream initialization 2021-05-28 03:17:46 +08:00
c9s
d932a686a0 fix strategy market data stream usage 2021-05-28 03:15:29 +08:00
c9s
4f16f6b1f8 fix market data stream usage 2021-05-28 03:13:50 +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
b7c87c7744 core: move market data subscription to market data stream 2021-05-27 15:09:18 +08:00
c9s
45f1a13870 rename Stream field to UserDataStream and add MarketDataStream 2021-05-27 14:45:06 +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
29ad95a639 add okex to the valid exchange name 2021-05-27 00:29:16 +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
1fb456d8ad add Stringer interface to fixedpoint 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
36071d6649 move MillisecondsJitter to the util package 2021-05-26 23:41:45 +08:00
c9s
9d7f147fbf fix address UnmarshalJSON 2021-05-26 23:37:08 +08:00
c9s
967c7e9f9d xbalance: add withdrawal options 2021-05-26 23:24:05 +08:00
c9s
8781902b68 xmaker: fix stop hedge balance condition 2021-05-26 23:05:41 +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
zenix
3d2a27fc10 Fix: nil pointer exception in indicator creation, add stoch util func 2021-05-26 00:20:31 +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
c9s
bf684c0a5e fix empty bids and ask issues 2021-05-25 15:54:41 +08:00
c9s
28c646a4db reformat code 2021-05-25 01:50:36 +08:00
c9s
c8ca19a298 fixedpoint: fix percentage parsing 2021-05-25 01:36:17 +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
956ef71a48 use stamp time with milliseconds 2021-05-23 01:29:41 +08:00
c9s
fbe850b364 improve floating number formatting 2021-05-23 01:19:26 +08:00
c9s
117b26840e show net profit margin percentage 2021-05-23 01:17:20 +08:00
c9s
de768296f1 fix rbtree memory error, check neel 2021-05-23 01:12:16 +08:00
c9s
9c70e36e1b save average cost with feeInQuote in the ApproximateAverageCost 2021-05-23 01:05:11 +08:00
c9s
d2e299a68a improve position comment 2021-05-23 00:42:57 +08:00
c9s
9efb45b133 reduce side book copy 2021-05-23 00:42:44 +08:00
c9s
9fa10ee1fd fix rbtree price volume order 2021-05-23 00:42:27 +08:00
c9s
7a653affa6 slice orderbook: do not copy book callbacks 2021-05-23 00:21:57 +08:00
c9s
0061e51dc9 fix rbtree copy depth 2021-05-23 00:21:57 +08:00
なるみ
2052d05bb3 Move Float64Slice to types 2021-05-22 20:20:48 +08:00
c9s
1531f2bb1b fix rbtree insertion and rotation 2021-05-22 18:11:32 +08:00
c9s
9b9643e1f9 improve order cancellation mechanisim 2021-05-22 17:44:20 +08:00
c9s
289227e5f3 add exists method for active book 2021-05-22 17:44:07 +08:00
c9s
0a908e5dda fix position test for net profit 2021-05-22 17:43:53 +08:00
c9s
cca3284140 separate net profit and profit 2021-05-22 17:17:37 +08:00
Yo-An Lin
20f02886de Merge pull request #250 from narumiruna/feature/kd
feature: add stochastic oscillator (KD) indicator
2021-05-22 16:52:46 +08:00
Yo-An Lin
890323c87b Merge pull request #251 from narumiruna/fix/kline-window
fix: KLineWindow
2021-05-22 16:51:53 +08:00
c9s
6df72d54a8 add callbacks 2021-05-22 16:47:34 +08:00
c9s
8acada76a9 replace sliceorderbook with orderbook interface 2021-05-22 16:32:29 +08:00
c9s
cca37d309a fix rbtree iteration 2021-05-22 14:57:14 +08:00
c9s
fd710d533f implement tree copy method 2021-05-22 12:18:08 +08:00
c9s
56b2c8845b fix preorder, postorder and inorder 2021-05-22 11:36:58 +08:00
なるみ
0377a7321e Rename KD to STOCH 2021-05-22 05:52:10 +08:00
なるみ
b9ced0955d Fix test 2021-05-22 05:36:38 +08:00
なるみ
25f76235e9 Fix GetHigh, GetLow and Mid 2021-05-22 05:26:27 +08:00
なるみ
50d96f1276 Fix KLineWindow.Tail 2021-05-22 05:22:38 +08:00
なるみ
ec6cbb05aa Add kd_test.go 2021-05-22 05:00:27 +08:00
なるみ
b82fbbb2ab Add pop, max, min, sum, mean and tail methods to Float64Slice 2021-05-22 03:28:25 +08:00
なるみ
c58e252ff2 Add stochastic oscillator indicator 2021-05-22 03:24:09 +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
09d68057c5 move price volume slice to a separated file 2021-05-21 12:32:47 +08:00
c9s
94fb0e320e implement RBTree orderbook benchmark 2021-05-21 12:31:18 +08:00
c9s
f6229515ac fix color ref 2021-05-21 02:18:45 +08:00
c9s
31f9920ddc fix func comment 2021-05-21 02:17:57 +08:00
c9s
d2003bbc3d remove unused emit function calls 2021-05-21 02:17:40 +08:00
c9s
d930816672 define RBOrderBook 2021-05-21 02:15:31 +08:00
c9s
be646fbac2 move rbtree to types package 2021-05-21 01:44:53 +08:00
c9s
edf8902b28 implement rbtree delete 2021-05-21 01:36:58 +08:00
c9s
d14137b878 add rbtree functions 2021-05-21 00:10:53 +08:00
c9s
57a78777df move Time type to types.Time 2021-05-21 00:10:53 +08:00
c9s
4fde442722 Add position Reset function 2021-05-21 00:08:04 +08:00
c9s
d737ab678f support removing filled orders from the order store 2021-05-21 00:07:43 +08:00
Yo-An Lin
343f184252 Merge pull request #248 from jnlin/fix/ftx-orderid
fix(ftx): use generated order id if not specified
2021-05-20 01:06:37 +08:00
Jui-Nan Lin
02649bdd63 fix(ftx): use generated order id if not specified 2021-05-19 21:37:29 +08:00
c9s
d1ad802806 improve trade command output layout 2021-05-19 17:54:30 +08:00
c9s
44901572ac show order id in the slack attachment 2021-05-19 17:21:17 +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
7f86c75360 add CopyDepth for avoid copying the whole book 2021-05-19 00:15:11 +08:00
c9s
34106cf65e add cpu profile option 2021-05-18 15:38:22 +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
422e85e3a3 twap: fix stop price check 2021-05-18 13:53:51 +08:00
c9s
896518f5c2 check if restQuantity is less than 0 2021-05-18 13:44:57 +08:00
c9s
21f7fa7846 twap: fix tick spread calculation 2021-05-18 13:38:23 +08:00
c9s
b8139e6e86 add xarb strategy 2021-05-18 10:19:35 +08:00
c9s
c4ccd8094f make max client order id factory public 2021-05-18 09:10:43 +08:00
c9s
e23932f99c xbalance: add checkOnStart option 2021-05-18 08:32:00 +08:00
c9s
d722b76564 adjust pips by bollband ratio 2021-05-17 23:57:20 +08:00
Yo-An Lin
d1bfeccc72 Merge pull request #246 from jnlin/fix/ftx-symbol
fix(ftxExchange): setup a symbol mapping table
2021-05-17 21:37:46 +08:00
c9s
1c19c02206 xmaker: fix order submission 2021-05-17 21:33:55 +08:00
Jui-Nan Lin
c0cf529db7 fix(ftx): allow empty TimeInForce to place market orders 2021-05-17 21:05:44 +08:00
c9s
f6f1226bd0 integrate bollband indicator into xmaker 2021-05-17 20:04:13 +08:00
c9s
b8fe100b5e move balance printing to debug-balance env var 2021-05-17 20:04:13 +08:00
c9s
f80c98b97c since we always receive balance update from websocket we do not need to subscribe 1m from the maker exchange 2021-05-17 20:04:13 +08:00
c9s
6370b39cde adjust quantity by max amount if balance is not enough 2021-05-17 20:04:13 +08:00
c9s
c6ae1b54b8 remove redundant word 2021-05-17 20:04:13 +08:00
c9s
a1c888f04b adjust profit margin percentage precesion 2021-05-17 20:04:13 +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
Yo-An Lin
345c3c9e2c Merge pull request #245 from jnlin/fix/ftx-subaccount 2021-05-17 16:34:05 +08:00
Jui-Nan Lin
2d5ae1dde3 fix(ftxExchange): the env variable is "FTX_ACCOUNT" 2021-05-17 12:42:04 +08:00
c9s
6069102099 fix percentage 2021-05-17 09:02:34 +08:00
c9s
82e85dd27a add profit margin 2021-05-17 08:59:20 +08:00
c9s
61d95a4c34 render trade time 2021-05-17 00:53:19 +08:00
c9s
45e930a086 use slack attachment title instead of pretext 2021-05-16 18:07:06 +08:00
c9s
e7c718ee15 assign fee rate to position 2021-05-16 17:58:51 +08:00
c9s
187a9c795b use exchange fee rate as a reference for profit 2021-05-16 17:50:08 +08:00
c9s
d0e4a5e65c move addTrade lock section 2021-05-16 17:05:12 +08:00
c9s
e636a5008d replace Exchange field type with ExchangeName 2021-05-16 17:02:23 +08:00
c9s
0a016cba75 split maker fee and taker fee 2021-05-16 16:50:26 +08:00
c9s
491c4bbada fixedpoint: support percentage parsing 2021-05-16 15:16:04 +08:00
c9s
a4381a54a3 add fee rate field 2021-05-16 15:03:36 +08:00