Commit Graph

427 Commits

Author SHA1 Message Date
c9s
37ef5c4b97
max: add margin api (liquidation history and interest history) 2022-05-27 15:04:47 +08:00
c9s
8721679f74
max: update market struct fields 2022-05-26 20:32:25 +08:00
c9s
d9e10b7fcd
max: integrate v3 orders api 2022-05-26 19:52:38 +08:00
c9s
6ca71cf9f1
max: simplify constructor 2022-05-26 18:49:50 +08:00
c9s
2d20083244
max: pull out http transport and register order service v3 2022-05-26 18:49:18 +08:00
c9s
c1ba270d76
max: log max.DebtEvent 2022-05-26 18:07:17 +08:00
c9s
4d8ea7d979
max: log adratio 2022-05-25 20:34:25 +08:00
c9s
459d839c1a
max: parse debt 2022-05-25 20:12:16 +08:00
c9s
2ffbb2ed82
max: add ad_ratio_update type 2022-05-25 20:06:51 +08:00
c9s
a74ad31ea0
max: parse ADRatio message 2022-05-25 20:06:17 +08:00
c9s
83abf14f3b
max: add updateTime field parse 2022-05-25 19:52:29 +08:00
c9s
f65821d4fd
max: add mwallet message type to parser 2022-05-25 14:42:45 +08:00
c9s
9f0d975b57
max: add filters when margin is on 2022-05-25 14:40:43 +08:00
c9s
e5e505d65e
max: apply margin settings struct 2022-05-25 14:38:09 +08:00
c9s
eccee460ca
max: add filters field to the auth message 2022-05-25 13:51:24 +08:00
c9s
0ee23e0ce4
max: refactor order sort method into the types package 2022-05-24 18:07:34 +08:00
c9s
680231e0c5
max: drop legacy queryAllClosedOrders method 2022-05-24 18:04:33 +08:00
c9s
9d459612a4
maxapi: add wallet type validation 2022-05-24 18:00:52 +08:00
c9s
79893f4b88
define wallet type and separate wallet order api 2022-05-24 17:48:08 +08:00
c9s
c6ede883ce
add max v3 api 2022-05-24 17:40:00 +08:00
c9s
a66bae47fe
add v3 order endpoint 2022-05-23 18:34:08 +08:00
c9s
13bf5d69a3
use types.Interval instead of string 2022-05-19 10:04:03 +08:00
c9s
019e6a2a88
improve legacy state handling and move fnv 2022-05-05 14:39:29 +08:00
c9s
f65ecbdbb5
max: add net asset field to max's balance 2022-05-04 21:43:59 +08:00
c9s
a57a238e09
bbgo: add more sync options 2022-04-25 17:18:42 +08:00
c9s
76012f0b71
max: deposit request currency field is optional 2022-04-25 16:27:07 +08:00
c9s
9e06053c3b max: rewrite and rename private trade request 2022-04-21 14:56:20 +08:00
c9s
f9908f2931 rewrite private trade request 2022-04-21 14:52:44 +08:00
c9s
8e2a993370 max: improve max closed orders syncing 2022-04-21 14:11:49 +08:00
c9s
93b10f20ac maxapi: fix fromID to uint64 2022-04-21 13:18:00 +08:00
c9s
e754b68cdf maxapi: fix http timeout 2022-04-21 13:17:43 +08:00
c9s
0410ef1305 maxapi: refactor rewards api 2022-04-21 00:18:34 +08:00
c9s
8b9383ecfa maxapi: refactor withdrawal request 2022-04-20 16:38:08 +08:00
c9s
72ea9f7e24 maxapi: add deposit request tests and withdrawal request tests 2022-04-20 14:01:18 +08:00
c9s
f3eafd5cd8 remove unused get trades method 2022-04-20 13:49:06 +08:00
c9s
387c0bfb8b maxapi: rewrite vip level request 2022-04-20 13:35:17 +08:00
c9s
68abeb826b maxapi: add account service tests 2022-04-20 13:28:39 +08:00
c9s
f9df65a2f8 maxapi: add generated files 2022-04-20 13:20:54 +08:00
c9s
ff7f1a8bc8 maxapi: always merge params into the payload for signing 2022-04-20 12:18:35 +08:00
c9s
4d8997a8d5 max: pass context background to the request 2022-04-20 12:18:35 +08:00
c9s
5cba6a6133 maxapi: use requestgen to query and submit orders 2022-04-20 12:18:35 +08:00
c9s
93b19faa3a refactor newAuthenticatedRequest 2022-04-20 12:18:35 +08:00
c9s
bf4a0169bd max: update client api 2022-04-20 12:18:35 +08:00
c9s
d1f4c0a225 max: fix kline parse 2022-03-15 16:07:19 +08:00
c9s
fcbdf8162a max: add env var MAX_QUERY_CLOSED_ORDERS_LIMIT 2022-03-07 13:56:20 +08:00
c9s
e23232c3e7 max: fix timeInForce conversion 2022-03-06 18:37:34 +08:00
c9s
586013d9f2 max: fix order update message 2022-03-06 18:33:21 +08:00
c9s
fb9f8b484c max: remove ioc limit type 2022-02-18 13:57:47 +08:00
zenix
cdba7924b4 fix backtest panic when cancel fail on the last order 2022-02-15 12:01:39 +09:00
zenix
05521a98b6 add skeleton strategy. fix most of the tests. fix final asset value 2022-02-15 12:01:39 +09:00
zenix
b8bf2af14d fixedpoint for exchange and indicators, some fixes in types 2022-02-15 12:01:38 +09:00
c9s
a2a7ef4f7a exchange: implement ExchangeOrderQueryService on max and binance 2022-02-10 17:48:53 +08:00
c9s
59cc4d7243 max: improve max closed order query 2022-01-27 00:02:35 +08:00
c9s
6286c50f7a max: always sort trades 2022-01-24 23:59:10 +08:00
c9s
f284c35b81 max: ensure orders are sorted ascendingly 2022-01-24 23:54:58 +08:00
c9s
04a15340bc max: add warning for the uneffected conditions 2022-01-24 23:51:53 +08:00
c9s
50871c1b61 max: fix order query limiter call and order state for query 2022-01-24 23:45:56 +08:00
c9s
0c0a12781a max: fix max exchange closed order sync 2022-01-24 23:18:52 +08:00
c9s
ec72a922c8 all: add subscribe depth options 2022-01-12 22:27:42 +08:00
c9s
8c2228f428 cmd: use time.Local for the local timezone 2022-01-12 15:33:04 +08:00
c9s
e5b4af53e6 all: clean up SubmitOrder fields 2022-01-11 01:36:19 +08:00
c9s
8b6cae9107 max: fix max authenticated event parsing 2022-01-02 12:20:38 +08:00
c9s
e04139a330 max: clean up and refactor max stream 2022-01-02 12:02:36 +08:00
c9s
c49b9ef276 fix order status convert 2021-12-27 00:21:52 +08:00
c9s
e08b2e9a85 fix max exchange order status conversion and document the order status 2021-12-26 15:58:12 +08:00
c9s
562c287a4e all: move publicOnly to StandardStream 2021-12-23 17:49:18 +08:00
c9s
cfd68fdd1d all: change trade id to uint64 2021-12-23 17:49:18 +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
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
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
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
2a5ef30135 add ping worker to max 2021-05-29 00:26:53 +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
ea78c0308b add LocalSymbol field for exchange specific symbol 2021-05-27 00:05:43 +08:00
c9s
e678289577 implement okex balances endpoint 2021-05-27 00:05:43 +08:00
c9s
967c7e9f9d xbalance: add withdrawal options 2021-05-26 23:24:05 +08:00
c9s
56b2c8845b fix preorder, postorder and inorder 2021-05-22 11:36:58 +08:00
c9s
57a78777df move Time type to types.Time 2021-05-21 00:10:53 +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
c9s
e636a5008d replace Exchange field type with ExchangeName 2021-05-16 17:02:23 +08:00
c9s
f69cbe9c31 add basic TwapExecution 2021-05-14 14:53:26 +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
a70d5cbcdc fix kline sync conditions 2021-05-05 16:33:15 +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
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
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
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
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
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
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
714d61a829 add grid restore behavior 2021-03-16 20:04:06 +08:00
c9s
2f7c7d344b move emitStart method call into the stream Connect method 2021-03-16 01:32:27 +08:00
c9s
6d249cf83c bypass disconnect event 2021-03-15 17:48:16 +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
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
33213746f4 cmd: add --all option to the cancel command 2021-03-14 10:29:45 +08:00
c9s
48fe6054b0 exchange/max: fix query reward issue 2021-03-10 14:18:01 +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
3a89b0a714 improve trade sync 2021-02-18 18:20:18 +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
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
ffa001fc29 fix quantity format 2021-02-11 00:21:56 +08:00
ycdesu
565086cc2a util: extract IsError method 2021-02-08 19:07: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
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
f485c1ba7f fix grid strategy order placing 2020-12-29 18:18:32 +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
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
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
4bda1fee08 fix order id parsing 2020-11-17 12:46:55 +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
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
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
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
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
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
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
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
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
a91f851ac7 pass types.SubmitOrder by value 2020-10-13 18:08:02 +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