Commit Graph

1210 Commits

Author SHA1 Message Date
c9s
8cd646668a
bbgo: use enumer to generate enumer parser 2022-09-02 14:16:16 +08:00
c9s
3d32faff46
backtest: add fee mode config 2022-09-02 14:16:15 +08:00
c9s
51972e9e28
bbgo: fix indicator load key duplicate issue 2022-08-31 01:45:06 +08:00
c9s
8fcc3ee368
indicator: update pivot low and pivot high indicator 2022-08-31 01:44:38 +08:00
c9s
179a9b1ddb
fix: ensure that orders.tsv are rendered in local timezone 2022-08-26 19:09:11 +08:00
c9s
17ba1c142d
bbgo: fix support take profit field type 2022-08-26 18:12:42 +08:00
c9s
fb9a4994c0
bbgo: add supportTakeProfit method to the core exit methods 2022-08-26 18:11:45 +08:00
c9s
11854db51a
pivotshort: move SupportTakeProfit to the core api 2022-08-26 18:09:46 +08:00
c9s
a48471d4c8
pivotshort: refactor trend ema and stop ema 2022-08-26 17:52:46 +08:00
c9s
8b7f4c6222
bbgo: add ProtectiveStopLoss doc comment 2022-08-26 17:52:46 +08:00
c9s
09cc91bab8
bbgo: update VWMA and add VWMA to the indicator method 2022-08-24 17:45:43 +08:00
c9s
469c6bfb28
bbgo: move rightWindow to the IntervalWindow struct 2022-08-24 17:43:28 +08:00
c9s
d930065bea
bbgo: move stoch to the simple indicator set 2022-08-24 17:34:19 +08:00
c9s
8a020c34e3
bbgo: add package doc to bbgo 2022-08-24 16:54:31 +08:00
c9s
c86b29e6dc
all: resolve import cycle 2022-08-23 02:12:26 +08:00
zenix
2720ee90b1 fix: equation of exit dump 2022-08-18 17:38:27 +09:00
zenix
5e7ea71613 feature: withdraw print config functionality from drift to be a general function 2022-08-18 17:38:27 +09:00
c9s
df8a4bef93
bbgo: remove unused trade store symbol argument 2022-08-17 16:02:42 +08:00
zenix
da28750313 feature: dump parameter to tg, esp series, fix: order tag, position calculation and bp/sp of drift 2022-08-15 21:05:29 +09:00
zenix
6a4eec71d6 feature: create simpleinteract and remove command in notification 2022-08-15 21:03:48 +09:00
zenix
90e596f463 feature: send photo through telegram, register handler dynamically in strategy, fix canvas rendering 2022-08-15 21:03:14 +09:00
Andy Cheng
62d450b92d
Merge pull request #872 from andycheng123/fix/trailing-stop
fix: trailing stop properly works on both long and short positions
2022-08-11 17:37:07 +08:00
Andy Cheng
8527d4996e trailingstop: add default case 2022-08-11 17:23:42 +08:00
Andy Cheng
8d3dfd17c7 trailingstop: add side both 2022-08-11 16:39:16 +08:00
Andy Cheng
6f2eb1688b generalorderexecutor: retry submit/cancel order once 2022-08-11 13:49:16 +08:00
Andy Cheng
df0e527e1e exits/trailingstop: properly works on both long and short positions 2022-08-11 13:36:31 +08:00
c9s
677b122964
bbgo: use types.KLineWith for roi take profit 2022-08-10 23:45:21 +08:00
Yo-An Lin
62aff676da
Revert "feature: add smart cancel to drift" 2022-08-09 16:25:36 +08:00
Yo-An Lin
55b4edc595
Merge pull request #853 from zenixls2/feature/smartcancel_drift
feature: add smart cancel to drift
2022-08-09 16:23:33 +08:00
Raphanus Lo
ed975b7ed9
Merge pull request #860 from COLDTURNIP/feature/exchange_order_amount_protection
exchange: order fee-amount protection
2022-08-09 15:01:53 +08:00
c9s
0283f2ad55
bbgo: fix doneTrades lock 2022-08-09 14:52:05 +08:00
zenix
45e819ebe7 feature: create simpleinteract and remove command in notification 2022-08-09 13:26:56 +09:00
zenix
4117a83cd1 feature: send photo through telegram, register handler dynamically in strategy, fix canvas rendering 2022-08-09 13:26:56 +09:00
Andy Cheng
ef18791c6a
Merge pull request #865 from andycheng123/fix/protective-stoploss
fix: protectivestoploss not working on long position
2022-08-09 12:15:33 +08:00
c9s
9867aa9c68
bbgo: add mutex protection to tradecollector 2022-08-09 11:37:44 +08:00
c9s
f191d3c091
bbgo: make position object optional for trade collector 2022-08-09 11:36:17 +08:00
c9s
cae8bc2882
bbgo: add mutli symbol support to active order book 2022-08-09 11:36:10 +08:00
Andy Cheng
6c2fc3fee0 exits/protectivestoploss: fix shouldStop() 2022-08-08 17:57:05 +08:00
Andy Cheng
b133767e47 exit/protectivestoploss: works in long position 2022-08-08 16:49:19 +08:00
Raphanus Lo
d76245cb43 exchange: adjust tests for order fee-amount protection 2022-08-02 15:12:14 +08:00
Raphanus Lo
ed7df4ddbe exchange: order fee-amount protection
Reduce the order amount to prevent submit rejection because of balance exceeding.

  submit_amount = original_amount / (1 + fee_rate)

Currently supported only by FTX Pro.
2022-08-02 13:35:24 +08:00
Andy Cheng
4bc70820c4 positionmodifier: move functions into types.Position 2022-07-29 14:40:54 +08:00
Andy Cheng
9588a6f6bd positionupdater: update command flow 2022-07-29 13:45:33 +08:00
Andy Cheng
2724949678 positionupdater: update avaerage cost 2022-07-29 12:05:39 +08:00
Andy Cheng
32b91b67dd positionupdater: update quote position 2022-07-29 12:00:11 +08:00
Andy Cheng
8c53c7e575 positionupdater: update base position 2022-07-29 11:52:20 +08:00
zenix
d46267aff9 feature: use ma for tp coefficient, rewrite trailing stop for drift, export all window param to yaml 2022-07-28 19:34:12 +09:00
c9s
93593ffa06
bbgo: add close position tag log 2022-07-28 10:27:04 +08:00
Yo-An Lin
3aeb6912c9
Merge pull request #846 from c9s/strategy/pivotshort
strategy/pivotshort: refactor breaklow + add fake break stop
2022-07-27 12:18:50 +08:00
c9s
7438798390
bbgo: add ClosedKLineStop trigger 2022-07-27 11:47:12 +08:00
Yo-An Lin
4fd571d712
Merge pull request #813 from zenixls2/feature/drift_study
feature: drift study
2022-07-27 11:29:48 +08:00
c9s
3fbc634d81
bbgo: narrow down indicator interface type 2022-07-27 02:21:25 +08:00
c9s
3959e288fd
all: refactor standard indicator helper and fix tests 2022-07-26 18:35:50 +08:00
c9s
0456cdc7a9
bbgo: add hull to the standard indicator 2022-07-26 18:27:22 +08:00
c9s
808d742efc
bbgo: add CCI helper 2022-07-26 18:07:43 +08:00
c9s
f5e64e8e70
bbgo: add ATR, ATRP, EMV to the standard indicator set 2022-07-26 18:07:43 +08:00
c9s
1d6b1de8ba
bbgo: rename standard indicator receiver name 2022-07-26 18:07:43 +08:00
c9s
46afc54559
bbgo: refactor standard indicator set 2022-07-26 18:07:43 +08:00
c9s
0df321c880
indicator: drop the legacy CalculateAndUpdate for standard indicators 2022-07-26 17:30:41 +08:00
zenix
a5039de6aa feature: add omega ratio, print sharpe/omega/interval profit from trade_stats, use stdev for high/low diff for drift to estimate the variance and improve profit, add yaml marshal for dnum fixedpoint 2022-07-26 18:00:05 +09:00
zenix
f2d37650a5 fix: drift bias on long entry position condition, make cancel faster 2022-07-26 18:00:05 +09:00
zenix
6a9e00ebd4 fix: update drift strategy 2022-07-26 18:00:05 +09:00
c9s
83c8bc819a
all: drop the legacy smart stops 2022-07-26 12:08:47 +08:00
c9s
76def2fe9d
pull out AccountValueCalculator 2022-07-21 19:46:58 +08:00
c9s
763ae1f62f
bbgo: fix missing var 2022-07-21 12:36:26 +08:00
c9s
1079757833
bbgo: bind market data store to market data stream when allocating new instance 2022-07-21 12:35:38 +08:00
c9s
de62d9dd67
bbgo: fix injection 2022-07-21 12:33:29 +08:00
c9s
c78ba6a539
bbgo: fix strategy struct field injection phase 2022-07-21 12:18:09 +08:00
c9s
946fb96b03
bbgo: reformat 2022-07-21 01:32:09 +08:00
c9s
02c978b812
bbgo: remove volatility from the standard indicator set 2022-07-21 01:31:42 +08:00
c9s
9f937f529e
bbgo: refactor standard indicator 2022-07-21 01:05:08 +08:00
c9s
ab83805b34
bbgo: add StrategyShutdown interface 2022-07-19 17:13:35 +08:00
c9s
8af2f2f83f
add defaulter interface 2022-07-19 16:59:56 +08:00
c9s
808ba2fc02
bbgo: make slack-app-token optional 2022-07-19 11:41:49 +08:00
c9s
9302474d51
add 1m subscribe to RoiTakeProfit 2022-07-19 11:00:45 +08:00
c9s
6e4c28ed1b
disable marketTrade stop 2022-07-17 00:59:35 +08:00
c9s
2d0fbe4b99
fix ProtectiveStopLoss subscribe 2022-07-16 14:45:02 +08:00
c9s
2a3118a086
indicator: clean up and update calculator method names 2022-07-14 09:18:42 +08:00
Yo-An Lin
8119afbb44
Merge branch 'main' into strategy/pivotshort 2022-07-12 23:38:23 +08:00
c9s
5bd292d0b2
bbgo: add notify(profit) 2022-07-08 16:43:32 +08:00
c9s
81560746bd
all: reformat code 2022-07-07 02:26:39 +08:00
c9s
3131786c02
bbgo: fix trailing stop binding 2022-07-07 02:26:39 +08:00
c9s
74593720a7
add ExitMethodSet.Bind method 2022-07-07 02:26:39 +08:00
c9s
d2637ce261
trailing stop: apply ClosePosition parameter 2022-07-07 02:26:39 +08:00
c9s
b3e04a68da
bbgo: fix trailing stop binding 2022-07-06 21:50:38 +08:00
c9s
3d9db2786d
add trailing stop to the exit method 2022-07-06 10:56:10 +08:00
c9s
b49f12300c
add long position test for trailing stop
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-07-06 10:54:53 +08:00
c9s
03481000cc
reset activated flag when stop order is submitted
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-07-06 03:09:57 +08:00
c9s
2bc12c0522
add trailing stop and it's test cases with gomock
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-07-06 03:04:01 +08:00
c9s
4de5b0bc9b
add TrailingStop2 2022-07-05 16:10:55 +08:00
c9s
b643b8ed0d
fix LowerShadowTakeProfit kline filter condition 2022-07-05 12:15:31 +08:00
c9s
8ac21fa16e
fix LowerShadowTakeProfit kline filter condition 2022-07-05 12:14:53 +08:00
c9s
193703a9a0
all: use tradeStats constructor 2022-07-05 11:14:50 +08:00
c9s
ecd4df86f9
backtest: assign user data stream to backtest.Exchange before we call EmitStart 2022-07-04 02:21:14 +08:00
c9s
b158c44b95
fix profit stats notification 2022-07-01 17:32:40 +08:00
c9s
1af18a5fac
pivotshort: fix breakLow handle event 2022-07-01 15:30:06 +08:00
c9s
910c17a567
dynamic: implement CallWithMatch for dynamic calls
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-07-01 13:09:30 +08:00
c9s
a4af4776d2
pivotshort: use active orderbook to maintain the resistance orders 2022-07-01 00:57:19 +08:00
c9s
3e6b975c2c
pivotshort: refactor ResistanceShort entry method 2022-06-30 18:29:02 +08:00
c9s
6aa6e57d96
add ema condition to the lower shadow take profit 2022-06-30 17:42:23 +08:00
c9s
b15e8d0ce4
all: refactor exit method set and fix dynamic call/merge
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-30 15:49:18 +08:00
c9s
e2ab363e64
dynamic: add CallStructFieldsMethod for map struct field call
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-30 15:49:18 +08:00
c9s
527070d13d
all: rewrite and clean up graceful shutdown api 2022-06-30 15:49:18 +08:00
c9s
cf0ca70d24
move and rename isSymbolBasedStrategy 2022-06-30 15:49:18 +08:00
c9s
3013eeccc7
move dynamic stuff to the pkg/dynamic package 2022-06-30 15:49:18 +08:00
c9s
a74decc47d
add more test case for reflect 2022-06-30 15:49:18 +08:00
c9s
fa917b0b77
bbgo: implmenet reflectMergeStructFields so that we can merge field values 2022-06-30 15:49:17 +08:00
c9s
84083f56b7
bbgo: add ExchangeSession param to the subscribe method 2022-06-29 15:16:56 +08:00
c9s
cb1c5634a2
pivotshort: remove redundant notification 2022-06-29 15:14:24 +08:00
c9s
fc3e76204a
bbgo: add todo for the reflect Subscribe call 2022-06-29 02:03:00 +08:00
c9s
95c2711b0d
bbgo: call Subscribe method dynamically 2022-06-29 02:02:23 +08:00
c9s
16f2a06b1f
all: move exit methods to the bbgo core
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-29 01:58:15 +08:00
c9s
2784408b8b
add submit order tag 2022-06-27 18:17:57 +08:00
c9s
47677e303f
pivotshort: refactor take profit and stop loss methods
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-26 16:13:58 +08:00
c9s
2e49a95d32
bbgo: remove unused context object
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-25 17:02:53 +08:00
c9s
b25be3d702
add doc comments 2022-06-25 16:55:54 +08:00
c9s
751085f8ff
clean up todo comment 2022-06-24 19:24:49 +08:00
c9s
027f1f01cf
improve callID fallback for persistence 2022-06-22 15:19:30 +08:00
c9s
6ef54bf2fb
call bbgo.Sync to sync persistence 2022-06-22 13:46:03 +08:00
c9s
7c9ad535fd
bbgo: call global persistence facade to sync data 2022-06-21 14:32:43 +08:00
c9s
19d8013f49
bbgo: optimize order cancel for back-testing 2022-06-21 01:12:16 +08:00
c9s
58c819bd75
bbgo: pull out PersistenceServiceFacade to singleton 2022-06-21 01:05:13 +08:00
c9s
b6d1b4309b
refactor and update the support strategy 2022-06-19 15:57:59 +08:00
c9s
cb9ce753e2
strategy/bollmaker: refactor and clean up 2022-06-19 13:40:10 +08:00
c9s
88a63df186
all: clean up notifiability usage 2022-06-19 13:01:22 +08:00
c9s
eacd1f1ae6
all: rewrite notification api
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-19 12:29:36 +08:00
c9s
88e83c944c
pivotshort: clean up log 2022-06-19 11:21:07 +08:00
c9s
6cae9e7449
move GeneralOrderExecutor into bbgo package 2022-06-18 16:31:53 +08:00
c9s
47e76a9eb5
pivotshort: refactor and redesign order executor
Signed-off-by: c9s <yoanlin93@gmail.com>
2022-06-18 12:30:42 +08:00
c9s
0326c34013
pivotshort: pull out GeneralOrderExecutor 2022-06-18 11:45:24 +08:00
Yo-An Lin
24fc5c2baf
Merge pull request #736 from zenixls2/feature/lint_fmt_check
fix: gosimple alert
2022-06-18 02:48:47 +08:00
c9s
ac404b20a5
make default sync simple 2022-06-18 01:42:24 +08:00
zenix
a5ffca7fe8 fix: gosimple alert 2022-06-17 20:19:51 +09:00
zenix
ba1342cbc3 feature: add pre-commit 2022-06-17 16:07:00 +09:00
zenix
55fa4cc8f1 fix: apply gofmt on all files, add revive action 2022-06-17 16:06:59 +09:00
zenix
aa8d188d15 fix: rename useHeikinAshi to heikinAshi in config 2022-06-17 11:38:36 +09:00
zenix
f5007752b2 feature: add heikinashi support 2022-06-17 10:58:32 +09:00
c9s
e7fc12aca7
update symbols doc 2022-06-14 13:32:13 +08:00
c9s
b1873aa19b
support specifying session in sync symbol 2022-06-14 13:02:36 +08:00
c9s
eba6706b92
move FilterSimpleArgs to the util package 2022-06-13 11:20:29 +08:00
c9s
0164cd1c72
fix reflect.Elem call 2022-06-13 11:05:00 +08:00
c9s
e8d25538f6
fix filterSimpleArgs for notification format 2022-06-13 10:37:39 +08:00
c9s
28666d4e98
fix profit pointer check 2022-06-13 10:33:28 +08:00
c9s
9ffefbab03
adjust CancelOrderWaitTime back to 20ms 2022-06-10 02:51:20 +08:00
c9s
e575236db8
pivotshort: adjust shadow ratio calculation 2022-06-10 01:21:59 +08:00
c9s
aa2ba265f1
pivotshort: refactor and add more fix 2022-06-09 17:36:22 +08:00
c9s
8d3f487d0d
reduce order cancel wait time to 10ms 2022-06-09 15:49:34 +08:00
c9s
b731405658
add fixedpoint.Value to simple types 2022-06-09 15:49:13 +08:00
c9s
fc0457cefe
fix notify args filtering 2022-06-09 12:34:23 +08:00
c9s
f3a7428b48
add stringer method for deposit struct 2022-06-08 17:32:42 +08:00
c9s
1f927d5162
use the same time object for 'now' 2022-06-08 14:37:03 +08:00
c9s
09912b3fc3
environment: avoid setting UTC on time object 2022-06-08 14:36:26 +08:00
Yo-An Lin
4fdee25a96
Merge pull request #691 from c9s/fix/sync-time
fix: fix sync since time field check
2022-06-08 13:04:39 +08:00
c9s
fb5fc02bdf
fix since time field check 2022-06-08 12:54:48 +08:00
zenix
7a045a48d4 fix: drift window in factorzoo, order_execution print order, refactor: use defer to mu.Unlock in depth/buffer.go 2022-06-08 12:14:53 +09:00
c9s
dc0cb30b23
fix order submit message format 2022-06-07 20:26:33 +08:00
Andy Cheng
57aab937b3 interact: update test 2022-06-07 10:45:55 +08:00
Andy Cheng
9a086d2855 interact: use instance ID as signature 2022-06-07 10:40:15 +08:00
Andy Cheng
58ec38d811 interact: update interact test 2022-06-06 17:43:25 +08:00
Andy Cheng
8410b1cc33 interact: update interact test 2022-06-06 17:34:39 +08:00
Andy Cheng
1f79e236ad interact: revert to id = strategy.ID() 2022-06-06 16:20:06 +08:00
Andy Cheng
3d9994706b interact: fix missing make() 2022-06-06 15:36:09 +08:00
c9s
625bd0c5e4
fix order executor formatting 2022-06-06 07:23:16 +08:00
c9s
b209d94a9c
rename active order book constructor function 2022-06-06 06:57:25 +08:00
c9s
80d9c8a3be
update activeorderbook callback file 2022-06-06 06:03:49 +08:00
c9s
3786fc64f1
rename LocalActiveOrderBook to just ActiveOrderBook 2022-06-06 05:43:38 +08:00
c9s
1d340256ea
fix and simplify LocalActiveOrderBook 2022-06-05 18:12:26 +08:00
c9s
c20e3fee4b
fix persistence unmarshalling issue 2022-06-05 01:48:56 +08:00
c9s
221a2d9dc7
fix persistence: calling type method on z zero value 2022-06-05 01:09:31 +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
3428aeba03
apply default exchange fee rate
fixes #566
2022-06-03 03:24:34 +08:00
c9s
68d6e9e850
service: fix state loading (use correct ID method) 2022-06-03 03:10:50 +08:00
c9s
f7cdaff925
persistence: add store and load test case 2022-06-03 02:49:16 +08:00
c9s
55e9c7ee25
add more test on Test_loadPersistenceFields 2022-06-03 01:57:39 +08:00
c9s
0b6f7270ff
fix: drop IsZero 2022-06-03 01:15:08 +08:00
c9s
d27fee57ad
fix: do not load all trades into memory 2022-06-02 20:02:32 +08:00
zenix
5faab1d55c fix: change from local timezone to UTC when do syncing 2022-06-02 17:12:17 +09:00
Yo-An Lin
38a6d8c813
Merge pull request #652 from c9s/refactor/sync
refactor/fix: withdraw sync
2022-06-02 14:03:54 +08:00
c9s
5d98674ab5
fix withdraw sync and improve withdraw string format 2022-06-02 13:56:24 +08:00
Yo-An Lin
47098b08dd
Merge pull request #650 from austin362667/fix/persistence
Fix: Persistence Reflect IsZero
2022-06-02 02:32:36 +08:00
c9s
78f9c7d569
improve autoborrow checks 2022-06-02 01:27:04 +08:00
austin362667
f9bb2ae149 bbgo: fix persistence reflect IsZero check 2022-06-01 21:57:35 +08:00
c9s
cf19ed6f26
refactor environment sync method 2022-06-01 19:40:29 +08:00
c9s
f4e7f4f6f6
add margin history entry in config 2022-06-01 19:40:29 +08:00
c9s
13bf5d69a3
use types.Interval instead of string 2022-05-19 10:04:03 +08:00
c9s
b5f9f86944
define DefaultBacktestAccount 2022-05-17 18:45:06 +08:00
c9s
6c0165afe4
add report index file 2022-05-17 18:10:37 +08:00
zenix
71fe6c2d26 feature: SLTP from bookticker. fix: bookTicker typename, depth buffer error message 2022-05-12 19:43:04 +09:00
c9s
11d0823782
cmd: refactor back-test command 2022-05-11 13:59:44 +08:00
c9s
5f68064ac6
pull out writeJsonFile function 2022-05-10 18:27:23 +08:00
c9s
7b17b1a757
integrate state recorder 2022-05-10 13:31:23 +08:00
c9s
0780dafdc3
add IsBackTesting method for checking environment mode 2022-05-09 18:58:09 +08:00
c9s
82c7c024ce
bbgo: add persistence Sync api 2022-05-05 18:18:38 +08:00
c9s
f3691489dd
add state key as the prefix 2022-05-05 18:18:38 +08:00
c9s
7378c63cb7
cmd: call SaveState and LoadState for normal run 2022-05-05 14:28:42 +08:00
c9s
57c43936d6
ignore service.ErrPersistenceNotExists error 2022-05-05 14:04:44 +08:00
c9s
57a9647401
add more test case and simplify return stmt 2022-05-05 13:16:46 +08:00
c9s
4cf1f0a91a
add func type StructFieldIterator 2022-05-05 13:06:02 +08:00
c9s
30c85d2969
pull out callID method call 2022-05-05 13:05:01 +08:00
c9s
21f81dec29
implement reflect-based persistence restore and load 2022-05-05 12:53:48 +08:00
c9s
18eab1fbd3
move graceful shutdown to a single file 2022-05-05 09:56:21 +08:00
c9s
36c764efa9
refactor balance, asset and remove price cache check 2022-05-04 17:17:09 +08:00
c9s
450517d159
bbgo: do not write trade when writing position 2022-05-04 16:21:53 +08:00
c9s
0e417f6f71
xnav: rename assets to allAssets 2022-05-04 16:21:53 +08:00
c9s
8a93f0921f
add more margin info columns 2022-05-04 14:40:52 +08:00
c9s
95f7d85183
bbgo: pass price time into the asset conversion function 2022-05-04 14:23:46 +08:00
c9s
2c70509ee8
add recordAsset method 2022-05-03 19:26:52 +08:00
c9s
946bbdbca3
backtest: rename backtest.account to backtest.accounts 2022-05-03 12:18:40 +08:00
c9s
fa2eb87268
fix: sync can be nil 2022-05-02 11:55:40 +08:00
c9s
2bdcf2266d
fix default sync logic 2022-05-02 10:39:59 +08:00
c9s
486cf50a9c bbgo: fix init band width setup 2022-05-01 01:12:57 +08:00
c9s
044470377b
avoid using the iterator variable 2022-04-27 17:13:58 +08:00
c9s
1c1fbb1633
bbgo: document strategy id and pnl field 2022-04-27 13:30:07 +08:00
c9s
5edaa9708c
bbgo: fix margin order/trade sync 2022-04-27 13:25:42 +08:00
Andy Cheng
8c353421d8 interact: Remove status from strategy signature 2022-04-26 21:05:26 +08:00
Andy Cheng
1a13826505 interact: refactor generateStrategyButtonsForm() 2022-04-26 19:11:50 +08:00
Andy Cheng
eb1beb05d1 interact: rename functions to private functions 2022-04-26 18:32:41 +08:00
Andy Cheng
6b62f27155 feature: make callback vars start with lowercase 2022-04-26 18:29:22 +08:00
Andy Cheng
61b6755518 interact: GetStrategySignatures() returns map[string]SingleExchangeStrategy instead of slice of strategy signatures 2022-04-26 18:29:22 +08:00
Andy Cheng
f6ec931bed feature: use callbackgen 2022-04-26 18:29:22 +08:00
Andy Cheng
cbf6bf78bc feature: make FilterStrategyByInterface a simple function 2022-04-26 18:29:22 +08:00
Andy Cheng
ecc63f743f feature: split strategy controller interface into several smaller ones 2022-04-26 18:29:21 +08:00
Andy Cheng
64766c48f3 feature: revert position closer and position reader back 2022-04-26 18:29:21 +08:00
Andy Cheng
78a8c2aaaf feature: mix embeded struct and callback in strategy controller 2022-04-26 18:29:21 +08:00
Andy Cheng
57fdc9b120 feature: adapt new strategy controller in support strategy 2022-04-26 18:29:21 +08:00
Andy Cheng
6228cddbec feature: adapt new strategy controller in interact 2022-04-26 18:29:21 +08:00
Andy Cheng
bb2bce4721 feature: strategy controller 2022-04-26 18:29:21 +08:00
Andy Cheng
85ffe9a2de feature: prototype of strategy controller struct 2022-04-26 18:29:21 +08:00
Andy Cheng
73c2c84cab feature: prototype of strategy controller struct 2022-04-26 18:29:21 +08:00
Andy Cheng
5799709e3e pkg: add empty strategy controller file 2022-04-26 18:29:21 +08:00
c9s
2732fb413f
bbgo: remove slack debug option 2022-04-25 18:56:19 +08:00
c9s
a57a238e09
bbgo: add more sync options 2022-04-25 17:18:42 +08:00
c9s
fae3b6a215
fix BOLL method 2022-04-25 15:31:12 +08:00
Yo-An Lin
b94b9e1b73
Merge pull request #437 from jessy1092/enhance-boll-indicator
indicator: Support difference bandwidth on boll indicator and can dynamic create BOLL
2022-04-25 13:43:02 +08:00
c9s
18da434e92 all: use thread-safe GetAccount method to get account 2022-04-23 15:43:11 +08:00
c9s
c70317af2b add autoborrow strategy 2022-04-23 15:00:04 +08:00
c9s
cf055c3f7d bbgo: improve account updating 2022-04-23 12:51:07 +08:00
c9s
9e48a850bd bbgo: call queryAccount to update account 2022-04-23 12:51:07 +08:00
c9s
ad373b95a7 add FLUSH_OTP_KEY env for flushing otp key 2022-04-17 00:35:16 +08:00
c9s
63f525970f auth: store otp key url instead of just secret 2022-04-17 00:18:48 +08:00
zenix
2a942eab0e fix: rename EVWMP to VWEMP, fix backtesting fee 2022-04-15 19:12:11 +09:00
zenix
af61952e40 fix: series not been updated 2022-04-11 17:04:56 +09:00
なるみ
4e2faacbae Mkdir if dir not exists 2022-04-07 20:21:07 +08:00
Andy Cheng
3a6f34330b
interact: refactor 2022-03-28 15:16:11 +08:00
Andy Cheng
63e8850cc3
interact: separate strategy filtering and button generation 2022-03-28 12:37:42 +08:00
Andy Cheng
ee6377ab87
interact: fix misuse of cycle() 2022-03-28 11:58:01 +08:00
Yo-An Lin
1a29bc7362
Merge pull request #492 from andycheng123/tg-control
feature: strategy controller
2022-03-26 15:41:59 +08:00
Andy Cheng
0974b1c7fd
interact: pull out the interaction related code to the caller 2022-03-23 12:05:35 +08:00
Yo-An Lin
ae4a3d81fb
Merge pull request #489 from zenixls2/feature/market_trade
feature: add market trade subscription in binance
2022-03-22 20:18:39 +08:00
Andy Cheng
5eef2a2085
interact: pull out interface filter as a function 2022-03-21 17:49:18 +08:00
Andy Cheng
f4c87e5d75
interact: refactor strategy controller related interfaces 2022-03-21 16:19:55 +08:00
Andy Cheng
fb8b79f38d
interact: rename GetStrategyStatus() to GetStatus() 2022-03-21 16:12:23 +08:00
Andy Cheng
ffd5c646e9
interact: refactor interface func name 2022-03-21 15:08:15 +08:00
Andy Cheng
962645c2c8
interact: Pull out EmergencyStop to a single instance 2022-03-21 15:05:24 +08:00
Andy Cheng
5f7710103d
type: add StrategyStatus type 2022-03-21 15:01:15 +08:00
Andy Cheng
69a02f1664
interact: add EmergencyStop() to StrategyController interface 2022-03-21 11:42:54 +08:00
Andy Cheng
b6aff9674c
strategy: add StrategyController functions to support strategy 2022-03-21 10:20:12 +08:00
Andy Cheng
5de137ced8
interact: add StrategyController interface to control strategies from telegram bot 2022-03-18 18:43:07 +08:00
zenix
efec21ca4b feature: add market trade subscription in binance 2022-03-18 18:30:39 +09:00
c9s
f85db9be61 improve asset summary layout and format 2022-03-18 17:13:37 +08:00
zenix
77a88aabe4 feature: add CancelOrders and CancelOrdersTo to executor 2022-03-16 21:38:09 +09:00
c9s
fdf64fd891 bbgo: fix emit trade profit 2022-03-15 14:29:15 +08:00
c9s
19f01bbca6 add doc comment 2022-03-14 21:21:58 +08:00
c9s
5567ef5676 fix emit trade 2022-03-14 21:21:58 +08:00
c9s
5db4e11167 rewrite trade profit handling 2022-03-14 21:21:58 +08:00
c9s
6fec30d79c call record position on trade 2022-03-14 21:21:58 +08:00
c9s
322f31a56a bbgo: improve RecordPosition method 2022-03-14 21:21:58 +08:00
c9s
5732555c2c doc: update sync configuration doc 2022-03-14 21:21:58 +08:00
c9s
08ae53ba16 bbgo: assign strategy instance id fields automatically 2022-03-14 21:21:58 +08:00
c9s
6088f7b542 bbgo: add RecordPosition method 2022-03-14 21:21:58 +08:00
c9s
9faaed6892 bbgo: initialize position service 2022-03-14 21:21:58 +08:00
c9s
b1559bcbe3 fix persistence injection 2022-03-14 21:21:43 +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
zenix
39572c5fe0 fix: remove maker/buyer/taker/sellerCommission 2022-03-07 14:32:00 +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
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
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
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
9e0df77a36 move profit struct into the types package 2022-03-04 16:39:48 +08: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
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
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
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
Andy Cheng
66b042fea7
strategy: trailing stop TP for support strategy 2022-02-06 17:47:11 +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
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
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
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
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
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
c9s
cfc17acd20 config: use looseFormatTime type for since field 2022-01-27 00:24:19 +08:00
c9s
a29198f733 bbgo: fix LooseFormatTime.UnmarshalYAML 2022-01-25 01:18:56 +08:00
c9s
007207e24f all: use types.LooseFormatTime to parse loose format date time string 2022-01-25 00:24:12 +08:00
c9s
5f7676f0c1 bbgo: add sync config 2022-01-25 00:06:25 +08:00
c9s
407a533659 use the standard generated comment
https://github.com/golang/go/issues/13560

Generated files are marked by a line of text that matches the regular
expression, in Go syntax:

    ^// Code generated .* DO NOT EDIT\.$ The .*

means the tool can put whatever folderol it wants in there, but the
comment must be a single line and must start with Code generated and end
with DO NOT EDIT., with a period.
2022-01-23 14:57:45 +08:00
c9s
1f18c36870 cmd: improve build command 2022-01-23 14:44:17 +08:00
c9s
7b572120a1 interact: use RemoveKeyboard from interact.KeyboardController 2022-01-23 14:13:47 +08:00
c9s
01afe9c14e interact: fix telegram session restore 2022-01-23 02:21:26 +08:00
c9s
0af5fc0530 interact: add RequireTextInput method to Reply interface 2022-01-23 02:21:26 +08:00
c9s
f5f8f15670 slack: add reply and session struct 2022-01-23 02:21:26 +08:00
c9s
ad3f038dc6 bbgo: improve otp key layout 2022-01-23 02:21:26 +08:00
c9s
c7f15efb23 interact: add Slack interaction 2022-01-23 02:21:26 +08:00
Kakashi Liu
cd85edd64d Fix: fallback to memory persistence if redis not found
resolve #438
Fix bollmaker backtest error
2022-01-22 00:55:03 +08:00
c9s
0b8e5852eb check persistence error 2022-01-19 18:29:24 +08:00
Yo-An Lin
0e0525be99
Merge pull request #418 from austin362667/refactor/futures-account
binance: add futures exchange api queries
2022-01-17 20:54:49 +08:00
c9s
5c0e3a1254 bollmaker: add shadow protection config 2022-01-16 04:40:50 +08:00
c9s
71e660571d bbgo: optimize LocalActiveOrderBook for back-testing speed 2022-01-16 01:34:28 +08:00
c9s
5d54e6fded interact: skip total == 0 balance 2022-01-16 01:06:47 +08:00
c9s
b80f481e7d interact: fix interact tests for session 2022-01-16 00:50:43 +08:00
c9s
b49fc182dc fix telegram session persistence 2022-01-16 00:39:24 +08:00
c9s
2088234b44 interact: separate telegram user sessions 2022-01-16 00:25:11 +08:00
austin362667
91d2312c5c cache: refactor moving from bbgo to pkg/cache 2022-01-15 08:28:02 +08:00
Lee
266400d925 indicator: Support difference bandwidth on boll indicator and can dynamic create BOLL 2022-01-15 05:30:06 +08:00
c9s
5f942e85ed bbgo: show position with plaintext mode instead of string format 2022-01-15 03:13:30 +08:00
c9s
1c7d4d09cf interact: add Cycle state builder 2022-01-15 03:06:36 +08:00
c9s
2a6b821908 bbgo: implement /position command 2022-01-15 02:58:55 +08:00
c9s
93722e6db3 implement position closer interaction 2022-01-15 02:52:46 +08:00
c9s
255ee40c98 bbgo: when calling order cancel we should use background context 2022-01-15 00:49:27 +08:00
c9s
77e92d544a bbgo: pull out interaction setup 2022-01-15 00:32:21 +08:00
c9s
e385d96709 bbgo: move authToken loader 2022-01-15 00:29:35 +08:00
c9s
3a13025d58 bbgo: change default notification rule -- silent order updates 2022-01-15 00:25:16 +08:00
c9s
d5f3946ada bbgo: refactor the current auth with interact 2022-01-15 00:18:07 +08:00
c9s
51ecac54e7 bbgo: fix local active book graceful cancel 2022-01-15 00:17:52 +08:00
c9s
41b94c5c7e interact: refactor telegram interaction 2022-01-14 15:03:19 +08:00
c9s
fdf7ad9648 bbgo: rename auth function for general case 2022-01-14 13:41:43 +08:00
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