Commit Graph

440 Commits

Author SHA1 Message Date
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
c9s
336fb4d25b max: fix order cancel request payload 2020-10-25 22:41:54 +08:00
c9s
de11ef10f5 return created order objects from SubmitOrders method 2020-10-25 19:22:22 +08:00
c9s
fa30f6b52a Support binance order update execution type convertion 2020-10-25 19:22:22 +08:00
c9s
391767953a Fix binance trade transaction time convertion 2020-10-25 19:22:22 +08:00
c9s
308427416a Add more exchange order features
- use uuid for client order id
- add stop limit and stop market order types
- add order convert functions
- improve submit orders
2020-10-25 19:22:22 +08:00
c9s
678e4ef4ab add trade reporter 2020-10-22 10:47:54 +08:00
c9s
fc687f3174 max: implement kline event parser for websocket 2020-10-19 22:46:34 +08:00
c9s
366036a35b max: parse and convert trade update 2020-10-19 22:23:49 +08:00
c9s
822e4c2703 receive trade in value instead of pointer 2020-10-19 22:06:43 +08:00
c9s
b0b1d2bd49 max: fix currency conversion 2020-10-19 21:33:21 +08:00
c9s
73e17730d7 move account type into types package 2020-10-18 11:30:37 +08:00
c9s
fe1a25d735 max: add resolution to the subscription 2020-10-18 00:09:37 +08:00
c9s
530da665d3 fix max newAuthenticatedRequest for nil data 2020-10-18 00:05:54 +08:00
c9s
2d88f8e5f6 remove unused empty method convertDepthResponseToSnapshot 2020-10-17 23:49:14 +08:00
c9s
615da2e1d8 add logger with fields 2020-10-17 10:39:03 +08:00
c9s
ee86a71ebb split files 2020-10-16 10:14:36 +08:00
c9s
5112b83041 max: fix internal currency usage 2020-10-14 11:02:10 +08:00
c9s
c58375f57e max: extend max exchange market information 2020-10-14 10:53:18 +08:00
c9s
88461396f1 rearrange market config fields 2020-10-14 10:39:14 +08:00
c9s
2b41f76082 add maxPrice, minPrice and tickSize config 2020-10-14 10:34:33 +08:00
c9s
64c2170cd5 implement QueryMarkets on binance 2020-10-14 10:16:59 +08:00
c9s
a91f851ac7 pass types.SubmitOrder by value 2020-10-13 18:08:02 +08:00
c9s
4ce716d6ad binance: make asset parameter optional 2020-10-12 17:15:33 +08:00
c9s
92a5eac412 make currency parameter optional 2020-10-12 17:15:13 +08:00
c9s
ea7b501c26 add transfer history command for calculating baseline and show transfer records 2020-10-11 20:08:54 +08:00
c9s
2d246c3f71 move deposit type to global type and add max deposit history support 2020-10-11 17:35:59 +08:00
c9s
3d5507a053 move files into pkg 2020-10-11 16:46:15 +08:00