Commit Graph

711 Commits

Author SHA1 Message Date
c9s
82c7c024ce
bbgo: add persistence Sync api 2022-05-05 18:18:38 +08:00
c9s
6635fd749d
xmaker: migrate xmaker persistence 2022-05-05 15:05:38 +08:00
c9s
10a7928580
extract NewProfitStats method 2022-05-05 14:48:50 +08:00
c9s
c3db85443e
bollmaker: add Deprecated note 2022-05-05 14:47:06 +08:00
c9s
3140b7e2ef
bollmaker: remove unnecessary log 2022-05-05 14:41:11 +08:00
c9s
019e6a2a88
improve legacy state handling and move fnv 2022-05-05 14:39:29 +08:00
c9s
21f81dec29
implement reflect-based persistence restore and load 2022-05-05 12:53:48 +08:00
c9s
58e8da914e
bollmaker: migrating state.position to strategy.position 2022-05-05 09:54:50 +08:00
c9s
36c764efa9
refactor balance, asset and remove price cache check 2022-05-04 17:17:09 +08:00
c9s
0e417f6f71
xnav: rename assets to allAssets 2022-05-04 16:21:53 +08:00
c9s
0061a5910b
use the same price time 2022-05-04 16:21:53 +08:00
c9s
754d10c3d0
use interval instead of duration 2022-05-04 16:21:53 +08:00
c9s
d78e0c607a
xnav: pass session to the record assets method call 2022-05-04 16:21:53 +08:00
c9s
5cd7e61006
xnav: support asset recording 2022-05-04 14:23:46 +08:00
zenix
4eab82ee7b feature: add atr stoploss on ewoDgtrd strategy. remove callback. modify filter condition and add doc 2022-04-28 20:09:15 +09:00
Andy Cheng
7326a1b21d strategy: fix wrong string formatting syntax 2022-04-26 18:29:22 +08:00
Andy Cheng
7b3e369766 feature: use LocalActiveOrderBook for cancelling open orders for strategy controller in support strategy 2022-04-26 18:29:22 +08:00
Andy Cheng
26a5114182 feature: adapt callbackgen style strategy controller in support strategy 2022-04-26 18:29:22 +08:00
Andy Cheng
cf8603e30b feature: use NewFromFloat 2022-04-26 18:29:22 +08:00
Andy Cheng
324c7ea432 feature: logging with strategy symbol 2022-04-26 18:29:22 +08:00
Andy Cheng
389752161d feature: adapt new strategy controller in support strategy 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
c9s
109fdd6511
aggregate totalBorrowed 2022-04-26 16:13:07 +08:00
c9s
16227cea2f
autoborrow: call tryToRepayAnyDebt when margin level is low 2022-04-26 15:44:13 +08:00
c9s
b97588f153
autoborrow: fix max total borrow condition 2022-04-26 15:33:01 +08:00
c9s
069db1d0cb
replace margin ratio with margin level 2022-04-25 19:15:47 +08:00
c9s
333378a52a
autoborrow: change debugf to infof 2022-04-25 19:10:22 +08:00
c9s
7b2398ce39
autoborrow: use margin level instead of margin ratio 2022-04-25 19:05:16 +08:00
c9s
638d839975
autoborrow: add more logs and warning color for slack message 2022-04-25 18:46:23 +08:00
c9s
a30aac6653
autoborrow: add slack notification 2022-04-25 18:12:08 +08:00
c9s
2290d132b1
autoborrow: assign s.ExchangeSession 2022-04-25 17:54:16 +08:00
c9s
a2553ee020
autoborrow: call check and borrow 2022-04-25 17:45:16 +08:00
c9s
18da434e92 all: use thread-safe GetAccount method to get account 2022-04-23 15:43:11 +08:00
c9s
5c2274c55c put sign check back 2022-04-23 15:27:28 +08:00
c9s
7b66d36f15 autoborrow: remove extra sign check 2022-04-23 15:27:28 +08:00
c9s
743ad0455f add autoborrow strategy 2022-04-23 15:27:28 +08:00
c9s
c70317af2b add autoborrow strategy 2022-04-23 15:00:04 +08:00
austin362667
1163b89807 factorzoo: fix correlation 2022-04-20 18:10:27 +08:00
austin362667
71a032a29b factorzoo: clean up
factorzoo: clean up

factorzoo: clean up
2022-04-20 18:10:27 +08:00
austin362667
fdbb2be45c factorzoo: add cross-sectional factors model strategy 2022-04-20 18:10:27 +08:00
austin362667
a1fa23121d factorzoo: add correlation indicator 2022-04-20 18:10:27 +08:00
zenix
2a942eab0e fix: rename EVWMP to VWEMP, fix backtesting fee 2022-04-15 19:12:11 +09:00
Yo-An Lin
d6755d7ca0
Merge pull request #512 from zenixls2/feature/elliott_wave
strategy: elliott wave oscillator
2022-04-15 15:53:24 +08:00
Andy Cheng
07c30f82af
strategy: add StrategyController to bollmaker 2022-04-15 15:38:40 +08:00
c9s
f91132f35c bollmaker: avoid using time in force in maker order 2022-04-15 11:40:43 +08:00
zenix
6f04789111 fix: rename packae name 2022-04-14 20:01:13 +09:00
zenix
4ee73149c1 feature: add heikinashi 2022-04-14 19:58:05 +09:00
zenix
2f51441256 fix: remove smartstop. use dynamic stoploss. improve profit and lower the lost 2022-04-13 21:10:07 +09:00
zenix
a0e218a5c6 use trailingstop 2022-04-13 21:10:07 +09:00
zenix
fcf29f7e11 fix: doing some performance tuning 2022-04-13 21:10:07 +09:00
zenix
0fe14c5fe5 feature: post orders for ewo 2022-04-13 21:10:07 +09:00
zenix
42a3737f2e fix: use series in ewo to predict values 2022-04-13 21:10:07 +09:00
zenix
017dd4175a feature: implement Elliott Wave Oscilla 2022-04-13 21:10:07 +09:00
なるみ
859933d4ed Avoid to use map[string]fixedpoint.Value 2022-04-11 23:26:05 +08:00
Andy Cheng
854a364b38
strategy: use fixedpoint.Zero instead 2022-04-10 00:03:37 +08:00
Andy Cheng
ceccba43f9
strategy: re-submit trailing stop order if previous one failed 2022-04-08 18:46:41 +08:00
Andy Cheng
d94e8e3826
strategy: check trailing stop order creation success 2022-04-08 18:41:19 +08:00
Andy Cheng
f9052f3397
strategy: fix load CurrentHighestPrice bug 2022-04-08 18:35:02 +08:00
Yo-An Lin
6c20ec3c85
Merge pull request #499 from austin362667/strategy/bollmaker
strategy: add bollmaker futures support
2022-04-07 10:11:41 +08:00
Yo-An Lin
ed0384c85a
Merge pull request #501 from andycheng123/fix-support
strategy: fix wrong support condition
2022-04-06 18:57:39 +08:00
Andy Cheng
75f3e33543
strategy: use stop limit due to sop market unsupported by binance 2022-04-02 21:32:40 +08:00
Andy Cheng
8f4ba971f1
strategy: fix typo 2022-04-02 21:27:52 +08:00
Andy Cheng
c2747ca9e4
strategy: remove TimeInForce when sending trailing stop order 2022-04-02 21:19:47 +08:00
Andy Cheng
861fd84fd4
strategy: use stop market to tp instead of stop limit 2022-03-31 11:10:53 +08:00
Andy Cheng
8782104f1a
strategy: remove unnecessary notification 2022-03-30 16:46:42 +08:00
なるみ
8881b9e105
Fix package name 2022-03-29 21:51:50 +08:00
Andy Cheng
934e4aa69f
strategy: fix wrong support condition 2022-03-29 11:46:01 +08:00
austin362667
a8484046d3 bollmaker: add TimeInForce for futures limit order support 2022-03-28 21:12:45 +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
なるみ
83e37f52a8 Rebalance on kline closed 2022-03-24 12:50:40 +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
5f7710103d
type: add StrategyStatus type 2022-03-21 15:01:15 +08:00
Andy Cheng
ce6efd9333
strategy: add EmergencyStop() to support strategy 2022-03-21 11:51:12 +08:00
Andy Cheng
b6aff9674c
strategy: add StrategyController functions to support strategy 2022-03-21 10:20:12 +08: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
Yo-An Lin
00b8f7d6b7
Merge pull request #479 from andycheng123/position-closer
strategy: add PositionCloser function for support strategy
2022-03-15 21:59:21 +08:00
zenix
d6995e40ff fix: submit order on userDataStream == nil 2022-03-15 20:51:15 +09:00
Andy Cheng
72a6877094
strategy: add PositionCloser function for support strategy 2022-03-15 19:19:44 +08:00
Yo-An Lin
ab447a152f
Merge pull request #475 from andycheng123/fix-support
fix support strategy
2022-03-15 16:50:03 +08:00
Andy Cheng
231085d507
strategy: add PositionReader function for support strategy 2022-03-15 16:46:27 +08:00
Andy Cheng
b94096cb2e
strategy: cache orders.IDs() in orderIds 2022-03-15 16:44:43 +08:00
c9s
4b89f4a48b bollmaker: fix profit stats notification 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
d67b800e7e use RecordPosition 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
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
a9f9fa8fed bollmaker: add Environment field and Market field for injection 2022-03-05 12:40:56 +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
9e0df77a36 move profit struct into the types package 2022-03-04 16:39:48 +08:00
c9s
0c09e6b32a use global timeInForce type 2022-02-18 13:52:13 +08:00
zenix
ced2afaed8 fix: remove backup file in schedule strategy 2022-02-16 18:32:02 +09:00
zenix
a3a262783f fix: set backtest cancel Delta to be 1e-11 2022-02-15 18:59:10 +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
cdba7924b4 fix backtest panic when cancel fail on the last order 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
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
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
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
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
e1fc0e7b8d bollmaker: remove redundant log and fix return 2022-01-30 02:00:42 +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
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
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
49f671ef54 add PercentageScale and its tests 2022-01-27 01:40:54 +08:00
c9s
e82379a668 bollmaker: add QuantityOrAmount struct 2022-01-27 01:10:39 +08:00
c9s
9bdc05b69c strategy/grid: use background context for canceling orders 2022-01-19 18:26:57 +08:00
c9s
9953a30717 xgap: fix subscribe interval 2022-01-19 13:08:50 +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
a68ad20ddc bollmaker: add shadow protection 2022-01-16 04:06:19 +08:00
c9s
1e370ff244 bollmaker: collect trades before we shutdown 2022-01-16 01:27:28 +08:00
c9s
898204f5fa bollmaker: adjust quantity to met the min notional condition before we submit 2022-01-16 01:15:34 +08:00
c9s
fd4a3bb000 bollmaker: remove unused cancelOrders function 2022-01-16 01:08:50 +08:00
austin362667
904e7c03ad strategy: cleanup funding strategy
strategy: cleanup funding strategy
2022-01-15 08:28:02 +08:00
austin362667
d0e26c66e4 strategy: add funding strategy 2022-01-15 08:28:02 +08:00
c9s
93722e6db3 implement position closer interaction 2022-01-15 02:52:46 +08:00
c9s
317d8e9d49 xgap: add minSpread option 2022-01-14 12:49:46 +08:00
Yo-An Lin
e797e597b1
Merge pull request #435 from jessy1092/fix/correct-bollmaker-params
fix: Correct uptrendSkew and downtrendSkew parameters setting on bollmaker strategy
2022-01-14 12:18:18 +08:00
c9s
eef14fa950 xgap: add jitter 2022-01-14 12:03:29 +08:00
c9s
1f6076ae18 plus a quantity jitter 2022-01-14 11:59:40 +08:00
Lee
965fc6989d fix: Correct uptrendSkew and downtrendSkew parameters setting on bollmaker strategy 2022-01-13 23:06:23 +08:00
c9s
dc6d60216b types: fix order book copy 2022-01-13 11:09:50 +08:00
c9s
98247385f9 xmaker: use GracefulCancel to cancel active orders 2022-01-13 11:01:46 +08:00
c9s
5cc3a88911 xmaker: show order book last update time 2022-01-12 22:11:28 +08:00
c9s
c3356fa694 types: add test for PriceHeartBeat 2022-01-12 14:42:11 +08:00
c9s
5755c44845 move PriceHeartBeat to types 2022-01-12 14:33:55 +08:00
c9s
420e221f5b xmaker: pull out PriceHeartBeat 2022-01-12 12:14:51 +08:00
c9s
7195c6ed27 xmaker: add price quoting protection 2022-01-12 11:55:45 +08:00
c9s
940c675cae xmaker: add rate limit hit alert 2022-01-11 22:48:28 +08:00
c9s
081a143ec0 xmaker: add DepthQuantity 2022-01-11 22:47:40 +08:00
c9s
70dec09f26 xmaker: fix minQuantity buffer 2022-01-10 23:17:19 +08:00
c9s
b26141ac1f support: set default s.triggerEMA 2022-01-10 13:51:14 +08:00
c9s
b56e988fc9 support: fix triggerEMA check 2022-01-10 13:49:36 +08:00
c9s
3907f99e70 xmaker: keep rate reservation token 2022-01-10 12:25:13 +08:00
c9s
1b27c4e9c4 remove hedge error limiter 2022-01-09 23:45:46 +08:00
c9s
9ca4e23aaf add strategy documentation 2022-01-09 22:43:49 +08:00
c9s
bba4e86fdf bollmaker: adjust default skew parameter 2022-01-09 22:37:27 +08:00
c9s
b98777afe4 bollmaker: pull out skew options 2022-01-09 22:32:23 +08:00
c9s
d94cc2df31 bbgo: add recover callbacks to trace collector 2022-01-09 15:39:59 +08:00
c9s
6ce8edba7d xmaker: add error rate limiter 2022-01-09 11:33:34 +08:00
c9s
471a1b2baa xmaker: adjust minimal quantity and minimal notional threshold 2022-01-09 10:18:31 +08:00
c9s
cd340bd596 bollmaker: check s.MaxExposurePosition 2022-01-09 03:03:54 +08:00
c9s
0cec652f38 bollmaker: skip submitOrder calls if submitOrders is empty 2022-01-09 02:35:12 +08:00
c9s
656ef942e4 bollmaker: add disable short option 2022-01-09 02:24:10 +08:00
c9s
4df5847647 bollmaker: add quantity scaling for closing position 2022-01-09 01:57:51 +08:00
c9s
4cdb5b607b rename bollpp to bollmaker 2022-01-09 01:20:47 +08:00
c9s
7e2acdc416 all: add lock protected GetBase method for Position 2022-01-09 00:35:45 +08:00
c9s
9b92c8948d xmaker: fix quantity truncation and add check for min quantity n min notional 2022-01-09 00:30:18 +08:00
c9s
cb189d885c fix backtest for limit maker order and bollpp strategy 2022-01-08 02:18:44 +08:00
c9s
f4ebae17bb xmaker: when recover the trade, notify 2022-01-07 13:13:57 +08:00
c9s
a49d001c29 xmaker: add trade scanner 2022-01-07 01:03:12 +08:00
c9s
41574a2390 xmaker: use millisecond jitter from the util package 2022-01-07 00:14:24 +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
1d5406ef21 xmaker: always update maker market 2022-01-06 23:27:06 +08:00
c9s
c8bf85f4e2 xmaker: improve pips 2022-01-05 11:34:07 +08:00
c9s
e997220321 xmaker: fix ask pips 2022-01-05 11:32:56 +08:00
c9s
6ff24e713e xmaker: fix notification format 2022-01-01 01:34:48 +08:00
c9s
6055f90680 xmaker: add cover and uncover logs 2021-12-31 15:26:51 +08:00
c9s
1116fc1de1 session: print klines only when debug-kline is enabled 2021-12-31 15:13:26 +08:00
c9s
899e8d2d58 Revert "xmaker: fix s.state.CoveredPosition.AtomicAdd add"
This reverts commit 5999dc1151.
2021-12-31 14:23:02 +08:00
c9s
5999dc1151 xmaker: fix s.state.CoveredPosition.AtomicAdd add 2021-12-31 02:00:39 +08:00