Commit Graph

366 Commits

Author SHA1 Message Date
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
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
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
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
858d6bdf05 grid: adjust callback registration ordering 2021-05-07 02:14:35 +08:00
Larry850806
f1309c46fc bollgrid: check balance before submit reverse order 2021-05-03 16:18:58 +08:00
c9s
822a010932 add moving average configuration to the schedule strategy 2021-05-02 20:58:32 +08:00
c9s
20d673f769 add schedule strategy 2021-05-02 18:03:41 +08: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
c9s
13a8597d59 add MaxExposurePosition settings 2021-04-04 11:14:09 +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
c9s
c82df27cf3 grid: fix message format 2021-03-25 15:22:52 +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
5de221524f adjust state and reset per day 2021-03-22 18:48:18 +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
865dda14f5 gap: accumulate fee 2021-03-22 17:32:22 +08:00
c9s
e86f29b7cc add gap strategy 2021-03-22 17:32:21 +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
4e3f325bb6 first commit of xmaker strategy from mobydick 2021-03-21 12:55:33 +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
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
0e6918a352 grid: add profit field 2021-03-18 15:46:14 +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
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
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
2bf4a555ec use OnStart instead of OnConnect
this is for avoiding re-connect issue
2021-03-15 18:04:55 +08:00
Larry850806
689734567a Remove unused conditions when generating orders 2021-03-03 14:55:11 +08:00
c9s
da79920ca9 rename scale struct name to PriceVolumeScale 2021-02-28 14:51:24 +08:00
c9s
99f236d2e0 integrate quantity scale into support strategy and grid strategy 2021-02-28 11:57:25 +08:00
c9s
21a4669905 adjust max query limiter and sync before running trader 2021-02-22 16:54:08 +08:00
c9s
ff5233ba3e support: use Notfiy 2021-02-20 10:51:01 +08:00
c9s
e3d3eacb78 fix trade service injection 2021-02-16 16:30:01 +08:00
c9s
0c9ca851e5 improve support strategy 2021-02-15 01:26:46 +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
4a0bd45301 remove order test code 2021-02-11 00:30:37 +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
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
c9s
ffb6a29d0d fix startPrice value conversion 2021-02-08 13:21:22 +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
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
84b6982033 add order store to exchange session 2021-01-24 14:14:25 +08:00
c9s
995f9a9ea0 grid: add order amount field 2021-01-06 13:31:17 +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
f485c1ba7f fix grid strategy order placing 2020-12-29 18:18:32 +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
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
cabd8f8dcb improve buyandhold strategy 2020-12-14 14:21:02 +08:00
c9s
846f463cfc print loaded position 2020-12-08 16:32:39 +08:00
c9s
03afa060d5 add updateInterval for mirrormaker 2020-12-08 16:01:46 +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
b188901ed0 fix ewma calculation 2020-12-05 13:32:41 +08:00
c9s
936650d879 rename kline trend to direction 2020-12-04 10:18:51 +08:00
c9s
976a4c6732 add verbose log message for movingstop 2020-12-03 16:46:02 +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
2b264905f9 add warnings and fix subscription 2020-12-03 09:26:10 +08:00
c9s
9d7aa2fe22 add movingstop strategy 2020-12-03 08:52:32 +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
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
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
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
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
941c93794c fix grid strategy for backtesting 2020-11-10 14:18:54 +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
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
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
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
a60207db2a only re-submit the order when the order is filled on the opposite side 2020-10-31 18:33:04 +08:00
c9s
458fa8aa9d add types.OrderStatusFilled 2020-10-31 18:29:58 +08:00
c9s
17a2f74add finalize grid strategy 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
f0681177f9 inject market into the skeleton strategy 2020-10-29 17:06:34 +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
19b600bb35 simplify strategy registration api 2020-10-29 07:54:59 +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
d6553a1155 move strategy subscribe out 2020-10-28 17:49:49 +08:00
c9s
67446670ac finalize swing strategy and fix trade reporter issue 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
e2df24f31c support standard indicatorset 2020-10-28 09:43:19 +08:00
c9s
e1c2f7cc3d improve notifier signatures and fix slack Notify method 2020-10-27 20:13:10 +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
085d02bee4 clean up strategy code since we can loaded from the config 2020-10-26 22:04:48 +08:00
c9s
cd666fdf9e pull out db parameter from the constructor 2020-10-26 15:06:39 +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
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
944b673626 Add skeleton strategy 2020-10-25 18:32:43 +08:00
c9s
58265d14f9 move cmdutil package 2020-10-21 15:58:58 +08:00
c9s
4ee10de40f add LoadedCrossExchangeStrategies loader api 2020-10-20 14:21:46 +08:00
c9s
2fbf19455e implement strategy yaml loader 2020-10-20 13:52:25 +08:00
c9s
fc687f3174 max: implement kline event parser for websocket 2020-10-19 22:46:34 +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
c224eb7af7 add kline to the market data store 2020-10-18 00:06:08 +08:00
c9s
98192ae91f move Cmd to the strategy package 2020-10-16 10:09:42 +08:00
c9s
7482fa52d6 add error check and logger 2020-10-15 23:38:00 +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
6398f049d0 bind market data store and query avg price before we start 2020-10-12 22:46:06 +08:00