Commit Graph

539 Commits

Author SHA1 Message Date
Raphanus Lo
de4f3721a2 backtest: avoid inifite float64 JSON serializing issue 2022-08-25 15:45:08 +08:00
Raphanus Lo
ad1b9a53a1 backtest: calculate realized Sharpe & Sortino ratios 2022-08-25 15:45:08 +08:00
zenix
6b6a24a655 feature: add gma, add wdrift, export drift filter, fix: LastPrice truncation 2022-08-23 17:22:45 +09:00
Raphanus Lo
b4e32a9ba7 hoptimizer: manually early stop
User is now able to stop trials by sending system signal (SIGINT & SIGTERM) and see the report earlier at any time.
2022-08-16 14:55:39 +08:00
c9s
e735362efd
cmd/kline: show klines from restful api 2022-08-11 00:08:48 +08:00
c9s
4e4ffe83e5
cmd: fix cpu profile starter 2022-08-09 11:37:30 +08:00
c9s
f9fe5d7790
cmd: move package import paths 2022-08-09 11:36:02 +08:00
Raphanus Lo
68af2d0ff8 optimizer: rename optimizeex to hoptimize 2022-08-02 12:44:42 +08:00
Raphanus Lo
bad0aa31b7 optimizer: print best result in the same parameter order defined in config 2022-07-30 23:43:40 +08:00
Raphanus Lo
67f8b1c32c optimizeex: hyperparameter optimization tool
Currently support the following search algorithms:
- Tree-structured Parzen Estimators (tpe, default)
- Covariance Matrix Adaptation Evolution Strategy (cmaes)
- Quasi-monte carlo sampling based on Sobol sequence (sobol)
- random search (random)

And the following objective function:
- profit
- volume
- equity
2022-07-29 17:09:54 +08:00
zenix
0ae6b6736c feature: use drift indicator to create basic strategy for study 2022-07-26 18:00:05 +09:00
Raphanus Lo
4985c760be optimizer: prepare database before executing backtests 2022-07-13 15:28:11 +08:00
c9s
a51f26e3a7
backtest: add gross profit and gross loss fields 2022-07-12 19:50:28 +08:00
c9s
7d232f86b8
remove duplicated dumper close 2022-07-12 19:34:07 +08:00
c9s
7b7d0690c7
optimizer: support --tsv option and render tsv output 2022-07-07 02:11:52 +08:00
Yo-An Lin
0b4044bbb6
Merge pull request #796 from c9s/strategy/pivotshort
strategy/pivotshort: add supportTakeProfit method
2022-07-04 12:26:32 +08:00
c9s
82f9fc139c
backtest: refactor exchange field, clean up startTime and endTime deps 2022-07-04 02:34:46 +08:00
c9s
a31f61736a
backtest: pull out userDataStream to backtestEx.BindUserData 2022-07-04 02:27:29 +08:00
c9s
ecd4df86f9
backtest: assign user data stream to backtest.Exchange before we call EmitStart 2022-07-04 02:21:14 +08:00
LarryLuTW
a0e8359d23
add market for calculator 2022-07-02 17:45:24 +08:00
c9s
527070d13d
all: rewrite and clean up graceful shutdown api 2022-06-30 15:49:18 +08:00
c9s
8c850c71a2
cmd/pnl: add --sync option 2022-06-22 18:24:34 +08:00
c9s
fa7177426f
cmd/pnl: fix trade table query 2022-06-22 18:19:11 +08:00
c9s
9574a04cce
types: add time alias string to ParseLooseFormatTime 2022-06-22 17:20:10 +08:00
Yo-An Lin
612df45c5e
Merge pull request #750 from c9s/refactor/persistence-singleton
refactor: persistence singleton and improve backtest cancel performance
2022-06-21 14:01:14 +08:00
c9s
9b82de596b
refine optimizer executor config structure 2022-06-21 12:31:42 +08:00
c9s
19d8013f49
bbgo: optimize order cancel for back-testing 2022-06-21 01:12:16 +08:00
Yo-An Lin
74e8540550
Merge pull request #749 from c9s/improve/optimizer-local-proc
improve: add parallel local process executor for optimizer
2022-06-20 21:47:06 +08:00
austin362667
c227272542 rsmaker: add bulit-in strategy
rsmaker: clean up
2022-06-20 17:23:13 +08:00
c9s
9be38e2421
optimizer: support multi metric value functions
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-20 14:52:40 +08:00
c9s
eacd1f1ae6
all: rewrite notification api
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-19 12:29:36 +08:00
zenix
55fa4cc8f1 fix: apply gofmt on all files, add revive action 2022-06-17 16:06:59 +09:00
zenix
f5007752b2 feature: add heikinashi support 2022-06-17 10:58:32 +09:00
なるみ
5799497a09 marketp: add marketcap strategy 2022-06-16 16:44:02 +08:00
Yo-An Lin
4ef10d1dc4
Merge pull request #713 from andycheng123/improve/share-kline
improve: share klines tsv
2022-06-16 07:33:43 +08:00
c9s
b1873aa19b
support specifying session in sync symbol 2022-06-14 13:02:36 +08:00
Andy Cheng
7ffe010c57 optimizer: kline directory by backtest period 2022-06-14 12:54:05 +08:00
Andy Cheng
8f18b414b6 optimizer: move klines to shared/ 2022-06-13 13:14:39 +08:00
Andy Cheng
70d6d8f5db optimizer: share klines in report 2022-06-13 12:26:47 +08:00
c9s
f8dbd26736
move cpu profile option to global cmd 2022-06-09 15:49:52 +08:00
c9s
854661bc71
backtest: move info log suppress after sync 2022-06-08 15:15:57 +08:00
c9s
99bf914415
add warning logs to pnl cmd 2022-06-08 15:10:43 +08:00
c9s
8c6331073d
cmd: fix pnl cmd 2022-06-08 15:10:43 +08:00
c9s
e023d0be5b
service: rewrite kline sync check 2022-06-08 15:10:43 +08:00
c9s
fc8d3ea59f
register dca strategy to builtin 2022-06-07 20:26:56 +08:00
Andy Cheng
34465fac89
Merge pull request #653 from andycheng123/strategy/supertrend
strategy: add supertrend strategy
2022-06-07 16:25:49 +08:00
Yo-An Lin
16e9535b8c
Merge pull request #638 from austin362667/strategy/f1
strategy: add fmaker
2022-06-07 12:24:26 +08:00
c9s
53e74b6262
fix timezone issue for sqlite and mysql 2022-06-07 00:48:13 +08:00
c9s
022775d0a2
service: use batch insert for kline 2022-06-06 17:21:31 +08:00
c9s
dae4afec10
fix verify() time range 2022-06-06 14:58:26 +08:00
c9s
f65b343ea6
service: clean up Verify method signature 2022-06-06 06:24:25 +08:00
c9s
39fcf1a51b
refactor sync command and add integration tests 2022-06-05 01:01:59 +08:00
c9s
9083881442
refactor exchange factory and solve the incorrect pkg import dependency from ftx 2022-06-04 11:47:55 +08:00
c9s
a7bd9239f2
fix: pull out time.now variable 2022-06-02 21:27:28 +08:00
c9s
991d13cb32
cmd/sync: support multiple session names 2022-06-01 19:40:29 +08:00
c9s
63ad635f62
cmd: rewrite sync command 2022-06-01 19:40:29 +08:00
austin362667
c904f9f0f7 strategy: add fmaker
fmaker: cleanup
2022-05-29 21:39:11 +08:00
c9s
11075b0d1a
cmd: add marginInterestsCmd 2022-05-29 12:01:20 +08:00
c9s
4a4699a4bc
cmd: add margin repays cmd 2022-05-29 11:53:36 +08:00
c9s
70f0dccb9f
binance: convert loans and repays to global types 2022-05-29 11:52:25 +08:00
Andy Cheng
bf26076112 strategy: prototype of supertrend strategy 2022-05-27 14:36:48 +08:00
c9s
b8eb036556
simplify ftx kline sync call 2022-05-20 14:06:37 +08:00
c9s
b9b2b8727a
avoid emitting duplicated kline 2022-05-20 13:37:28 +08:00
c9s
b61af0db39
optimizer: add metrics label 2022-05-20 01:53:51 +08:00
c9s
95c9fe4502
return metrics as a optimizer result 2022-05-20 01:42:32 +08:00
c9s
369afa8ab1
merge used intervals 2022-05-20 00:50:58 +08:00
c9s
590748b71d
tsv writer already flush the content before close handle 2022-05-20 00:37:29 +08:00
c9s
b3da6caddb
optimizer: fix op builder 2022-05-19 20:31:25 +08:00
c9s
960f967c34
aggregate total profit and total unrealized profit 2022-05-19 18:45:45 +08:00
c9s
7056853ecd
implement grid optimizer and local process executor 2022-05-19 18:23:12 +08:00
c9s
32ce36fda7
implement json patch for optimizer 2022-05-19 17:27:59 +08:00
c9s
13bf5d69a3
use types.Interval instead of string 2022-05-19 10:04:03 +08:00
Yo-An Lin
e57c39e665
Merge pull request #605 from c9s/feature/backtest-report
feature: add web-based back-test report
2022-05-18 02:21:55 +08:00
c9s
f3f6e4e68b
collect symbols 2022-05-18 02:05:57 +08:00
c9s
7dffccb3bf
clean up unused code 2022-05-18 00:50:14 +08:00
c9s
b51d6b4ba1
refactor report structure and rewrite manifest paths 2022-05-17 22:59:34 +08:00
c9s
620e465bcf
refactor symbol report 2022-05-17 22:31:50 +08:00
austin362667
8ab696deaa pivotshort: rename strategy & fix pivot indicator 2022-05-17 19:18:21 +08:00
austin362667
04ae49263d cmd: add built-in pivot strategy 2022-05-17 19:18:21 +08:00
c9s
b5f9f86944
define DefaultBacktestAccount 2022-05-17 18:45:06 +08:00
c9s
6acd426f07
refactor backtest report index function 2022-05-17 18:25:05 +08:00
c9s
1cc4c69c66
move and refactor functions 2022-05-17 18:23:09 +08:00
c9s
6c0165afe4
add report index file 2022-05-17 18:10:37 +08:00
c9s
f99e874072
add tsv writer 2022-05-17 01:33:43 +08:00
c9s
e950ee9559
add wall strategy 2022-05-12 22:51:39 +08:00
c9s
0ae8c295e2
refactor csv writer 2022-05-11 14:58:52 +08:00
c9s
e947a05cbd
add defer close 2022-05-11 14:37:45 +08:00
c9s
479de002a6
record equity curve 2022-05-11 14:36:18 +08:00
c9s
11d0823782
cmd: refactor back-test command 2022-05-11 13:59:44 +08:00
c9s
6e1f9d6a4e
add backtest exchange to the kline handler function 2022-05-10 19:10:16 +08:00
c9s
5f68064ac6
pull out writeJsonFile function 2022-05-10 18:27:23 +08:00
c9s
6fbb082d5f
support manifest json encoding in backtest report 2022-05-10 14:05:44 +08:00
c9s
7b17b1a757
integrate state recorder 2022-05-10 13:31:23 +08:00
c9s
2ddff59de6
add report header 2022-05-10 01:10:36 +08:00
c9s
f4991dbbfa
fix time printing 2022-05-10 01:09:40 +08:00
c9s
f6d95a49be
print start time and end time 2022-05-10 01:07:30 +08:00
c9s
5b443f0aeb
add start time and end time to the report struct 2022-05-10 01:06:16 +08:00
c9s
6965baa8dd
cmd: add directory error checking 2022-05-09 19:40:49 +08:00
c9s
bff73a3a80
format backtest report session name 2022-05-09 19:27:02 +08:00
c9s
428e208120
cmd: add backtest --session option to make it backward compatible 2022-05-09 19:14:24 +08:00
c9s
0780dafdc3
add IsBackTesting method for checking environment mode 2022-05-09 18:58:09 +08:00
c9s
234932bc0c
add kline dumper 2022-05-09 18:03:03 +08:00
c9s
6f16f32e16
optimize single exchange back-test 2022-05-09 17:03:01 +08:00
zenix
c81af9ce91 fix: binance futures sync issue 2022-05-09 15:04:51 +09:00
c9s
7378c63cb7
cmd: call SaveState and LoadState for normal run 2022-05-05 14:28:42 +08:00
Yo-An Lin
9c08bea065
Fix accounts field 2022-05-03 17:32:10 +08:00
c9s
f2edd24029
add --sync-exchange option to override backtest sync exchanges 2022-05-03 12:12:39 +08:00
c9s
18da434e92 all: use thread-safe GetAccount method to get account 2022-04-23 15:43:11 +08:00
c9s
fd247cf7d7 cmd: add autoborrow to built-in 2022-04-23 15:00:53 +08:00
austin362667
da51d56624 cmd: add built-in factorzoo strategy 2022-04-20 18:10:27 +08:00
zenix
6f04789111 fix: rename packae name 2022-04-14 20:01:13 +09:00
zenix
42a3737f2e fix: use series in ewo to predict values 2022-04-13 21:10:07 +09:00
c9s
12ce854150 grpc: integrate market trade 2022-04-13 11:53:09 +08:00
zenix
d0c3390f84 fix log message to be lowercases 2022-04-11 17:04:56 +09:00
zenix
fac61f27dc feature: add pinescript series interface 2022-04-11 17:04:56 +09:00
c9s
830503941e cmd: fix backtest sync 2022-04-10 00:57:55 +08:00
c9s
e51fb641af backtest: show symbols 2022-04-10 00:57:55 +08:00
Yo-An Lin
4cd646e346
feature: basic grpc server (#514) 2022-04-08 19:21:57 +08:00
Yo-An Lin
fae4f181b5
Merge pull request #485 from zenixls2/feature/backtest_sig
feature: add CancelOrders and CancelOrdersTo to executor
2022-03-16 21:22:32 +08:00
zenix
77a88aabe4 feature: add CancelOrders and CancelOrdersTo to executor 2022-03-16 21:38:09 +09:00
c9s
ed94b8a8d8 remove config flag constraint 2022-03-16 13:52:46 +08:00
c9s
553fe3abf9 remove config flag constrant 2022-03-16 13:51:31 +08:00
c9s
334e3a3940 fix build cmd --config option 2022-03-16 12:26:27 +08:00
c9s
322f31a56a bbgo: improve RecordPosition method 2022-03-14 21:21:58 +08:00
zenix
7e92f0f4e5 fix: remove requirements on config flag 2022-03-11 19:56:59 +09: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
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
da54fbb676 cmd: remove extra config option check 2022-03-03 11:39:28 +08:00
c9s
21ae48c975 cmd: use MarkFlagRequired 2022-03-03 11:36:06 +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
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
zenix
8648528435 fix go fmt, fix convert.go (the legacy fixedpoint implementation) in all tests 2022-02-15 14:55:19 +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
abc1d535d8 fix bollmaker, fix pnl issues 2022-02-15 12:01:39 +09: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
547f4c400a cmd: call BindSync when running strategy 2022-01-27 18:19:25 +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