Commit Graph

659 Commits

Author SHA1 Message Date
c9s
5bef7d8a1e interact: use interaction singleton 2022-01-14 13:31:31 +08:00
c9s
dd93ee4fd3 move methods to telegramnotifier 2022-01-14 13:31:31 +08:00
c9s
43317bb647 add state and telegram example 2022-01-13 11:43:33 +08:00
c9s
ccaa8c5c86 bbgo: implement parseCommand 2022-01-13 11:43:33 +08:00
c9s
7053802041 basic interaction parser 2022-01-13 11:43:33 +08:00
c9s
6ee831e678 add trade logger 2022-01-12 11:19:41 +08:00
c9s
e5b4af53e6 all: clean up SubmitOrder fields 2022-01-11 01:36:19 +08:00
c9s
48cbb7fff6 bbgo: check order side and log error 2022-01-10 17:26:14 +08:00
c9s
d57f8fedfe bbgo: fix active book order removal 2022-01-10 12:29:19 +08:00
c9s
d94cc2df31 bbgo: add recover callbacks to trace collector 2022-01-09 15:39:59 +08:00
c9s
0cec652f38 bollmaker: skip submitOrder calls if submitOrders is empty 2022-01-09 02:35:12 +08:00
c9s
7e2acdc416 all: add lock protected GetBase method for Position 2022-01-09 00:35:45 +08:00
c9s
d1420e66be fix TestTradeCollector_ShouldNotCountDuplicatedTrade 2022-01-08 02:20:30 +08:00
c9s
e0b906a88b bbgo: fix processTrade 2022-01-07 16:53:11 +08:00
c9s
a5fb408a16 twap: refactor and call activeMakerOrders.GracefulCancel 2022-01-07 01:34:23 +08:00
c9s
e312ec953c bbgo: rename test case 2022-01-07 01:23:54 +08:00
c9s
d63cc42867 bbgo: add trade collector test 2022-01-07 01:17:07 +08:00
c9s
a49d001c29 xmaker: add trade scanner 2022-01-07 01:03:12 +08:00
c9s
69ae3259ff bbgo: mark trade as done in the trade collector for preventing duplicated trade 2022-01-07 00:28:12 +08:00
c9s
259771b0b0 all: pull out the graceful cancel process to the local active book 2022-01-07 00:10:40 +08:00
c9s
47e23fda90 bbgo: add cache expiry 2022-01-06 23:57:42 +08:00
c9s
1116fc1de1 session: print klines only when debug-kline is enabled 2021-12-31 15:13:26 +08:00
c9s
63ccc2d3d0 bbgo: remove order if ExecutedQuantity is zero 2021-12-31 01:55:22 +08:00
c9s
ba73d5a09a fix kucoin orderTime parsing and order id conversion 2021-12-30 22:02:50 +08:00
c9s
31070c3950 pull out connection status binder 2021-12-30 17:25:47 +08:00
c9s
26ff576727 fix connection status callbacks 2021-12-30 17:23:27 +08:00
c9s
cfc66dc13e bbgo: add session connection notification 2021-12-30 17:18:04 +08:00
c9s
a2931da92c move math rand 2021-12-30 16:18:32 +08:00
c9s
22e4da3775 fix pendingRemoval lock 2021-12-29 23:53:46 +08:00
c9s
090d60b44e fix session connection status metrics 2021-12-28 01:58:36 +08:00
c9s
a0e41650be add metricsLastUpdateTimeBalance metrics 2021-12-28 01:39:17 +08:00
c9s
bb9ef72028 update metricsConnectionStatus metrics 2021-12-28 00:49:56 +08:00
c9s
bb7b33e532 bbgo: bind and update balance metrics updater 2021-12-27 17:27:16 +08:00
c9s
7b629c9d30 bbgo: update balances metrics and trade metrics 2021-12-27 17:16:30 +08:00
c9s
0f24eec715 bbgo: fix: filter trades by symbol 2021-12-27 16:32:30 +08:00
c9s
42f22e0ef3 add prometheus metrics server 2021-12-27 16:27:14 +08:00
c9s
a31e2743ee fix kline log space 2021-12-27 00:54:10 +08:00
c9s
f7c39290a0 call tradeCollector process to check trades 2021-12-27 00:51:57 +08:00
c9s
770c1067fc bbgo: fix order store RemoveCancelled 2021-12-26 15:47:39 +08:00
c9s
05a0745d08 fix InitExchange for publicOnly session 2021-12-26 15:29:42 +08:00
c9s
ba8ebfe3a7 refactor and add doc comment for InitExchangeSession 2021-12-25 23:42:29 +08:00
c9s
307d0b8e1f bbgo: add passphrase field to session struct 2021-12-25 23:28:00 +08:00
c9s
57bc65a729 avoid calling EmitConnect and EmitStart outside of the kline feeding goroutine
this causes 2 goroutine running in the same time hence cause the
concurrent map read / write

should fix #399, #401
2021-12-25 21:05:50 +08:00
c9s
49e516b80e backtest: allocate public exchange (with empty key secret) for backtesting 2021-12-24 00:24:19 +08:00
c9s
a3e3e1d177 bbgo: do not sync trades when running backtest 2021-12-23 23:20:35 +08:00
c9s
f5bbe29ac6 cmd: fix debug flag loading and add debug log to cache function 2021-12-23 23:02:07 +08:00
c9s
cfd68fdd1d all: change trade id to uint64 2021-12-23 17:49:18 +08:00
TonyQ
d7ac645253 exchange: update maskkey handling 2021-12-23 01:18:36 +08:00
austin362667
f9cf71cef3 indicator: add kline close volatility
indicator: add kline close volatility
2021-12-19 14:20:09 +08:00
TonyQ
c0b9cc0f0b exchange: make ftx kline event more reliable 2021-12-15 11:23:07 +08:00
Yo-An Lin
6c6eb252cc Merge pull request #363 from tony1223/feature/355-ftx-backtest 2021-12-14 16:09:16 +08:00
TonyQ
8eb3eede82 fix backtest (with review) 2021-12-14 16:02:54 +08:00
TonyQ
51e23b6a0c Merge branch 'main' of github.com:c9s/bbgo into feature/302-record-assets-review 2021-12-14 10:39:51 +08:00
TonyQ
4eb5a099ae account: add nav_history_details and account_service for #302 2021-12-14 08:09:18 +08:00
austin362667
36c6d39612 bbgo: add session Futures & types: add FuturesExchange 2021-12-13 23:16:58 +08:00
austin362667
1703fff8b2 types: refactor Position and related files 2021-12-11 19:16:16 +08:00
c9s
d52edce40b fix markets info cache 2021-12-08 17:26:43 +08:00
c9s
08a264d4eb add futures exchange check in the markets cache 2021-12-07 21:29:40 +08:00
c9s
ca3f438288 show symbol name in the error message 2021-12-07 14:35:00 +08:00
c9s
aeeecba8dc support different time format for backtesting 2021-12-06 01:50:50 +08:00
c9s
0472b7f21e avoid recording trades in backtest by default
introducing a RecordTrades option
2021-12-06 01:42:53 +08:00
c9s
f692ef2c31 realign account fields 2021-12-05 12:23:27 +08:00
c9s
df683bdf56 use position to calculate the pnl 2021-12-05 02:17:15 +08:00
TonyQ
30c14a6828 fix #261 provide default config for notification setting 2021-12-04 02:37:21 +00:00
c9s
9a589bf71c show broadcast enabled 2021-11-25 18:49:29 +08:00
c9s
513a799ced fix ewma calculation 2021-11-22 02:14:44 +08:00
c9s
20f0e8dbd5 preallocate kline window with capacity 2021-11-22 01:17:08 +08:00
c9s
540722e430 adjust ewma truncate size 2021-11-22 01:17:08 +08:00
c9s
7787edffa0 refactor grid strategy state loading/saving 2021-11-05 00:22:44 +08:00
c9s
d763a3c415 bbgo: add debug ewma and sma 2021-10-18 17:26:03 +08:00
c9s
30b82390b7 bbgo: add EMA and SMA debug var 2021-10-18 15:23:22 +08:00
c9s
c36bbd6c35 bbgo: show pnl in the slack fields 2021-10-18 08:45:27 +08:00
c9s
15cfd735a0 bbgo: add doc comment for ExchangeSessionSubscriber 2021-10-17 22:23:21 +08:00
c9s
39b7a956e0 Add market field to position 2021-10-17 22:23:09 +08:00
c9s
30c7c34826 bbgo: fix kline backward query for backtest 2021-10-16 13:49:00 +08:00
c9s
4bcea5a388 bbgo: add AllFilled method on OrderStore 2021-10-16 13:39:18 +08:00
c9s
f5f96b585a apply broadcast option from config file 2021-10-15 16:10:39 +08:00
c9s
2b0793ee49 bbgo: add telegram config 2021-10-15 16:10:09 +08:00
c9s
47e4847034 fix kline query endtime 2021-10-14 14:21:38 +08:00
c9s
b3661f5d32 bbgo: improve profit stat PlainText format 2021-10-14 10:16:11 +08:00
c9s
7d416c3467 bbgo: fix profit json tag 2021-10-14 10:14:11 +08:00
c9s
7874471828 bbgo: improve pnlEmojiMargin function 2021-10-14 10:13:21 +08:00
c9s
c8554f09a0 bbgo: refactor the pnl functions 2021-10-14 10:07:27 +08:00
c9s
2116efc42e bbgo: fix profit title 2021-10-14 08:59:45 +08:00
c9s
49a78c0c88 bbgo: fix profit stat title 2021-10-14 08:58:19 +08:00
c9s
c12ff57e57 bbgo: improve profit stats plaintext format 2021-10-14 08:55:55 +08:00
c9s
77f11f4515 bbgo: add ticker for collecting trades 2021-10-14 07:56:40 +08:00
c9s
b154e3baea bbgo: add pnl emoji with margin 2021-10-14 07:48:32 +08:00
c9s
7e8897f1d0 bbgo: fix profit field check condition 2021-10-14 07:33:34 +08:00
c9s
5c3f305060 bbgo: implement SlackAttachment interface for profitstats 2021-10-14 01:27:58 +08:00
c9s
d3fa0a964b bbgo: add slack attachment support for profit 2021-10-14 01:27:50 +08:00
c9s
b6b2e33cc0 extend profit stats fields for quote,base currency and symbol 2021-10-14 01:26:36 +08:00
c9s
5039a43413 bbgo: move pnl formating to the bbgo package 2021-10-14 01:26:11 +08:00
c9s
e1e6d1de12 bbgo: add net profit margin field to profit stats 2021-10-14 01:26:04 +08:00
c9s
44a0b10240 bbgo: load last price from 1m interval kline only 2021-10-14 00:37:40 +08:00
c9s
37ac907c0f profitstats: add accumulated volume 2021-10-12 11:24:28 +08:00
c9s
d9dc7e31df extend more fields 2021-10-12 11:24:24 +08:00
c9s
45645d0a3d use the profit struct to pass profit info 2021-10-08 19:16:40 +08:00
c9s
fac14a8c7f profitstats: add netProfit field 2021-10-08 15:09:55 +08:00
c9s
aadb1ed389 remove MakerExchange from the core profit stats field 2021-10-08 15:00:53 +08:00
c9s
d058125f78 bbgo: refactor profit stats 2021-10-08 14:57:44 +08:00
c9s
9e1d28f3b3 do not remove order if it's partially filled 2021-10-08 14:17:47 +08:00
c9s
ded740107f bbgo: refactor TradeCollector bind stream for background and foreground 2021-10-08 13:24:07 +08:00
c9s
8ada9eef02 bbgo: optimize AdjustQuantityByMaxAmount, early return 2021-10-08 12:09:05 +08:00
c9s
7fb4d2f78d return positionChanged for Process method 2021-10-05 21:44:39 +08:00
c9s
5dd2f568fe add doc comment for trade collector 2021-10-05 21:39:10 +08:00
c9s
45c875fe7c bbgo: improve trade collect process 2021-10-05 21:30:06 +08:00
c9s
8d01c97240 fix cyclic import issue 2021-08-26 11:46:02 +08:00
c9s
1f94ae1c19 bbgo: move moving average settings struct into bbgo 2021-08-26 11:32:39 +08:00
c9s
3ab4a570fb bbgo: limit max kline slice 2021-06-28 14:33:32 +08:00
c9s
06a1f018c2 bbgo: push to the buffer first 2021-06-26 20:26:47 +08:00
c9s
7d853a9c74 bbgo: add emit position update 2021-06-26 20:26:47 +08:00
c9s
ecd2d9ea68 bbgo: improve trade collector callbacks 2021-06-26 20:26:47 +08:00
c9s
db4fbbc30c bbgo: add trade collector 2021-06-26 20:26:47 +08:00
c9s
65629a77f4 bbgo: add two new position constructor 2021-06-26 20:26:47 +08:00
c9s
3d12a7df59 support: add sensitivity settings 2021-06-16 13:14:10 +08:00
c9s
e276ddd38a bbgo: add shared local time zone 2021-06-16 13:04:23 +08:00
c9s
e23c459697 bbgo: move orderbook to the session level so that we can access it eaiser 2021-06-16 13:04:23 +08:00
c9s
2614b25de3 types: move fiat currency list to types 2021-06-16 13:04:23 +08:00
c9s
e5db780be8 notify trades and update position 2021-06-01 01:39:22 +08:00
c9s
c84d59734c clear all trades before running backtests 2021-05-30 15:25:00 +08:00
c9s
3aa36b5989 refactor and fix backtest for user data stream and market data stream 2021-05-30 15:08:11 +08:00
c9s
38fd5422ab xmaker: use uncovered position 2021-05-30 14:46:48 +08:00
c9s
8d31435ded add trade store 2021-05-29 00:25:23 +08:00
c9s
5f18b89dfa if publicOnly is set, we should not connect user data stream 2021-05-28 19:01:55 +08:00
c9s
f190b1e66a fix market data stream initialization 2021-05-28 03:17:46 +08:00
c9s
7d62a7634b set market data stream to public 2021-05-27 15:11:44 +08:00
c9s
b7c87c7744 core: move market data subscription to market data stream 2021-05-27 15:09:18 +08:00
c9s
45f1a13870 rename Stream field to UserDataStream and add MarketDataStream 2021-05-27 14:45:06 +08:00
c9s
2381df5009 add okex to the exchange factory 2021-05-27 00:35:51 +08:00
zenix
3d2a27fc10 Fix: nil pointer exception in indicator creation, add stoch util func 2021-05-26 00:20:31 +00: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
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
c9s
8acada76a9 replace sliceorderbook with orderbook interface 2021-05-22 16:32:29 +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
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
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
f6f1226bd0 integrate bollband indicator into xmaker 2021-05-17 20:04:13 +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
a4381a54a3 add fee rate field 2021-05-16 15:03:36 +08:00
c9s
c9cdf31df1 add pnl emoji 2021-05-16 01:16:03 +08:00
c9s
942eaac659 improve message formatting 2021-05-16 00:45:08 +08:00
c9s
1f449eca7f implement SlackAttachment interface on Position 2021-05-15 23:50:03 +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
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
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
a49cf531b5 fix cross exchange order executor for the basic risk control 2021-05-12 19:02:09 +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
zenix
ba091dccf6 Fix: binance's cancel update is sent through New status with 0 quantity 2021-05-11 06:57:09 +00:00
c9s
95d58e9385 adjust hedge quantity according to the hedge account balances 2021-05-10 20:13:23 +08:00
c9s
ddab6083d4 xmaker: support quantity scale 2021-05-10 02:52:41 +08:00
c9s
ce63641d70 print otp auth guide when session is loaded 2021-05-10 01:38:19 +08:00
c9s
3f8f5616d7 add more order info the local order book printing 2021-05-09 20:03:16 +08:00
c9s
e06310da26 print unhandled order status 2021-05-09 19:44:43 +08:00
c9s
d01abffde3 add todo for the backtest trades 2021-05-08 01:09:06 +08:00
c9s
6bbd66a4f9 split environment start and init 2021-05-08 00:45:24 +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
1ad8b0b641 remove unused SourceDir func 2021-05-04 01:06:20 +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
9f77236999 fix and improve position accessor 2021-04-28 19:32:49 +08:00
c9s
70a53ed286 make config compatible with key 'strategies' 2021-04-28 17:58:50 +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
Larry850806
dbf5d27f30 Add a validator interface to validate strategy before run 2021-04-02 10:12:55 +08:00
c9s
6c8babfb27 allow public session 2021-03-22 17:40:17 +08:00