Commit Graph

2427 Commits

Author SHA1 Message Date
c9s
3c376b3cd3 add accumulated profit column to position 2022-03-14 21:21:58 +08:00
c9s
cc4ef327d6 add strategy id and instance id to position 2022-03-14 21:21:58 +08:00
c9s
ac675d0099 add position table and service 2022-03-14 21:21:58 +08:00
c9s
f0d500bbaa add positions table migration 2022-03-14 21:21:58 +08:00
c9s
b1559bcbe3 fix persistence injection 2022-03-14 21:21:43 +08:00
Andy Cheng
822fea44fc
strategy: fix index out of range error 2022-03-14 12:01:17 +08:00
Andy Cheng
ad7605e7b2
strategy: do not submit order if current position < market.MinQuantity 2022-03-14 11:45:24 +08:00
zenix
7e92f0f4e5 fix: remove requirements on config flag 2022-03-11 19:56:59 +09:00
c9s
36e039108a bump version to v2.0.0 2022-03-10 19:01:58 +08:00
なるみ
b6493ad282 Change id type 2022-03-09 13:14:14 +08:00
なるみ
8522c0dadb Add exchange field to QueryOrderRequest 2022-03-08 19:33:23 +08:00
Yo-An Lin
bfdf4c245f
Merge pull request #460 from zenixls2/feature/backtest_multiple_exchange
feature: add multiple exchange support in backtest
2022-03-07 14:28:20 +08:00
c9s
fcbdf8162a max: add env var MAX_QUERY_CLOSED_ORDERS_LIMIT 2022-03-07 13:56:20 +08:00
zenix
39572c5fe0 fix: remove maker/buyer/taker/sellerCommission 2022-03-07 14:32:00 +09:00
Yo-An Lin
35ef21ab1c
Merge pull request #466 from c9s/feature/strategy-profit
feature: add strategy profit records
2022-03-07 12:20:47 +08:00
zenix
25b5eddc03 feature: add multiple exchange support in backtest
fix: change doc, since --exchange removed from backtest

fix: test for config changes
2022-03-07 13:18:56 +09:00
c9s
b8ef2eb550 fix Test_tradeService 2022-03-07 12:12:06 +08:00
zenix
1f27ef653b fix: exception on parsing empty string in dnum 2022-03-07 12:46:03 +09:00
c9s
9b6b071d2b compile and update migration package 2022-03-06 18:47:01 +08:00
c9s
e23232c3e7 max: fix timeInForce conversion 2022-03-06 18:37:34 +08:00
c9s
586013d9f2 max: fix order update message 2022-03-06 18:33:21 +08:00
c9s
af2070b908 binance: add updated time field 2022-03-06 18:32:33 +08:00
c9s
f3577a4182 fix: if it's an empty time, do not return a driver value 2022-03-06 18:28:40 +08:00
c9s
917684aa27 bbgo: inject environment object 2022-03-06 18:28:40 +08:00
c9s
099d860c5a fix: fix Test_parseStructAndInject test 2022-03-06 18:28:40 +08:00
c9s
b1ba5386b3 fix bbgo.Notifiability injection 2022-03-06 16:09:15 +08:00
c9s
25f3aeef58 bollmaker: call RecordProfit 2022-03-06 15:39:20 +08:00
c9s
8fa0e6702c bollmaker: assign strategy id and instance id 2022-03-06 15:38:58 +08:00
c9s
f6ec2e78e6 record profits 2022-03-06 15:37:41 +08:00
c9s
3a15738fec pull out default persistence selector 2022-03-06 14:06:19 +08:00
c9s
35b0d8dc0d bbgo: add profit service to environment 2022-03-05 13:40:20 +08:00
c9s
1f1c26a9e5 bbgo: inject more service objects 2022-03-05 13:37:27 +08:00
c9s
c1ac738ca0 bbgo: add doc comment for parseStructAndInject 2022-03-05 12:59:47 +08:00
c9s
bdcae5b763 bbgo: add more injection types 2022-03-05 12:49:53 +08:00
c9s
a9f9fa8fed bollmaker: add Environment field and Market field for injection 2022-03-05 12:40:56 +08:00
c9s
47023729ec bbgo: rewrite field injection 2022-03-05 12:39:39 +08:00
c9s
a6053e0e59 bbgo: move inject function to injection.go 2022-03-05 03:20:20 +08:00
c9s
cd6b37ac3b bbgo: skip unexported fields for injection 2022-03-05 03:19:45 +08:00
c9s
fa7bab2c3a bbgo: improve dynamic injection 2022-03-05 02:51:43 +08:00
c9s
db4d8a31bc bbgo: implement parseStructAndInject 2022-03-05 02:33:25 +08:00
c9s
5fe0b69927 bollmaker: use the new profit generator method 2022-03-05 01:41:23 +08:00
c9s
197d750cb4 all: update profit struct fields 2022-03-05 01:39:53 +08:00
c9s
82e5520ee4 service: update profit service tests 2022-03-05 00:28:13 +08:00
c9s
a642aa1a5a service: add more columns 2022-03-05 00:27:44 +08:00
c9s
09dea3938d implement profit insert 2022-03-04 19:24:40 +08:00
c9s
9e0df77a36 move profit struct into the types package 2022-03-04 16:39:48 +08:00
Yo-An Lin
f8b257d490
Merge branch 'main' into fix/cmd-required 2022-03-03 19:53:27 +08:00
c9s
f190cc4f6c cmd: fix account command usage 2022-03-03 19:40:18 +08:00
c9s
f14694c65f cmd: remove config file check from the account command 2022-03-03 19:39:55 +08:00
zenix
a33b748563 fix: mark flags as required during PreRunE 2022-03-03 18:03:15 +09:00
c9s
3843bda7c2 cmd: remove incorrect MarkPersistentFlagRequired usage 2022-03-03 15:37:17 +08:00
c9s
7d08263cdb fix: fix required flag marking issue 2022-03-03 15:34:16 +08:00
c9s
b8f54ed4b9 ftx: print result directly 2022-03-03 15:04:53 +08:00
c9s
86af4d2b40 ftx: rewrite order cancel handling 2022-03-03 14:52:24 +08:00
c9s
dd76cfafa4 ftx: remove legacy orderRequest from the legacy rest 2022-03-03 12:33:44 +08:00
c9s
c9f2027a38 ftx: remove the legacy orderRequest 2022-03-03 11:55:00 +08:00
c9s
5ea01c8d80 regenerate symbol map 2022-03-03 11:44:01 +08:00
c9s
eaa81f1313 ftx: remove legacy balances method 2022-03-03 11:43:15 +08:00
c9s
270ae51c9b ftx: remove legacy PlaceOrderPayload 2022-03-03 11:42:57 +08:00
c9s
2510f14d53 ftx: remove legacy place order request method 2022-03-03 11:42:40 +08:00
c9s
5bbb796e94 ftx: clean up imports 2022-03-03 11:42:25 +08:00
c9s
37db477ece ftx: remove legacy method CancelOrderByClientID 2022-03-03 11:42:13 +08:00
c9s
60ad6bc901 ftx: remove legacy CancelOrderByOrderID method 2022-03-03 11:41:51 +08:00
c9s
064da7f938 ftx: remove legacy open orders method 2022-03-03 11:40:23 +08:00
c9s
a47924d1c9 ftx: remove legacy order history method 2022-03-03 11:40:03 +08:00
c9s
da54fbb676 cmd: remove extra config option check 2022-03-03 11:39:28 +08:00
c9s
6ae588575a ftx: remove legacy market api method 2022-03-03 11:39:11 +08:00
c9s
21ae48c975 cmd: use MarkFlagRequired 2022-03-03 11:36:06 +08:00
c9s
2845e03100 ftx: fix ftx test cases 2022-03-03 01:47:19 +08:00
c9s
3f8f17b1de ftx: reimplement submit order api 2022-03-03 00:30:52 +08:00
c9s
3b601d73ce ftx: remove legacy fills requests 2022-03-03 00:30:52 +08:00
c9s
4321cab557 ftx: drop the legacy unused account request 2022-03-03 00:30:52 +08:00
c9s
688445d7e7 cmd: add get-order cmd 2022-03-03 00:30:52 +08:00
c9s
127de0d81c cmd: update executeOrderCmd description 2022-03-03 00:30:52 +08:00
c9s
95daa004aa ftx: implement get order status api 2022-03-03 00:30:52 +08:00
c9s
14bcc780a4 ftxapi: add cancel order by client order id 2022-03-03 00:30:52 +08:00
c9s
07dd2e8d9c ftx: improve order cancel by client order id 2022-03-03 00:30:52 +08:00
c9s
5cfc266d7a ftx: simplify and replace the order history query 2022-03-03 00:30:52 +08:00
c9s
5c8997e293 ftx: fix ftx order status isWorking 2022-03-03 00:30:52 +08:00
c9s
66700016e4 ftx: add toGlobalOrderNew to convert new order structure 2022-03-03 00:30:52 +08:00
c9s
e9e1127d3e ftx: replace query markets api 2022-03-03 00:30:52 +08:00
c9s
883f0ed83a ftxapi: replace fill implementation 2022-03-03 00:30:52 +08:00
c9s
833354e553 ftx: replace QueryTrades implementation 2022-03-03 00:30:52 +08:00
c9s
9c371425f6 ftx: replace QueryAccount implementation 2022-03-03 00:30:52 +08:00
c9s
84bc170a2e ftxapi: use order types 2022-03-03 00:30:52 +08:00
c9s
03f0305b3d ftxapi: add fills request 2022-03-03 00:30:52 +08:00
c9s
14a49989fe ftxapi: define types 2022-03-03 00:30:52 +08:00
c9s
cd0ac71b99 ftxapi: separate request files 2022-03-03 00:30:52 +08:00
c9s
abc425d820 ftx: fix ftx api client 2022-03-03 00:30:52 +08:00
c9s
93992801f9 ftxapi: add order history request 2022-03-03 00:30:52 +08:00
c9s
9e350afed5 ftxapi: add get coins api 2022-03-03 00:30:52 +08:00
c9s
3601edab84 ftxapi: add get single market api 2022-03-03 00:30:52 +08:00
c9s
2a6310c5f5 ftxapi: add get markets api 2022-03-03 00:30:52 +08:00
c9s
94ee46787e ftxapi: add generated files 2022-03-03 00:30:52 +08:00
c9s
7ed2e352d9 ftx: rewrite ftxapi 2022-03-03 00:30:52 +08:00
Yo-An Lin
7ae5869461
Merge pull request #451 from narumiruna/protobuf
grpc: add protobuf
2022-03-02 12:57:23 +08:00
zenix
f101e93311 fix: dnum panic, precision loss in parsing string in legacy 2022-02-28 15:50:31 +09:00
c9s
9c45e6693f fix formatString 2022-02-25 18:25:44 +08:00
c9s
99b025dd5c add FormatString test case and fix FormatString 2022-02-25 18:03:28 +08:00
c9s
10612cdfa9 add Test_formatQuantity 2022-02-25 17:47:54 +08:00
c9s
555e8c5253 add Test_formatPrice 2022-02-25 16:52:43 +08:00
なるみ
37fbe724cf Add Error message 2022-02-23 12:44:31 +08:00
なるみ
3aeae99587 Add SubcribeUserData 2022-02-23 12:29:01 +08:00
なるみ
36fd5d648a Add exchange and symbol to Ticker 2022-02-23 12:27:22 +08:00
なるみ
6b10d1160f Merge SuccessResponse and SubscribeResponse 2022-02-23 12:21:49 +08:00
なるみ
9fd4074d37 Add Depth message for bids and asks 2022-02-23 12:19:23 +08:00
Yo-An Lin
2108003f9b
Merge pull request #454 from zenixls2/fix/pnl
fix: #287 init environ before querying balance
2022-02-23 11:46:11 +08:00
zenix
06e9450859 feature: add cmd document
add documentation index
2022-02-22 19:36:45 +09:00
zenix
52cc047673 fix: #287 init environ before querying balance 2022-02-22 14:32:35 +09:00
なるみ
32acec5669 Put exchange field in the order and trade message 2022-02-21 12:53:39 +08:00
なるみ
c1b705956f Add SubmitOrder, rename variables and fix typo 2022-02-21 12:13:51 +08:00
なるみ
f2bca1d5b7 add QueryKLines 2022-02-20 04:41:39 +08:00
なるみ
136d36b2b1 generate code 2022-02-20 04:10:39 +08:00
なるみ
7a7627eafd update proto 2022-02-20 04:08:52 +08:00
c9s
208a9bcb7d fix: fix context error handling 2022-02-18 18:21:51 +08:00
c9s
849f2a248e ftx: check context error 2022-02-18 15:35:58 +08:00
c9s
3a488a4c0f ftx: add ioc order test 2022-02-18 14:50:54 +08:00
なるみ
4fb8881be7 Fix package path 2022-02-18 14:27:12 +08:00
なるみ
72bcdaaf25 Move pkg/proto to pkg/pb 2022-02-18 14:24:38 +08:00
c9s
17034b2467 ftx: fix ioc convert 2022-02-18 14:10:21 +08:00
c9s
f6ebeeafc5 ftx: cast time in force from the order result 2022-02-18 14:07:29 +08:00
c9s
d0f1e2db04 ftx: fix ftx ioc conversion 2022-02-18 14:01:47 +08:00
c9s
fb9f8b484c max: remove ioc limit type 2022-02-18 13:57:47 +08:00
c9s
0c09e6b32a use global timeInForce type 2022-02-18 13:52:13 +08:00
zenix
20cccf57e5 fix: NumFractionalDigits in legacy fixedpoint and dnum fixedpoint 2022-02-17 12:45:06 +09:00
zenix
ced2afaed8 fix: remove backup file in schedule strategy 2022-02-16 18:32:02 +09:00
なるみ
328c507bee Update go generated code 2022-02-16 11:54:46 +08:00
なるみ
3fe6fbf514 Add Trade message and support streaming 2022-02-16 11:52:18 +08:00
zenix
a3a262783f fix: set backtest cancel Delta to be 1e-11 2022-02-15 18:59:10 +09:00
zenix
7455279517 fix: #400 for int64 formating when exp <= 0 2022-02-15 18:24:21 +09:00
zenix
8648528435 fix go fmt, fix convert.go (the legacy fixedpoint implementation) in all tests 2022-02-15 14:55:19 +09:00
zenix
eb70410f80 add back legacy implementation 2022-02-15 12:01:39 +09:00
zenix
cdba7924b4 fix backtest panic when cancel fail on the last order 2022-02-15 12:01:39 +09:00
zenix
5315378b9e fix takerfeerate column and makerfeerate column issue in yaml 2022-02-15 12:01:39 +09:00
zenix
fad85d0992 fix binance test, outptu for support and xgap strategies 2022-02-15 12:01:39 +09:00
zenix
05521a98b6 add skeleton strategy. fix most of the tests. fix final asset value 2022-02-15 12:01:39 +09:00
zenix
9978a3cf90 fix unmarshal behavior to gain more precision 2022-02-15 12:01:39 +09:00
zenix
abc1d535d8 fix bollmaker, fix pnl issues 2022-02-15 12:01:39 +09:00
zenix
105b085786 fix bollgrid, emstop, flashcrash, funding, grid, pricealert, pricedrop, rebalance, schedule, swing, xbalance, xgap, xmaker and speedup fixedpoint 2022-02-15 12:01:39 +09:00
zenix
2ccc449657 fix xpuremaker,xnav,techsignal,support,etf and add methods in fixedpoint 2022-02-15 12:01:39 +09:00
zenix
d9450e823e fix all the fixedpoint use other than strategy 2022-02-15 12:01:39 +09:00
zenix
b8bf2af14d fixedpoint for exchange and indicators, some fixes in types 2022-02-15 12:01:38 +09:00
zenix
e221f54397 add dnum as the fixedpoint implementation. change types float64 to fixedpoint.Value
change pnl report to use fixedpoint

fix: migrate kline to use fixedpoint
2022-02-15 12:00:39 +09:00
なるみ
307042025f Initial commit of protobuf 2022-02-14 16:46:11 +08:00
ankion
98b4495d1f Fix: precision of futures trade data is incorrect. 2022-02-14 10:32:13 +08:00
c9s
a2a7ef4f7a exchange: implement ExchangeOrderQueryService on max and binance 2022-02-10 17:48:53 +08:00
Andy Cheng
f7fc7f64b4
strategy: fix fixedpoint value compared to 0 problem 2022-02-06 17:47:14 +08:00
Andy Cheng
41c3b860b0
strategy: rename callBackRatio to callbackRatio 2022-02-06 17:47:14 +08:00
Andy Cheng
a9b48ff138
strategy: fix fixedpoint.Value compare to 0 problem 2022-02-06 17:47:14 +08:00
Andy Cheng
8b009a984a
strategy: fix a bug when 'trailingStopControl' is not used 2022-02-06 17:47:14 +08:00
Andy Cheng
571c3834c5
strategy: fix the JSON tag of 'CurrentHighestPrice' 2022-02-06 17:47:14 +08:00
Andy Cheng
769da1e77c
strategy: rename 'trailingStopCallBackRatio' JSON tag to 'callBackRatio' 2022-02-06 17:47:14 +08:00
Andy Cheng
b48c7f40d7
strategy: make TrailingStopCallBackRatio and MinimumProfitPercentage fixedpoint.Value 2022-02-06 17:47:13 +08:00
Andy Cheng
883f43a9ad
strategy: construct trailingStopControl in the caller 2022-02-06 17:47:13 +08:00
Andy Cheng
60a4ab2f27
strategy: save state on high price update and cancel trailing stop order on shutdown 2022-02-06 17:47:13 +08:00
Andy Cheng
1bd787f44c
strategy: return the createdOrders objects instead in submitOrders() 2022-02-06 17:47:13 +08:00
Andy Cheng
f673fc30ad
strategy: rename GenerateTrailingStopOrder() to GenerateStopOrder() in support strategy 2022-02-06 17:47:13 +08:00
Andy Cheng
2a8938fce0
re-indent with tabs 2022-02-06 17:47:13 +08:00
Andy Cheng
66b042fea7
strategy: trailing stop TP for support strategy 2022-02-06 17:47:11 +08:00
c9s
bf8558e9ad bollmaker: add BuyBelowNeutralSMA option 2022-02-01 01:40:51 +08:00
c9s
17187c70e7 cmd: print realized profit in colored text 2022-02-01 01:05:11 +08:00
c9s
c0beca78f5 include terminal color for back-test report 2022-02-01 01:00:26 +08:00
c9s
82adff338e cmd/backtest: calculate performance in quote asset 2022-02-01 00:54:55 +08:00
c9s
f96c2e6271 bbgo: add activated flag on trailing stop order 2022-02-01 00:41:28 +08:00
c9s
bed03dbd17 schedule: refactor and improve schedule strategy with QuantityOrAmount struct 2022-01-31 01:42:21 +08:00
c9s
11bbdb16a0 bollmaker: clean up empty files 2022-01-31 01:31:31 +08:00
c9s
0e7f88e3bf move SmartStops into the bbgo package 2022-01-31 01:27:47 +08:00
c9s
eb5064ccfe bollmaker: separate bidSpread and askSpread 2022-01-31 01:11:30 +08:00
c9s
2e7621ca55 add BidSpread and AskSpread 2022-01-31 01:08:33 +08:00
c9s
701e80d0d8 bollmaker: pull out trailing stop order logics into SmartStops struct 2022-01-31 01:07:00 +08:00
c9s
67bc5d523a bollmaker: refactor trailing stop snippet 2022-01-31 00:44:04 +08:00
c9s
0667c138ab backtest: fix duplicate trade emit issue 2022-01-30 03:05:19 +08:00
c9s
e595b9acb2 backtest: should panic if last price is zero 2022-01-30 02:41:00 +08:00
c9s
6566db1624 accounting: filter duplicated trades when backtesting 2022-01-30 02:40:38 +08:00
c9s
e1fc0e7b8d bollmaker: remove redundant log and fix return 2022-01-30 02:00:42 +08:00
c9s
ec8129ab87 backtest: fix market order fee calculation 2022-01-30 02:00:30 +08:00
c9s
20938895a8 bollmaker: merge skip condition 2022-01-30 01:40:33 +08:00
c9s
a185f3fdbe bollmaker: improve trailing stop order log 2022-01-30 01:37:36 +08:00
c9s
78855d552a backtest: fix backtest trade for market order 2022-01-30 01:37:24 +08:00
c9s
9adc3a9243 bollmaker: always collect trades and check balance 2022-01-30 01:21:36 +08:00
c9s
2255f3ed0a bollmaker: check dust order for stop 2022-01-29 17:44:42 +08:00
c9s
99af5d3971 bollmaker: implement TrailingStopController 2022-01-29 02:22:20 +08:00
c9s
584dd3e279 bollmaker: add TradeInBand option 2022-01-28 01:29:12 +08:00
c9s
f49b7165d8 bollmaker: fix MinNotional adjustment 2022-01-27 19:56:10 +08:00
c9s
a6cbb2fb2d bollmaker: rewrite trend detection 2022-01-27 18:51:51 +08:00
c9s
547f4c400a cmd: call BindSync when running strategy 2022-01-27 18:19:25 +08:00
c9s
3b630c0bca bbgo: pull out writer closure 2022-01-27 18:13:15 +08:00
c9s
cb507edf44 bbgo: add BindSync method on environment 2022-01-27 18:12:15 +08:00
c9s
30a9a5849f add user data stream sync config 2022-01-27 09:34:04 +08:00
c9s
44efbce8eb cmd: change trades cmd time range to just 1 day 2022-01-27 09:26:24 +08:00
c9s
c3c2822c82 cmd/trades: avoid passing since and until at the same time 2022-01-27 08:57:31 +08:00
c9s
880d806736 cmd: add --no-sync option to the run command 2022-01-27 08:30:31 +08:00
c9s
70f02a1c19 cmd: handle user config sync options in the run command 2022-01-27 08:21:19 +08:00
c9s
0d0d8b05bf bbgo/scale: test out of domain 2022-01-27 02:39:33 +08:00
c9s
1ef5a37225 bbgo/scale: check domain range 2022-01-27 02:32:26 +08:00
c9s
4f6e04323f bollmaker: add more logs 2022-01-27 02:25:23 +08:00
c9s
aea8f97ab9 bollmaker: add Test_calculateBandPercentage test 2022-01-27 02:22:26 +08:00
c9s
f9d650cd23 bollmaker: add DynamicExposurePositionScale 2022-01-27 02:04:57 +08:00
c9s
09213b14f3 bbgo: add negative range test for PercentageScale 2022-01-27 01:47:01 +08:00
c9s
49f671ef54 add PercentageScale and its tests 2022-01-27 01:40:54 +08:00