Commit Graph

4696 Commits

Author SHA1 Message Date
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
c9s
5c10f8a4e2 binance: call set server time service 2021-05-16 15:03:31 +08:00
c9s
fad1e39bba update state asset name for legacy caches 2021-05-16 01:22:55 +08:00
c9s
b4f6653ccc prefer PlainText interface over String interface 2021-05-16 01:21:35 +08:00
c9s
f176afee6f remove duplicated notify 2021-05-16 01:18:54 +08:00
c9s
c9cdf31df1 add pnl emoji 2021-05-16 01:16:03 +08:00
c9s
6f79a7eea8 improve support strategy messages 2021-05-16 01:07:53 +08:00
c9s
f28cc18ce4 support: check target quantity and min notional 2021-05-16 01:04:46 +08:00
c9s
9aaad2d28c add emoji icons to the messages 2021-05-16 01:03:28 +08:00
c9s
933765defb add State PlainText method test 2021-05-16 00:59:57 +08:00
c9s
2652bee83b remove arrow from the message text 2021-05-16 00:52:53 +08:00
c9s
f09e248c02 improve slack attachment title 2021-05-16 00:51:51 +08:00
c9s
16fbbd0e4b notify transfer states 2021-05-16 00:51:12 +08:00
c9s
40b5baeda7 add maxDailyAmountOfTransfer check 2021-05-16 00:50:15 +08:00
c9s
942eaac659 improve message formatting 2021-05-16 00:45:08 +08:00
c9s
8eb8a3de72 refactor state functions 2021-05-16 00:32:27 +08:00
c9s
ca10135646 translate WithdrawalRequest to slack attachment 2021-05-16 00:03:19 +08:00
c9s
e0d3b7a418 fix message formating 2021-05-15 23:55:13 +08:00
c9s
1f449eca7f implement SlackAttachment interface on Position 2021-05-15 23:50:03 +08:00
c9s
a582fdbfa7 xbalance: add jitter and notification messages 2021-05-15 10:42:16 +08:00
c9s
c85456b8e8 lock position for fetching base quantity 2021-05-15 10:06:48 +08:00
c9s
531799bdfb use mutex composition since we may lock from out side 2021-05-15 10:05:39 +08:00
c9s
8071559f99 position: use pointer receiver 2021-05-15 10:02:04 +08:00
c9s
a636cdaec9 add mutex to Position since position could be changed from 2 goroutine 2021-05-15 10:01:41 +08:00
c9s
aa340f0db3 always check restQuantity 2021-05-15 10:00:32 +08:00
c9s
638cc40516 fix notification arguments 2021-05-15 09:59:17 +08:00
c9s
236df245a2 adjust quantity bases on the balances 2021-05-15 09:46:07 +08:00
c9s
f9cb414832 twap: add update-interval option 2021-05-15 09:29:44 +08:00
c9s
ae256ce9d3 add more quantity adjustment fix 2021-05-15 09:23:41 +08:00
c9s
356a8b77ac adjust updateLimiter to 3 seconds one time 2021-05-15 09:20:46 +08:00
c9s
445feb016a support price ticks option 2021-05-14 15:35:11 +08:00
c9s
a2bcfc8630 fix bollgrid function call 2021-05-14 15:34:58 +08:00
c9s
e3cb2ad86c fix telegram arguments index update 2021-05-14 14:57:22 +08:00
c9s
abd6f4c7ef rename bbgo.AdjustQuantityByMaxAmount to bbgo.AdjustFloatQuantityByMaxAmount 2021-05-14 14:53:26 +08:00
c9s
f1fe492117 improve string format 2021-05-14 14:53:26 +08:00
c9s
66bc06bc5f add more order execution parameter checks 2021-05-14 14:53:26 +08:00
c9s
bb34b1002a improve order execution graceful shutdown 2021-05-14 14:53:26 +08:00
c9s
dc040bb82b improving logs 2021-05-14 14:53:26 +08:00
c9s
f69cbe9c31 add basic TwapExecution 2021-05-14 14:53:26 +08:00
c9s
c8b97629e0 add NumOfOrders method on active book 2021-05-14 14:53:26 +08:00
c9s
c520cfa540 xmaker: fix price calculation 2021-05-14 14:53:26 +08:00
c9s
3437515d6a rename placeOrder to submitOrder for making the api consistent 2021-05-14 14:53:26 +08:00
Yo-An Lin
2aea0dee4f Merge pull request #230 from LarryLuTW/bollgrid-enhance
bollgrid: generate the last order if balance is not enough
2021-05-14 11:51:25 +08:00
Lee
d1cef15f75 Fix: Correct the Order FILLED event on binance 2021-05-13 00:41:23 +08:00
Larry850806
4b53b3c96a bollgrid: generate the last order if balance is not enough 2021-05-12 20:45:54 +08:00
c9s
3becb32843 bump version to v1.16.0 2021-05-12 19:41:03 +08:00
c9s
a49cf531b5 fix cross exchange order executor for the basic risk control 2021-05-12 19:02:09 +08:00
Yo-An Lin
dcd66d3449 Merge pull request #235 from jessy1092/binance_parser
Fix: Correct the binance executionReport parser
2021-05-12 19:01:14 +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
Yo-An Lin
4028c39dbf Merge pull request #234 from narumiruna/fix/macd-vwap-test-case 2021-05-12 16:52:49 +08:00
なるみ
f1d88188e8 Fix test case 2021-05-12 14:39:10 +08:00
c9s
aa6520ec18 improve error messages 2021-05-12 12:54:46 +08:00
c9s
98e0390c1d improve slack notification 2021-05-12 12:43:03 +08:00
c9s
807c049d63 refactor notifiers and add liquidity field to the trade 2021-05-12 12:37:48 +08:00
c9s
85e1b6b1c7 move field assignment 2021-05-12 12:05:54 +08:00
c9s
df11112d64 refactor exchange session initialization 2021-05-12 12:05:54 +08:00
c9s
8d63647104 assign session.Withdrawal 2021-05-12 12:05:54 +08:00
c9s
29b7326f19 add withdrawal property to the exchange session 2021-05-12 12:05:54 +08:00
Yo-An Lin
ca0061856d Merge pull request #231 from zenixls2/binance_cancel 2021-05-12 09:25:34 +08:00
Yo-An Lin
3b61a16a81 Merge pull request #227 from narumiruna/feature/add-ad-indicator 2021-05-12 09:22:09 +08:00
Yo-An Lin
037f564b03 Merge pull request #226 from narumiruna/feature/add-obc-indicator 2021-05-12 09:21:27 +08:00
c9s
fd6fe56f32 implement withdrawal request on binance 2021-05-12 02:15:22 +08:00
c9s
9ff7b62123 add xbalance strategy 2021-05-12 01:21:40 +08:00
c9s
1e3e570edb add ExchangeWithdrawalService interface 2021-05-12 01:21:21 +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
f197a0fc4f improve log messages 2021-05-11 15:57:44 +08:00
c9s
9d53adc6ef xmaker: ignore self trade 2021-05-11 15:56:46 +08:00
zenix
ba091dccf6 Fix: binance's cancel update is sent through New status with 0 quantity 2021-05-11 06:57:09 +00:00
c9s
610c33b819 improve support quantity for spot session 2021-05-11 13:25:29 +08:00
c9s
15086996e4 add balance warning 2021-05-11 12:53:32 +08:00
c9s
5f8e3259eb add stopHedgeQuoteBalance and stopHedgeBaseBalance 2021-05-11 12:47:45 +08:00
c9s
d2a770bc05 adjust second layer price according to the pips 2021-05-11 01:06:39 +08:00
c9s
b86ed36aa2 calculate price by depth 2021-05-11 00:58:11 +08:00
c9s
4429a29c29 disable hedge quote adjustment 2021-05-11 00:10:49 +08:00
c9s
fa3ca54a55 improve warning messages 2021-05-10 23:52:17 +08:00
c9s
fe4e4bf5ea use bbgo.AdjustQuantityByMaxAmount 2021-05-10 23:50:19 +08:00
c9s
b16d2553b5 remove floating point 2021-05-10 23:49:25 +08:00
c9s
1f9558cd64 use local timezone 2021-05-10 23:27:08 +08:00
なるみ
7cc5485bff Add ad indicator 2021-05-10 20:39:27 +08:00
c9s
af8f718228 add more pnl details to the state 2021-05-10 20:22:33 +08:00
c9s
95d58e9385 adjust hedge quantity according to the hedge account balances 2021-05-10 20:13:23 +08:00
なるみ
f82a344964 Rename test function 2021-05-10 18:16:12 +08:00
なるみ
67f66153ab Add obv test 2021-05-10 17:46:46 +08:00
なるみ
a2d7a40147 Add obv indicator 2021-05-10 17:17:50 +08:00
c9s
c1ea9ff9ed xmaker: move cancel order calls to the go routine 2021-05-10 13:18:57 +08:00
c9s
c90871fb39 implement pending removal order ids 2021-05-10 13:06:23 +08:00
c9s
ddab6083d4 xmaker: support quantity scale 2021-05-10 02:52:41 +08:00
c9s
dde998aced fix graceful shutdown 2021-05-10 02:17:19 +08:00
c9s
405f9c863f xmaker: call cancel orders everytime 2021-05-10 01:47:17 +08:00
c9s
ce63641d70 print otp auth guide when session is loaded 2021-05-10 01:38:19 +08:00
Yo-An Lin
8a9fe7ea23 Merge pull request #221 from frankurcrazy/fix/skip-cancel-profit-order-on-graceful-exit
fix(bollgrid): skip canceling profit orders on graceful exit
2021-05-10 01:11:20 +08:00
c9s
8995300cbe use go routine to send message so that we wont be blocked 2021-05-10 00:02:08 +08:00
c9s
0307a740e3 calculate accumulatedProfit 2021-05-09 23:56:54 +08:00
c9s
a98fbeea77 reduce notify calls 2021-05-09 21:14:51 +08:00
c9s
3f8f5616d7 add more order info the local order book printing 2021-05-09 20:03:16 +08:00
c9s
2f326d0fed xmaker: add interval jitter 2021-05-09 20:03:06 +08:00
c9s
c278cdbf30 improve order sync map lock handling 2021-05-09 19:50:26 +08:00
c9s
74e01ce444 fix order waiting for graceful shutdown 2021-05-09 19:44:51 +08:00
c9s
e06310da26 print unhandled order status 2021-05-09 19:44:43 +08:00
c9s
ff90a704d9 fix fixedpoint format 2021-05-09 19:40:56 +08:00
c9s
e35eef2b72 fix message formatting 2021-05-09 19:15:37 +08:00
c9s
9525a334d2 add more fix 2021-05-09 19:04:44 +08:00
c9s
1b454be0f3 fix quote quantity label 2021-05-09 18:58:05 +08:00
c9s
b343ecad61 xmaker: add more helpful messages 2021-05-09 18:55:56 +08:00
c9s
dc282182a5 fix xmaker order cancellation in the graceful shutdown 2021-05-09 18:48:25 +08:00
c9s
569bbfea54 use new bbgo position for calculating profits 2021-05-09 18:46:09 +08:00
c9s
f44d85d704 fix QuantityMultiplier 2021-05-09 18:33:11 +08:00
c9s
c0f12cf452 xmaker: add active maker order cancellation check 2021-05-09 18:32:29 +08:00
なるみ
52248fcf2e feature: add MACD indicator (#219) 2021-05-09 00:56:44 +08:00
Frank Chang
da0ea3d390 fix(bollgrid): skip canceling profit order on graceful exit
profit orders shouldn't be canceled on graceful exit unless
properly persisted.

a new strategy parameter `shutdownCancelProfitOrders` is added.

Issue: #220
2021-05-08 15:19:04 +08:00
なるみ
3f39131d76 feature: add volume weighted average price (vwap) indicator (#211) 2021-05-08 02:09:45 +08:00
c9s
fd7081e96f bump version to v1.15.5 2021-05-08 01:11:31 +08:00
c9s
d01abffde3 add todo for the backtest trades 2021-05-08 01:09:06 +08:00
c9s
13d9f2ba49 grid: fix order generator checking 2021-05-08 01:00:57 +08:00
c9s
a94c42d9c2 grid: improve error messages 2021-05-08 00:59:30 +08:00
c9s
ee68deb114 apply limit param to the queries 2021-05-08 00:57:25 +08:00
c9s
d8d2e17b9e fix backtest exchange query klines methods 2021-05-08 00:57:12 +08:00
c9s
6bbd66a4f9 split environment start and init 2021-05-08 00:45:24 +08:00
c9s
14eedecd0e fix backtest sync from time 2021-05-08 00:44:43 +08:00
c9s
61ad2b6567 emit start callback for backtest 2021-05-08 00:43:53 +08:00
c9s
3501e8f5fd refactor backtest, add BootstrapBacktestEnvironment 2021-05-08 00:14:25 +08:00
c9s
f67075c818 bump version to v1.15.4 2021-05-07 14:08:11 +08:00
c9s
858d6bdf05 grid: adjust callback registration ordering 2021-05-07 02:14:35 +08:00
c9s
494a270c54 insert trades to db only when backtest service is nil 2021-05-07 01:50:38 +08:00
c9s
584a4c2ef8 move fiat currency definition out 2021-05-07 01:30:09 +08:00
c9s
1264c50e83 improve balances, account command usability 2021-05-06 23:50:26 +08:00
c9s
1a81813e17 add --session option check 2021-05-06 23:44:05 +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
1ad8b0b641 remove unused SourceDir func 2021-05-04 01:06:20 +08:00
c9s
0fbc388333 add --webserver-bind option and add option to --enable-webserver 2021-05-03 17:24:39 +08:00
Larry850806
f1309c46fc bollgrid: check balance before submit reverse order 2021-05-03 16:18:58 +08:00
c9s
50db944053 fix initSymbol stages 2021-05-02 23:58:34 +08:00
c9s
2230c56e56 fix comment warning 2021-05-02 23:48:53 +08:00
c9s
2ef13293e9 fix IDE warnings 2021-05-02 23:47:57 +08:00
c9s
5ec0566888 add more injection checks 2021-05-02 23:46:16 +08:00
c9s
822a010932 add moving average configuration to the schedule strategy 2021-05-02 20:58:32 +08:00
c9s
e29d9af9c8 fix persistence config unmarshalling 2021-05-02 18:16:34 +08:00
c9s
20d673f769 add schedule strategy 2021-05-02 18:03:41 +08:00
c9s
8fea2022e5 adjust rate limit for backtest data syncing 2021-05-02 17:46:08 +08:00
c9s
471e0a4c45 pass string format quantity and price 2021-04-28 19:48:17 +08:00
c9s
9f77236999 fix and improve position accessor 2021-04-28 19:32:49 +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
c9s
36beabaa0b bump version to v1.15.3 2021-04-28 18:00:23 +08:00
c9s
70a53ed286 make config compatible with key 'strategies' 2021-04-28 17:58:50 +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
zenix
2d6eb02e6c compile and update migration package 2021-04-21 11:21:15 +09:00
Larry850806
453a906a5a bollgrid: use onStart instead of onConnect 2021-04-15 15:51:23 +08:00
Larry850806
980f1ae3e7 bollgrid: submit buy/sell orders separately 2021-04-15 12:31:18 +08:00
Larry850806
aa950b3dc4 bollgrid: track createdOrders when error occurs 2021-04-15 12:31:18 +08:00
Larry850806
a80afff0c2 grid: track createdOrders when error occurs 2021-04-15 12:31:18 +08: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
c9s
2ec4617694 add SyncService check 2021-04-09 12:44:30 +08:00
c9s
34fe915a9f fix sync issue for pnl command 2021-04-09 12:43:13 +08:00
c9s
d315c12f2d call environ.Init to setup sessions 2021-04-09 00:46:36 +08:00
Yo-An Lin
435f7fb12e Merge pull request #190 from jnlin/feat/telegram-group
feat: allow telegram bot send to group
2021-04-04 11:21:20 +08:00
c9s
13a8597d59 add MaxExposurePosition settings 2021-04-04 11:14:09 +08:00
Jui-Nan Lin
1b953d88d4 feat: allow bot send to group 2021-04-03 12:50:13 +08:00
Larry850806
6718aace8c Add validation for support strategy 2021-04-02 10:32:38 +08:00
Larry850806
53133851cc Add validation for grid strategy 2021-04-02 10:32:38 +08:00
Larry850806
2c41ec28ae Add validation for bollgrid strategy 2021-04-02 10:32:34 +08:00
Larry850806
dbf5d27f30 Add a validator interface to validate strategy before run 2021-04-02 10:12:55 +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
24254a869d ftx: invoke SetPublicOnly in orderbook command 2021-03-27 17:37:16 +08:00
ycdesu
34548f185c ftx: add missing ftx case 2021-03-27 17:00:55 +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
c82df27cf3 grid: fix message format 2021-03-25 15:22:52 +08:00
c9s
13af4505f7 bump version to v1.15.2 2021-03-25 13:41:44 +08:00
c9s
129b25d86e fix persistence key 2021-03-25 13:18:38 +08:00
c9s
89c01adf60 xmaker: fix state passing for persistence 2021-03-25 13:16:48 +08:00
c9s
121a679d4a fix margin struct tag 2021-03-25 13:16:27 +08:00
c9s
8122fddd02 add exchange field to binance trades and binance orders 2021-03-24 17:51:19 +08:00
YC
80e5144950 Merge pull request #184 from c9s/ftx/add-missing-query-string 2021-03-24 16:26:33 +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
ycdesu
33046df35b ftx: list closed orders 2021-03-23 22:25:21 +08:00
ycdesu
cb52b436cb ftx: add log 2021-03-23 22:25:05 +08:00
c9s
cbd43c159f bump version 2021-03-23 21:52:42 +08:00
c9s
29f77c2176 add environ.DatabaseService nil check for backtest 2021-03-22 22:48:43 +08:00
c9s
3a842836cd bump version 2021-03-22 18:51:32 +08:00
c9s
5de221524f adjust state and reset per day 2021-03-22 18:48:18 +08:00
c9s
6c8babfb27 allow public session 2021-03-22 17:40:17 +08:00
c9s
67bfc508c8 max: remove unnecessary log 2021-03-22 17:40:00 +08:00
c9s
2b27815929 move out groupID to the maxapi package 2021-03-22 17:32:22 +08:00
c9s
706b38efa3 gap: finalize the implementation 2021-03-22 17:32:22 +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
865dda14f5 gap: accumulate fee 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
088b22f338 support bbgo-no-cache option 2021-03-22 17:32:21 +08:00
c9s
e86f29b7cc add gap strategy 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
ycdesu
c30a026243 ftx: support market cmd 2021-03-21 13:06:46 +08:00
Yo-An Lin
1293dbb64b Merge pull request #180 from c9s/strategy/xmaker
feature: add strategy xmaker
2021-03-21 13:00:00 +08:00
c9s
814a77ea39 xmaker: improve balance checking 2021-03-21 12:55:33 +08:00
c9s
2a067e5cb4 add more balance check for hedging 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
6b877e1394 add limit maker order type 2021-03-21 12:55:33 +08:00
c9s
4e3f325bb6 first commit of xmaker strategy from mobydick 2021-03-21 12:55:33 +08:00
ycdesu
04870acbab fixedpoint: get num of fractional parts 2021-03-21 12:52:45 +08:00
c9s
cf1262c1a9 update version.go 2021-03-21 10:20:00 +08:00
c9s
ca27bf100d grid: use instance id for persistence 2021-03-20 23:07:04 +08:00
c9s
ef8543db8a show accumulative arbitrage profit in the message 2021-03-20 23:05:11 +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
YC
062a008674 Merge pull request #174 from c9s/ftx/fix-placeorder-init 2021-03-19 10:35:54 +08:00
ycdesu
a7bdcdff38 fix: fix placeorder cmd 2021-03-19 10:07:39 +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
Yo-An Lin
9e596a0f63 Merge pull request #171 from c9s/feature/grid-profit-notification
strategy: calculate grid arbitrage profit per order
2021-03-18 18:19:09 +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
761d51597d add todo fee rate here 2021-03-18 17:48:05 +08:00
c9s
4975fb5498 track arbitrage orders 2021-03-18 17:20:21 +08:00
c9s
a95c3b94a0 core: set default store ID 2021-03-18 17:20:07 +08:00
c9s
0e6918a352 grid: add profit field 2021-03-18 15:46:14 +08:00
Yo-An Lin
40b376802e Merge pull request #168 from c9s/feature/mark-trade-strategy 2021-03-18 10:31:59 +08:00
Yo-An Lin
06381c250b Merge pull request #165 from Larry850806/remove-useless-code-in-balances-cmd 2021-03-18 10:31:41 +08:00
Larry850806
28f4584191 Use empty config if config file doesn't exist 2021-03-18 10:04:41 +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
85b6cb81a2 make local active orderbook json marshallable 2021-03-18 01:15:06 +08:00
c9s
8d784576cd put state vars into the state struct for persistence 2021-03-18 01:14:56 +08:00
c9s
72c1f55b70 fix grid price calculation 2021-03-18 00:46:25 +08:00
c9s
4a415a43b3 fix reward query 2021-03-18 00:46:10 +08:00
c9s
90477826cf implement byte parser for fixedpoint parsing 2021-03-17 22:20:25 +08:00
ycdesu
4a5a53ea28 ftx: support queryClosedOrders 2021-03-17 21:26:25 +08:00
Larry850806
4dc478590f Remove configuring database in balances cmd 2021-03-17 14:35:00 +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
216c12b49e backup and restore position 2021-03-16 20:07:54 +08:00
c9s
a1667010eb fix filled grid map assignment 2021-03-16 20:05:03 +08:00
c9s
714d61a829 add grid restore behavior 2021-03-16 20:04:06 +08:00
c9s
8c08cfebb7 rename MarkStrategyID to just Mark 2021-03-16 14:07:47 +08:00
Yo-An Lin
f5b65e795e Merge pull request #160 from c9s/feature/grid-options 2021-03-16 12:59:14 +08:00
c9s
ebcef65b01 mark trades with the strategy ID 2021-03-16 10:58:51 +08:00
c9s
478bef526d copy the position object and send notification 2021-03-16 02:22:00 +08:00
c9s
98995bc75c use debug log for skipping filled grid 2021-03-16 02:21:46 +08:00
c9s
f56df038aa fix position and add catchup mode for grid strategy 2021-03-16 02:18:17 +08:00
c9s
60aa7df69a adjust withdraw/deposit query limit since there are no many in most cases 2021-03-16 02:14:24 +08:00
c9s
40fded70b2 reformat scale.go 2021-03-16 02:14:10 +08:00
c9s
c5eb6483a5 integrate QueryTicker for backtesting 2021-03-16 02:13:52 +08:00
c9s
2f7c7d344b move emitStart method call into the stream Connect method 2021-03-16 01:32:27 +08:00
c9s
7951c38edc skip connection if there is no subscription 2021-03-16 01:31:56 +08:00
ycdesu
c08899f7fb ftx: add ftx to supported exchange 2021-03-15 20:40:04 +08:00
ycdesu
c88297117b ftx: new rest everytime 2021-03-15 19:02:14 +08:00
c9s
c3996aee2b add Backup method to the local active order book 2021-03-15 18:25:36 +08:00
c9s
46c59f5009 add both side and support json unmarshalling 2021-03-15 18:09:55 +08:00
c9s
2bf4a555ec use OnStart instead of OnConnect
this is for avoiding re-connect issue
2021-03-15 18:04:55 +08:00
c9s
e311a182fa add onStart callbacks 2021-03-15 18:04:03 +08:00
c9s
9f7af3ce82 assign SubAccount name to the new exchange session 2021-03-15 17:51:17 +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
7b7811bbc3 revise orderbook command options 2021-03-15 10:23:53 +08:00
c9s
b24c69729a improve orderbook print layout 2021-03-15 10:23:42 +08:00
c9s
3ffa319ba8 improve max websocket reconnecting issue 2021-03-15 10:23:20 +08:00
c9s
e8ccc5eabf pass SubAccount field to the factory 2021-03-15 10:23:00 +08:00
c9s
97d427a9ca add ftx into the standard exchange factory 2021-03-15 10:22:45 +08:00
c9s
2eda012f43 add SubAccount field to the exchange session config 2021-03-15 10:13:41 +08:00
c9s
b7da47411e split exchange interface into ExchangeMarketDataService, ExchangeTradingService 2021-03-15 10:06:02 +08:00
c9s
c788601856 add disconnect callbacks on stream 2021-03-15 09:49:22 +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
Yo-An Lin
806a32724f Merge pull request #153 from c9s/improve/balances-cmd 2021-03-14 11:51:49 +08:00
c9s
afb8105694 add reward service todo 2021-03-14 11:18:23 +08:00
c9s
38b9baf340 connect sync with deposit and withdraw services 2021-03-14 11:18:23 +08:00
c9s
54ba240317 implement deposit sync 2021-03-14 11:18:22 +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
ccbb78ce4d migration: extend tx id and address size 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
4b49fda463 refactor sync service 2021-03-14 11:18:22 +08:00
c9s
3c90aa515d add deposit service and withdraw service 2021-03-14 11:18:22 +08:00
c9s
f22a6ee697 implement sync method on the trade service 2021-03-14 11:18:22 +08:00
c9s
8fc7c4798e implement sync method on reward service 2021-03-14 11:18:22 +08:00
c9s
5a02cdbda3 implement sync method on the order service 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
ac45bb306a types: update deposit fields and withdraw fields 2021-03-14 11:18:22 +08:00
c9s
2b485602ad split ExchangeTransferService 2021-03-14 11:18:22 +08:00
c9s
b0ea2bfe14 types: add exchange name sql value and unmarshalling 2021-03-14 11:18:22 +08:00
c9s
4e9973681a add migration files 2021-03-14 10:58:26 +08:00
c9s
22a9809327 improve balances command 2021-03-14 10:35:01 +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
c3a677e2b8 ftx: rename orders cmd to listorders 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
Yo-An Lin
b58e96a8a2 Merge pull request #148 from jnlin/fix/telegram-config 2021-03-10 12:42:28 +08:00
Jui-Nan Lin
19e523c1e9 fix: typo of telegram bot auth token 2021-03-10 12:31:26 +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
cd6457f5c0 orderbook: extract String() from Print() 2021-03-04 08:55:33 +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
Larry850806
689734567a Remove unused conditions when generating orders 2021-03-03 14:55:11 +08:00
ycdesu
e34f68ab90 ftx: unmarshal all fields at the same time 2021-03-03 10:31:46 +08:00
ycdesu
081aa17deb doc: modify comment 2021-03-03 08:38:55 +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
ycdesu
a26c0553ee cmd: raise symbol not found err 2021-03-02 18:33:19 +08:00
ycdesu
6f81b0ee17 orderbook: fix IsValid logic
The original implementation always returns an error.
2021-03-02 10:33:46 +08:00
ben
40eadfeaca add yaml tag for mapping basic risk control order executor. 2021-03-01 13:44:58 +08:00
c9s
ea5554cf52 fix Makefile and update version file 2021-03-01 12:07:00 +08:00
Yo-An Lin
a52f487d4e Merge pull request #138 from c9s/feature/global-margin-structure
feature: convert and parse binance margin structure into global types
2021-02-28 16:13:48 +08:00
Yo-An Lin
592a8d87ae Merge pull request #137 from c9s/feature/scale
feature: add exp scale and log scale formula
2021-02-28 16:13:38 +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
c9s
b71ea867c5 ignore sync if sync service is nil 2021-02-28 15:05:49 +08:00
c9s
da79920ca9 rename scale struct name to PriceVolumeScale 2021-02-28 14:51:24 +08:00
c9s
83111c9eb9 test exponential scale with reverse range 2021-02-28 12:12:03 +08:00
c9s
3c9bcd8c9d add more margin order side effect alias 2021-02-28 12:00:51 +08:00
c9s
99f236d2e0 integrate quantity scale into support strategy and grid strategy 2021-02-28 11:57:25 +08:00
c9s
bf87fbbf55 add LinearScale 2021-02-28 02:20:47 +08:00
c9s
8572df2cb3 add link to TestQuadraticScale 2021-02-28 02:07:48 +08:00
c9s
83af52c53b add QuadraticScale 2021-02-28 02:06:33 +08:00
c9s
52395fd460 add log scale graph link 2021-02-28 01:55:35 +08:00
c9s
fbb8837c5c add exp scale and log scale formula 2021-02-28 01:53:45 +08:00
ycdesu
f7ef4a8028 cmd: create orderbook command to print orderbook snapshot and updates 2021-02-27 19:28:01 +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
2a0bd5f962 ws: make Reconnect() public 2021-02-27 18:42:45 +08:00
ycdesu
282ce3ee99 cmd: move simple session factory to cmd/utils.go 2021-02-27 18:42:45 +08:00
ycdesu
fd5574b006 cmd: add balances testing cmd
Only support ftx
2021-02-27 17:24:59 +08:00
ycdesu
c52f918dd4 ftx: add missing types.exchange methods 2021-02-27 17:24:08 +08:00
ycdesu
45da7ca1f5 cmd: add ftx flags 2021-02-27 17:23:59 +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
ycdesu
bf97af34f3 ws: implement base websocket client 2021-02-27 16:48:50 +08:00
c9s
03d7290e03 pull out time range group by clause generator 2021-02-26 17:22:08 +08:00
c9s
28a8ab34a2 pull out time range column name 2021-02-26 16:16:41 +08:00
c9s
02e7451ed6 bump version 2021-02-26 16:16:34 +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
854014f49a add currency position aggregation and tests 2021-02-24 10:46:42 +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
73cb80ee96 improve logging 2021-02-22 17:06:43 +08:00
c9s
21a4669905 adjust max query limiter and sync before running trader 2021-02-22 16:54:08 +08:00
c9s
e93b5a1868 add version command 2021-02-22 15:23:09 +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
724dad70bb remove trade sync from environ init 2021-02-22 14:14:39 +08:00
c9s
84775652fe remove defer wrapper func 2021-02-22 13:49:26 +08:00
c9s
cdb7ce84c8 apply rate limit 2021-02-22 13:36:39 +08:00
c9s
63ebbc0e73 fix frontend sync status checking 2021-02-21 19:36:03 +08:00
c9s
f2978fa89c pull out ping interval parameter 2021-02-21 18:58:25 +08:00
c9s
3629a1f5a2 pre-save syncing var for return 2021-02-21 18:54:48 +08:00
c9s
9ea1a22b3f wrap errors 2021-02-21 17:48:03 +08:00
c9s
a8516edb98 add Get method to the persistence service facade 2021-02-21 16:55:45 +08:00
c9s
21b092037e refactor notification configuration 2021-02-21 16:52:47 +08:00
c9s
fa4e813729 resolve cyclic imports 2021-02-21 01:01:39 +08:00
c9s
6845db6dd3 refactor database configure method 2021-02-21 00:58:34 +08:00
c9s
1763fb8904 improve the warning message 2021-02-21 00:48:26 +08:00
c9s
12ed5a1efe move persistence service into the service package 2021-02-21 00:45:56 +08:00
c9s
b7a3f2ee03 refactor telegram initialization 2021-02-20 12:33:43 +08:00
c9s
be00aae81e move trade configuration to the trader struct method 2021-02-20 12:23:31 +08:00
c9s
c72b7b2dfa add sync api for syncing trades in the background 2021-02-20 11:56:39 +08:00
c9s
7684099f01 add /api/environment/syncing api 2021-02-20 11:54:48 +08:00
c9s
4ce6e85624 add sync status to the environment 2021-02-20 11:29:33 +08:00
c9s
ff5233ba3e support: use Notfiy 2021-02-20 10:51:01 +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
44fa74a4c9 refactor session sync 2021-02-19 10:42:24 +08:00
c9s
390c9b1a4b move Sync method into the sync service 2021-02-19 10:26:13 +08:00
c9s
eaa8c647b5 refactor session sync 2021-02-18 22:40:46 +08:00
c9s
90069a8589 improve sync command to find possible trading symbols automatically 2021-02-18 22:07:54 +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
b9564690b5 fix go migration loader 2021-02-17 19:06:55 +08:00
c9s
b2bcd3528c use sqlx for testing connection 2021-02-17 17:35:54 +08:00
c9s
88f7f0f61c compile and update migration package 2021-02-17 17:35:11 +08:00
c9s
ea27a291db compile and update migration package 2021-02-17 17:28:05 +08:00
c9s
a1cb3859c3 fix db driver setup 2021-02-17 14:57:29 +08:00
c9s
e372a53835 refactor transfer history command 2021-02-17 14:43:50 +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
5f759780c3 remove unused since flag 2021-02-16 17:10:48 +08:00
c9s
3867fdde91 add stringer interface to Position 2021-02-16 16:40:11 +08:00
c9s
bc3754d989 check if limit is set 2021-02-16 16:39:56 +08:00
c9s
02512805f8 set default query trade limit to 1000 for max 2021-02-16 16:32:48 +08:00
c9s
e3d3eacb78 fix trade service injection 2021-02-16 16:30:01 +08:00
c9s
8ae4cab550 inject TradeService field if we found it 2021-02-16 16:14:49 +08:00
c9s
c75eb6b5ba pull out Persistence injection to the common injection 2021-02-16 16:13:52 +08:00
c9s
5c1630f000 refactor strategy executor 2021-02-16 16:12:00 +08:00
c9s
bf0ba89aee convert StrategyID field to NullString 2021-02-16 16:00:14 +08:00
c9s
fc4419b49b refactor injection 2021-02-16 15:58:21 +08:00
c9s
1c2646b0af add Test_injectField 2021-02-16 15:49:57 +08:00
c9s
67a3c49081 add more trade service tests 2021-02-16 15:34:01 +08:00
c9s
ebe065332c allocate sqlx db from rockhopper db 2021-02-15 21:07:55 +08:00
c9s
c219dc7be0 add test code for testing migration scripts 2021-02-15 21:04:44 +08:00
c9s
3d47b3f34d update trade fields for pnl and strategy id 2021-02-15 20:55:14 +08:00
c9s
786f37e675 add MarkStrategyID for marking trade with the source strategy 2021-02-15 20:53:19 +08:00
c9s
f3d65b1281 add UpdatePnL method for updating trade pnl field 2021-02-15 20:51:34 +08:00
c9s
8224447985 fix build tags 2021-02-15 16:21:47 +08:00
c9s
0c9ca851e5 improve support strategy 2021-02-15 01:26:46 +08:00
c9s
bea750ca97 make margin order side effect json unmarshallable 2021-02-15 01:26:23 +08:00
c9s
f8378957ee add more checks for bollgrid
related to #93
2021-02-13 16:03:31 +08:00
Yo-An Lin
de195b3c17 Merge pull request #130 from Larry850806/fix/bollgrid 2021-02-11 15:38:50 +08:00
Larry850806
ca31179b40 Fix balance calculation 2021-02-11 14:48:13 +08:00
c9s
f7ef91b55c binance: set the default ping handler 2021-02-11 08:13:50 +08:00
c9s
4a0bd45301 remove order test code 2021-02-11 00:30:37 +08:00
c9s
ffa001fc29 fix quantity format 2021-02-11 00:21:56 +08:00
c9s
88411a134b add supportAndTargets strategy 2021-02-11 00:21:06 +08:00
c9s
4b66deec3d subscribe RepostInterval as well
might be related to issue #93
2021-02-10 22:45:23 +08:00
c9s
061312771c fix float formatting 2021-02-10 22:41:42 +08:00
c9s
57435419b4 add marketData label 2021-02-10 22:40:36 +08:00
Larry850806
9f6d9028fa Use fixedpoint type to calculate the balance 2021-02-10 16:01:11 +08:00
Larry850806
6d399647cf Remove unused functions 2021-02-10 11:37:37 +08:00
Larry850806
11a176145e Refactor placeGridOrders into three functions 2021-02-10 11:37:33 +08:00
Larry850806
d22a8e9c63 Improve bollgrid strategy's balance check and quote calculation 2021-02-10 10:11:32 +08:00
YC
776cd95955 Merge pull request #128 from c9s/ftx/balance 2021-02-09 19:49:38 +08:00
Yo-An Lin
bb394c8d38 Merge pull request #124 from ychi/feat/calculate-asset-with-ticker
feat/calculate asset with ticker
2021-02-09 17:49:22 +08:00
Yo-An Lin
5b06c47b2a Merge pull request #125 from c9s/fix/grid 2021-02-09 12:02:04 +08:00
ycchen
2b285c0202 fix: remove unused 2021-02-08 22:43:20 +01:00
ycchen
6655e16889 minor tweaks 2021-02-08 22:41:44 +01:00
ycchen
61c98432f2 feat: tickers for asset calculation 2021-02-08 22:41:44 +01: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
8663704d6e util: create IsJSON/IsHTML type helper 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
c9s
72044a63fd remove query trades default limit 200 2021-02-08 13:40:47 +08:00
c9s
ffb6a29d0d fix startPrice value conversion 2021-02-08 13:21:22 +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
c9s
173074f5e4 improve grid strategy's balance check and quote calculation 2021-02-07 11:37:24 +08:00
c9s
367e9fcae1 fix price range check 2021-02-07 10:58:31 +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
Yo-An Lin
a738bffc07 Merge pull request #112 from jnlin/fix/pnl-amount 2021-02-06 18:26:04 +08:00
Yo-An Lin
b81eb33cad Merge pull request #117 from c9s/wizard/sqlite3
add sqlite3 driver option to the wizard user interface
2021-02-06 17:41:45 +08:00
Jui-Nan Lin
b38b65ce83 fix(pnl): do not calculate the "self" trade 2021-02-06 17:34:13 +08:00
Jui-Nan Lin
30f085fa91 fix(max): IsBuyer should check side "buy" and "bid" 2021-02-06 17:30:18 +08:00
Jui-Nan Lin
7e1825d991 Merge branch 'main' into fix/pnl-amount 2021-02-06 17:22:43 +08:00
c9s
d0c967af55 use fake asset data for the asset query 2021-02-06 16:38:00 +08:00
c9s
8e0778a095 fix trading volume query for sqlite3 2021-02-06 16:05:21 +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
62145d02f3 move dotenv loading to the root command 2021-02-06 15:03:07 +08:00
c9s
855378e098 add driver field to the setup db route 2021-02-06 14:31:46 +08:00
c9s
26f9e5488d apply datatype.Time to order time fields 2021-02-06 14:30:00 +08:00
c9s
20e6e4c299 add MarshalJSON and UnmarshalJSON to datatype.Time 2021-02-06 14:25:38 +08:00
c9s
3abdb3dd7b convert time struct for sqlite driver 2021-02-06 12:32:21 +08:00
Yo-An Lin
5a5e64cc8d Merge pull request #111 from c9s/feature/sqlite3
add sqlite3 migration support
2021-02-06 11:52:03 +08:00
c9s
32117af4b0 service: remove the ignore keyword to make the sql compatible with sqlite3 2021-02-06 11:44:49 +08:00
c9s
0b657d59f9 make inBaseAsset as private method 2021-02-06 11:34:53 +08:00
c9s
dd9dbee903 refactor database configuration with env vars 2021-02-06 11:33:49 +08:00
c9s
99b56003eb clean up legacy db connection handling with the new database service 2021-02-06 11:22:04 +08:00
c9s
276b6c1e48 drop the legacy upgradeDB 2021-02-06 11:22:04 +08:00
c9s
c7440a3ea4 compile and update migration package 2021-02-06 11:22:04 +08:00
c9s
de51eb29e4 refactor db stuff with database service 2021-02-06 11:22:04 +08:00
ycdesu
06eacf70a2 util: test Response struct 2021-02-05 22:38:45 +08:00
ycdesu
f44d6a323a http: move response helper to util 2021-02-05 22:31:40 +08:00
Yo-An Lin
8c72e2290e Merge pull request #110 from jnlin/options_orderlimit 2021-02-05 19:30:41 +08:00
Jui-Nan Lin
c9f3b6fc1a fix(pnl): checking the side of trade, not taker or maker 2021-02-05 14:52:38 +08:00
Jui-Nan Lin
b6da7ee2f2 fix(pnl): should be trades 2021-02-05 14:49:42 +08:00
c9s
ea0c20cfe7 rename enableApiServer to enableWebServer 2021-02-05 13:04:52 +08:00
c9s
0803d6bae0 add BeforeRestart hook 2021-02-05 13:01:07 +08:00
Jui-Nan Lin
8eb8fb105d test: fix query trading test 2021-02-05 12:42:59 +08:00
Jui-Nan Lin
893b513605 feat: add limit option for pnl command 2021-02-05 10:12:10 +08:00
c9s
10f8a7864f fix side bar layout 2021-02-05 09:09:59 +08:00
c9s
bd895149ad if dotenv file does not exist, do not load it 2021-02-04 20:34:31 +08:00
c9s
621321f5db add basic desktop app 2021-02-04 20:34:31 +08:00
c9s
0cb2a3c452 split files to make routes smaller 2021-02-04 16:59:00 +08:00
c9s
5f84c847c1 move setupRestart 2021-02-04 16:54:24 +08:00
c9s
e1b4ff3450 move setup handlers to setup.go 2021-02-04 16:51:53 +08:00
c9s
c12161ff1c pull out listSessionSymbols 2021-02-04 16:49:47 +08:00
c9s
3dfc75591a Add RunWithListener method to server 2021-02-04 16:47:53 +08:00
c9s
c1b2114dd2 refactor server routes 2021-02-04 16:44:14 +08:00
c9s
2791da3ec4 fix empty session issue 2021-02-04 15:19:40 +08:00
c9s
d8d1249293 fix env var prefix by using os.Getenv directly 2021-02-04 15:14:54 +08:00
c9s
e6b0a0c595 implement server shutdown goroutine 2021-02-04 14:44:48 +08:00
c9s
e257f6e8f6 pull out pingUntil function 2021-02-04 14:29:15 +08:00
c9s
f2686d02b0 refactor ping handler 2021-02-04 14:00:41 +08:00
c9s
42e5c88a2f refactor more setup route handlers 2021-02-04 13:59:26 +08:00
c9s
f74ebd48e2 refactor setup routes 2021-02-04 13:56:36 +08:00
c9s
7c6fce076f use ping try the api server 2021-02-04 13:48:21 +08:00
c9s
6db1924f87 add setup struct for setup mode options 2021-02-04 13:29:43 +08:00
c9s
7b7bcf56c9 add PUT and DELETE methods 2021-02-04 13:23:05 +08:00
c9s
f21b7f06d7 update static files and fix page routes 2021-02-03 18:54:35 +08:00
c9s
b3aa7e7511 add darwin os check 2021-02-03 18:54:34 +08:00
YC
d821d2ef95 Merge pull request #103 from ycdesu/minor/order/tests 2021-02-03 18:52:11 +08:00
YC
cc146faae2 Merge pull request #101 from ycdesu/minor/trade/tests
minor: extract SQL generator function of trades table
2021-02-03 18:32:25 +08:00
ycdesu
72b1877e4a order: extract query order sql generator 2021-02-03 18:31:32 +08:00
c9s
c73e5f00f3 refactor server routes 2021-02-03 18:09:33 +08:00
c9s
bf8508d4fb update description 2021-02-03 17:41:48 +08:00
c9s
4e31c7f68a change default config path to just bbgo.yaml 2021-02-03 17:39:53 +08:00
c9s
9096b6425e move instructions sequence 2021-02-03 17:29:51 +08:00
c9s
c35cef5b09 implement config saving api 2021-02-03 17:27:18 +08:00
ycdesu
220da92f48 trade: extract sql generator function and test it 2021-02-03 16:51:02 +08:00
ycdesu
1522c3d7a6 trade: create a separate sql gen function 2021-02-03 15:44:02 +08:00
c9s
f7a4f7d415 add strategies endpoint and strategy review page 2021-02-03 15:00:01 +08:00
c9s
705edc38c0 implement config yaml dummper 2021-02-03 09:58:31 +08:00
c9s
098a966813 add test case for config.Map method 2021-02-03 09:34:53 +08:00
c9s
1a2c3556a8 add ID method to the TestStrategy 2021-02-03 09:09:19 +08:00
c9s
7904c6f4d0 add ID() to Strategy interface 2021-02-03 09:08:05 +08:00
c9s
8aa96c4546 integrate strateg adding api 2021-02-03 02:26:41 +08:00
c9s
578451bb51 add setup flag to run server 2021-02-02 18:17:58 +08:00
c9s
d458519ba5 add setup flag 2021-02-02 18:17:39 +08:00
c9s
17d5e301dc refine setup steps 2021-02-02 17:26:35 +08:00
c9s
73762d9888 support exchange session test from the setup wizard 2021-02-02 11:44:07 +08:00
c9s
06f648448b pull out wrapper runner 2021-02-01 20:44:15 +08:00
c9s
eebb568b0c add dotenv string flag for changing dotenv filename 2021-02-01 20:44:15 +08:00
c9s
0a29ee99b8 call godotenv.Load to load env vars 2021-02-01 20:44:15 +08:00
c9s
a60aeb4771 pull out .Subscribe from trader.Run 2021-02-01 20:44:15 +08:00
c9s
ddcc8ae4ee move ExchangeOrderExecutor into exchange session 2021-02-01 20:44:15 +08:00
c9s
de8e717a41 refactor session initialization function 2021-02-01 20:44:15 +08:00
c9s
6912f77c72 fix lock issue 2021-02-01 18:55:47 +08:00
c9s
a926ee1e37 rename --enable-api-server to --enable-web-server 2021-01-29 19:31:52 +08:00
c9s
fbbe304dfb add trades query api 2021-01-29 18:48:00 +08:00
c9s
cc8133a90e print order query sql 2021-01-29 18:34:03 +08:00
c9s
72037d6c14 update migration package 2021-01-29 18:28:23 +08:00
c9s
b8d7ae7687 add AggOrder for market orders 2021-01-29 17:52:13 +08:00
c9s
32645f228b add order query api 2021-01-29 13:15:44 +08:00
c9s
be750b94df fix layout and margin 2021-01-29 12:55:11 +08:00
c9s
8031c6066e mount static files to routes 2021-01-29 11:19:37 +08:00
c9s
78890834b5 support symbol segment 2021-01-28 18:51:35 +08:00
c9s
9ee49ea3f1 Add TradingVolumeBar 2021-01-26 18:10:08 +08:00
c9s
95129e94d7 add lastPrcieUpdatedAt timestamp for checking last price cache 2021-01-26 17:23:40 +08:00
c9s
df17c4b1b6 add trading volume query api 2021-01-26 17:21:18 +08:00
c9s
9717fddfbd add total asset pie chart 2021-01-25 16:56:02 +08:00
c9s
e47357d1ed add assets api and price loading 2021-01-25 15:32:17 +08:00
c9s
09b3046feb lower case fields are not exported to json 2021-01-25 14:32:46 +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
ca71c81284 improve slice copying 2021-01-25 14:20:56 +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
7310700540 add account and account balances 2021-01-24 20:18:04 +08:00
c9s
eab915abc7 rename loaded-symbols to just symbols 2021-01-24 20:14:43 +08:00
c9s
3a52a4bff8 add and set AddOrderUpdate flag for session order store 2021-01-24 20:13:05 +08:00
c9s
e2de3040bd adjust ping ticker to 10seconds 2021-01-24 19:08:33 +08:00
c9s
42b66d6898 add OrderStore accessor on ExchangeSession 2021-01-24 19:08:12 +08:00
c9s
9040f6ff0d add --enable-api-server flag 2021-01-24 19:07:56 +08:00
c9s
447057086c add Orders method on OrderStore 2021-01-24 19:07:32 +08:00
c9s
eccc2c6e0f implement session config api and server 2021-01-24 18:42:36 +08:00
c9s
7632638982 log depth api error 2021-01-24 16:54:13 +08:00
c9s
51e5deee47 add frontend files 2021-01-24 14:14:25 +08:00
c9s
1892d03326 make session trades map thread safe 2021-01-24 14:14:25 +08:00
c9s
1c80d30ce2 add TradeSlice with sync 2021-01-24 14:14:25 +08:00
c9s
84b6982033 add order store to exchange session 2021-01-24 14:14:25 +08:00
c9s
568250f4bb define api routes 2021-01-24 14:14:25 +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
b5f2c325a4 add group id field 2021-01-23 17:07:05 +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
d0fc161ae7 fix define build config checking 2021-01-23 01:06:56 +08:00
c9s
2da5fa2e92 pre-define build config 2021-01-23 01:03:56 +08:00
c9s
cc3e9f42aa cmd: fix build nil check 2021-01-23 01:01:36 +08:00
c9s
fa8198b8b9 remove unnecessary logs 2021-01-21 12:28:47 +08:00
c9s
93ae65535d remove os and arch flags 2021-01-21 12:27:55 +08:00
c9s
5eaa8f0778 add IsWrapperBinary flag and fix persistence error 2021-01-21 12:27:21 +08:00
c9s
503df57e72 remove legacy cmd flags 2021-01-21 12:10:06 +08:00
c9s
45876968d9 let build config and legacy imports co-exists 2021-01-21 12:08:06 +08:00
c9s
5329ef8f25 refactor build config 2021-01-21 12:06:03 +08:00
c9s
26c128b3ab adjust rate limiter 2021-01-21 01:21:30 +08:00
c9s
e869e04092 use rate limiter for batch query 2021-01-21 01:02:43 +08:00
c9s
a73729fb17 split files for batch processor and margin settings 2021-01-21 00:58:02 +08:00
c9s
ad4f339b27 fix test case name 2021-01-21 00:54:59 +08:00
c9s
38bac10050 consider fee calculation 2021-01-21 00:49:01 +08:00
c9s
bfc8e511d0 simplify average cost calculation 2021-01-20 23:46:22 +08:00
c9s
16aa070120 assign base/quote currency to the position struct 2021-01-20 23:08:57 +08:00
c9s
8a08c406c3 check symbol for the position update 2021-01-20 17:37:23 +08:00
c9s
48dd697ce3 handling short-to-long and long-to-short position 2021-01-20 17:35:58 +08:00
c9s
c2a27b031e init position with loaded symbols 2021-01-20 16:30:44 +08:00
c9s
0051dbc78a add Position accessor 2021-01-20 16:29:15 +08:00
c9s
079fcf08e3 initialize position map 2021-01-20 16:28:27 +08:00
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
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
573a082391 add flashcrash strategy 2020-11-07 12:02:15 +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
f78fefb3b0 implement QueryCh on kline service 2020-11-06 20:58:45 +08:00
c9s
78d7c71ecc add kline service and extend kline struct fields 2020-11-06 19:07:07 +08:00
c9s
c9f2a1aed5 add db tag to kline struct 2020-11-06 11:08:31 +08:00
c9s
5bdf5e0034 remove goroutine from the strategy 2020-11-06 11:01:19 +08:00
c9s
b86b74effb fix max kline parsing 2020-11-05 15:04:56 +08:00
c9s
c54c0788ab rewrite grid strategy trigger 2020-11-05 14:27:22 +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
8693bbbd24 fix orderId-based query for binance 2020-11-05 11:14:14 +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
eb67fc0f8f make mysql-url optional for run command 2020-11-05 11:14:14 +08:00
c9s
f223940b69 add db tags 2020-11-05 11:14:14 +08:00
c9s
8388f443a9 move active order book to the bbgo package 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
1eb263de23 use AnyFilled to simplify the order management in the strategy 2020-10-31 20:38:20 +08:00
c9s
e264257d23 implement OrderMap and SyncOrderMap 2020-10-31 20:38:20 +08:00
c9s
2397acd45f fix type casting and assertion by passing pointer 2020-10-31 18:35:48 +08:00
c9s
0f8e9f6df7 add doc comment to Notifiability 2020-10-31 18:35:48 +08:00
c9s
eb05620f99 use Notifiability directly from environment 2020-10-31 18:35:48 +08:00
c9s
49ff9c4dd6 drop legacy trade reporter 2020-10-31 18:35:48 +08:00
c9s
c4d7476212 add submit order routing 2020-10-31 18:35:48 +08:00
c9s
ec9b5230aa refactor trade report and move trade reporter to the environment layer 2020-10-31 18:35:48 +08:00
c9s
8867ceb951 initialize Notifiability for exchange session 2020-10-31 18:35:48 +08:00
c9s
a60207db2a only re-submit the order when the order is filled on the opposite side 2020-10-31 18:33:04 +08:00
c9s
8174b64e21 handle max order update message convertion 2020-10-31 18:29:58 +08:00
c9s
458fa8aa9d add types.OrderStatusFilled 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
dc547aa818 fix BOLL map allocation 2020-10-31 18:29:58 +08:00
c9s
01699f7268 fix price format 2020-10-31 18:29:58 +08:00
c9s
17a2f74add finalize grid strategy 2020-10-31 18:29:58 +08:00
c9s
9c46ef17b2 handle order update 2020-10-31 18:29:58 +08:00
c9s
551fa4b7fb add grid to built-ins 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
74a9cae38e rename trade callbacks to trade update callbacks 2020-10-31 18:29:58 +08:00
c9s
224acd0ca9 add accessors for last up band and down band values 2020-10-31 18:29:58 +08:00
c9s
e60127090b add GetBOLL access to standard indicator sets 2020-10-31 18:29:58 +08:00
c9s
d49b2be543 add bollinger indicator 2020-10-29 17:51:20 +08:00
c9s
f0681177f9 inject market into the skeleton strategy 2020-10-29 17:06:34 +08:00
c9s
4afabd92ed clean up code 2020-10-29 17:05:01 +08:00
c9s
b0cc128b79 pull out trend types 2020-10-29 17:03:36 +08:00
c9s
a7325e86f0 document swing strategy 2020-10-29 13:42:53 +08:00
c9s
5f45d18ae2 fix struct composition 2020-10-29 13:08:33 +08:00
c9s
19b600bb35 simplify strategy registration api 2020-10-29 07:54:59 +08:00
c9s
c71f013916 let SMA indicator and EWMA indicator use IntervalWindow type 2020-10-29 07:51:23 +08:00
c9s
2f8bffeaca add strict injection check fo pointer only objects 2020-10-29 07:49:06 +08:00
c9s
33257c591e refactor swing strategy with types IntervalWindow 2020-10-29 07:44:22 +08:00
c9s
6d8ec7894e refactor standard indicator set with store 2020-10-29 07:40:02 +08:00
c9s
b1cf9db879 add reflink 2020-10-28 17:50:47 +08:00
c9s
d6553a1155 move strategy subscribe out 2020-10-28 17:49:49 +08:00
c9s
f4474c6a6d add check for sma caluclation 2020-10-28 17:48:16 +08:00
c9s
67446670ac finalize swing strategy and fix trade reporter issue 2020-10-28 17:48:16 +08:00
c9s
c96845ff6a add fields to slack notifier logs 2020-10-28 17:48:16 +08:00
c9s
b22e0370b3 drop legacy OrderProcessor and remove slack debug 2020-10-28 17:48:16 +08:00
c9s
468864302e fix submit order quantity formatting 2020-10-28 17:48:16 +08:00
c9s
2680ad5072 refactor environment, market data store, injection and add swing strategy 2020-10-28 17:48:16 +08:00
c9s
7d7d2c2fc7 assign standard indicator set to the session 2020-10-28 11:15:50 +08:00
c9s
e2df24f31c support standard indicatorset 2020-10-28 09:43:19 +08:00
c9s
50693ae845 implement ewma and sma 2020-10-28 09:13:57 +08:00
c9s
388346b284 move injectStrategyField to a single file 2020-10-27 20:42:48 +08:00
c9s
008e5c83f9 fix notification config check 2020-10-27 20:41:08 +08:00
c9s
e1c2f7cc3d improve notifier signatures and fix slack Notify method 2020-10-27 20:13:10 +08:00
c9s
7905ba09d4 pull out fillStrategyNotifiability 2020-10-27 19:37:11 +08:00
c9s
ccc381143d support pointer type filling 2020-10-27 19:33:11 +08:00
Yo-An Lin
1e5327a5e4 Update strategy.go 2020-10-27 15:51:36 +08:00
c9s
b3eaf832af Add pricealert strategy for demonstrating notification 2020-10-27 13:54:39 +08:00
c9s
ab43de3efd clean up comment for base order executor 2020-10-27 10:00:41 +08:00
c9s
ef598c3a0f assign base order executor descendingly 2020-10-27 09:58:21 +08:00
c9s
8453e95300 configure channel routers 2020-10-27 09:38:29 +08:00
c9s
42f947506c add route methods on Notifiability 2020-10-27 09:24:59 +08:00
c9s
ea05d998f2 load notification conf 2020-10-27 08:57:00 +08:00
c9s
c315b79bd7 add notification config 2020-10-27 08:48:47 +08:00
c9s
284a0676f7 remove unused confg package 2020-10-27 08:19:16 +08:00
c9s
955479486a add symbol channel router and object channel router for notification 2020-10-27 08:19:16 +08:00
c9s
1d8e0bff5a drop legacy NewDefaultEnvironment method 2020-10-27 08:19:16 +08:00
c9s
0fd9e8b95a reset price field when market order is used 2020-10-26 22:08:16 +08:00
c9s
085d02bee4 clean up strategy code since we can loaded from the config 2020-10-26 22:04:48 +08:00
c9s
38c87bfecc drop config dir 2020-10-26 21:46:38 +08:00
c9s
a1eeb55778 refactor and clean up bbgo config 2020-10-26 21:45:02 +08:00
c9s
c324a791f6 refactor and configure risk control order executor 2020-10-26 21:36:47 +08:00
c9s
59aa5c5ee2 implement RiskControlOrderExecutor 2020-10-26 18:28:34 +08:00
c9s
4e7c1a327b pull out order formatter 2020-10-26 18:17:18 +08:00
c9s
a4b6a5f923 load order executor config 2020-10-26 17:57:28 +08:00
c9s
502e5bdc04 load exchange sessions dynamically 2020-10-26 17:00:17 +08:00
c9s
8274f6e97c reformat OrderProcessor code 2020-10-26 16:45:09 +08:00
c9s
c9fa565c24 remove the legacy submit order method 2020-10-26 16:44:05 +08:00
c9s
359b3c56b4 move files 2020-10-26 16:15:30 +08:00
c9s
19f259111d improve config loading by adding unmarshal yaml method 2020-10-26 15:33:25 +08:00
c9s
cd666fdf9e pull out db parameter from the constructor 2020-10-26 15:06:39 +08:00
c9s
3aa40f3aab disable viper config for now 2020-10-26 13:56:48 +08:00
c9s
332ca7ffe8 make trade sync optional 2020-10-26 13:48:59 +08:00
c9s
931c646fde configure notifier and make slack notification optional 2020-10-26 13:40:43 +08:00
c9s
ac0a26b005 add build command 2020-10-26 13:27:07 +08:00
c9s
9017d2a9a7 add go os and arch name to the binary name 2020-10-26 11:41:21 +08:00
c9s
aa6ccbf905 refactor xpuremaker strategy 2020-10-26 10:08:58 +08:00
c9s
fbba9b12ce xpuremaker: final clean up 2020-10-26 10:01:18 +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
1e12de28da Add xpuremaker skeleton 2020-10-25 18:32:46 +08:00
c9s
3721714f00 Support json unmarshaller for fixedpoint 2020-10-25 18:32:45 +08:00
c9s
944b673626 Add skeleton strategy 2020-10-25 18:32:43 +08:00
Yo-An Lin
9f416579ec Merge pull request #25 from c9s/feature/go-compile-os-arch
feature: support go build with custom os and arch
2020-10-24 17:45:03 +08:00
c9s
916b3b0eca early return if len of trades == 0 2020-10-24 16:32:54 +08:00
c9s
81653c6451 improve compile function for goos and goarch 2020-10-24 16:29:58 +08:00
c9s
2535a5803e alias logrus into log 2020-10-24 15:43:55 +08:00
c9s
9ce9ecc910 compile local strategies into the wrapper binary 2020-10-24 15:38:13 +08:00
c9s
cd28fb8771 unmarshal imports into config 2020-10-23 14:49:54 +08:00
c9s
e1e8a16f97 rename Run to Execute to avoid confusion 2020-10-23 14:38:24 +08:00
c9s
bcc97c1906 cmd: rename slack-trading-channel to slack-channel 2020-10-23 14:29:02 +08:00
c9s
048374566c move commands into pkg/cmd 2020-10-23 14:28:07 +08:00
c9s
0ec57cf404 add import section 2020-10-23 14:14:07 +08:00
c9s
407db84689 check runtime registered strategies 2020-10-23 14:13:16 +08:00
c9s
6e033461bb use the time of the first trade as the report start time 2020-10-23 14:09:05 +08:00
c9s
c9f5d51556 confgi: fix []interface parsing issue 2020-10-23 14:01:45 +08:00
c9s
9127913370 improve parsing for one or more string slice 2020-10-23 13:50:17 +08:00
c9s
6b0f2b80d7 add multiple spec support 2020-10-23 00:21:03 +08:00
c9s
9c751f377a import buyandhold strategy 2020-10-22 16:04:37 +08:00
c9s
aea6a7c03d integrate AverageCostPnLReporter 2020-10-22 15:57:50 +08:00
c9s
897d882c35 update Notifiability interface 2020-10-22 14:45:15 +08:00
c9s
ea3e9e7d05 add per-session-based trade reporter 2020-10-22 10:54:03 +08:00
c9s
678e4ef4ab add trade reporter 2020-10-22 10:47:54 +08:00
c9s
a714af739a implement TradeReporter 2020-10-21 19:52:55 +08:00
c9s
b1a9a66dba assign account and stream when allocating session object 2020-10-21 17:42:37 +08:00
c9s
1f71fa623c add channel argument to the notify method 2020-10-21 17:10:47 +08:00
c9s
58265d14f9 move cmdutil package 2020-10-21 15:58:58 +08:00
c9s
81f2cb4ac4 support loading cross exchange strategies 2020-10-21 15:49:43 +08:00
c9s
606c59ad4d connecting strategies with session name 2020-10-20 15:54:32 +08:00
c9s
324a493aad improve config loader 2020-10-20 15:42:57 +08:00
c9s
4ee10de40f add LoadedCrossExchangeStrategies loader api 2020-10-20 14:21:46 +08:00
c9s
f4066b18b3 wrap error to make the message clear 2020-10-20 14:15:12 +08:00
c9s
8cc5db7506 add baseQuantity 2020-10-20 14:14:21 +08:00
c9s
2fbf19455e implement strategy yaml loader 2020-10-20 13:52:25 +08:00
c9s
a08aebaa17 bbgo: add SetTradeScanTime method 2020-10-20 13:11:04 +08:00
c9s
3b3df77ec3 clean up the legacy context struct 2020-10-20 12:24:30 +08:00
c9s
752fdf5c80 document WithCache function 2020-10-20 12:22:18 +08:00
c9s
2bbee6671a make the first arg of WithCache as a key var 2020-10-20 12:18:29 +08:00
c9s
40c697275d query market config with cache 2020-10-20 12:11:44 +08:00
c9s
180bfff558 loadedSymbols is not used in the init method 2020-10-20 11:49:18 +08:00
c9s
f6c1ed67e6 add CacheDir function 2020-10-20 11:48:44 +08:00
c9s
f62f3b8a02 define HomeDir and SourceDir helper functions 2020-10-20 11:46:44 +08:00
c9s
fc687f3174 max: implement kline event parser for websocket 2020-10-19 22:46:34 +08:00
c9s
d68564de28 improve logging 2020-10-19 22:26:43 +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
292dd2492a add comment for loadedSymbols 2020-10-19 22:02:05 +08:00
c9s
a4b872fc8b clean up init and connect phase 2020-10-19 22:00:44 +08:00
c9s
6d6e79eab3 fix session initialization issue 2020-10-19 21:58:50 +08:00
c9s
b0b1d2bd49 max: fix currency conversion 2020-10-19 21:33:21 +08:00
c9s
c4490a119c send order book to the update handler 2020-10-19 11:44:15 +08:00
c9s
50c6a675dd add doc comment to StreamOrderBook 2020-10-19 10:44:11 +08:00
c9s
68279757fa add kline accessor KLinesOfInterval 2020-10-18 20:44:12 +08:00
c9s
c1590786e8 integrate orderbook updates to market data store 2020-10-18 20:44:12 +08:00
c9s
75115774f6 rename kline store to market data store back 2020-10-18 20:44:12 +08:00
c9s
b7a450327c rename files 2020-10-18 12:33:51 +08:00
c9s
f9940a9c2f rename market data store to kline store 2020-10-18 12:32:43 +08:00
c9s
f826bb014a make markets field private 2020-10-18 12:30:13 +08:00
c9s
dab264a4ad add more accessors to exchange session, so that we can make it as an interface 2020-10-18 12:29:38 +08:00
c9s
168cb355fc add accessor to MarketDataStore 2020-10-18 12:27:11 +08:00
c9s
7d7828a556 move commented code 2020-10-18 12:25:08 +08:00
c9s
d2ba9cc4c3 move backtest related component to backtest package 2020-10-18 12:24:21 +08:00
c9s
028aef9402 move marketdata store to store package 2020-10-18 12:23:00 +08:00
c9s
90515855eb move MovingAverageIndicator 2020-10-18 11:37:01 +08:00
c9s
a1c027471e remove more empty files 2020-10-18 11:35:40 +08:00
c9s
d011bf275e move stock_test file and testdata 2020-10-18 11:34:36 +08:00
c9s
cbeb809b22 delete empty pnl file 2020-10-18 11:33:58 +08:00
c9s
c878de10bf delete empty market.go file 2020-10-18 11:33:43 +08:00
c9s
0d9c0bd51b move cost distribution to the accounting package 2020-10-18 11:33:13 +08:00
c9s
985e02c57a delete empty file 2020-10-18 11:31:44 +08:00
c9s
73e17730d7 move account type into types package 2020-10-18 11:30:37 +08:00
MengZn
3bbf15bb7e fix misspell 2020-10-18 00:36:52 +08:00
c9s
fe1a25d735 max: add resolution to the subscription 2020-10-18 00:09:37 +08:00
c9s
c224eb7af7 add kline to the market data store 2020-10-18 00:06:08 +08:00
c9s
530da665d3 fix max newAuthenticatedRequest for nil data 2020-10-18 00:05:54 +08:00
c9s
9ebccc72ba add exchange session constructor 2020-10-17 23:51:44 +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
25b4b22077 let strategy attach could be chained 2020-10-16 13:52:18 +08:00
c9s
4335cca0de make it possible to attach multiple strategies in one call 2020-10-16 10:26:45 +08:00
c9s
27b582e948 move report struct 2020-10-16 10:21:37 +08:00
c9s
63ea81b648 simplify the calculator api 2020-10-16 10:19:53 +08:00
c9s
a6b99f6828 rename ProfitAndLossCalculator to AverageCostCalculator 2020-10-16 10:16:42 +08:00
c9s
ee86a71ebb split files 2020-10-16 10:14:36 +08:00
c9s
98192ae91f move Cmd to the strategy package 2020-10-16 10:09:42 +08:00
LeoZhan
c501fda4e2 refactor: remove redundant filename extension 2020-10-16 00:49:46 +08:00
c9s
7482fa52d6 add error check and logger 2020-10-15 23:38:00 +08:00
c9s
300609e3db fix subscription initialization 2020-10-15 22:36:22 +08:00
c9s
113cc8ee48 query markets and assign into the exchange session 2020-10-15 21:04:02 +08:00
c9s
c167b2f303 add query markets to the exchagne interface 2020-10-14 11:02:50 +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
6d00a7ba07 fix import 2020-10-14 10:39:50 +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
f454136449 add exechange order executor and pull out Notifiability 2020-10-14 10:06:15 +08:00
c9s
a91f851ac7 pass types.SubmitOrder by value 2020-10-13 18:08:02 +08:00
c9s
ec23266cc2 implement buyandhold strategy to test the api design 2020-10-13 16:17:07 +08:00
c9s
d1b618850d add context parameter to the strategy method 2020-10-13 14:50:59 +08:00
c9s
fe3ae14fc8 clean up 2020-10-13 11:23:22 +08:00
c9s
26f97b43e8 drop legacy backtest trader 2020-10-12 22:51:13 +08:00
c9s
4c20c9f4ff replace LoadAccount with literal constructor 2020-10-12 22:49:27 +08:00
c9s
6398f049d0 bind market data store and query avg price before we start 2020-10-12 22:46:06 +08:00
c9s
bace7ac3a3 add environment connect integration tests 2020-10-12 17:33: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
64c9960882 use types.Exchange 2020-10-12 07:38:38 +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