Commit Graph

2364 Commits

Author SHA1 Message Date
Andy Cheng
34465fac89
Merge pull request #653 from andycheng123/strategy/supertrend
strategy: add supertrend strategy
2022-06-07 16:25:49 +08:00
Andy Cheng
ee26d6ce34 strategy: Persistence.Sync() after position change 2022-06-07 16:04:40 +08:00
Yo-An Lin
037f2949bd
Merge pull request #678 from andycheng123/fix/interact
interact: fix missing make()
2022-06-07 12:31:53 +08:00
c9s
32837d85a0
fix fmaker 2022-06-07 12:31:06 +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
Andy Cheng
8410b1cc33 interact: update interact test 2022-06-06 17:34:39 +08:00
c9s
b209d94a9c
rename active order book constructor function 2022-06-06 06:57:25 +08:00
c9s
4dafa32e97
strategy: should always handle trade even if the strategy status is not running 2022-06-06 06:56:44 +08:00
c9s
3786fc64f1
rename LocalActiveOrderBook to just ActiveOrderBook 2022-06-06 05:43:38 +08:00
c9s
1e27caa5e2
flashcrash: update local active book usage 2022-06-05 21:45:43 +08:00
c9s
1d340256ea
fix and simplify LocalActiveOrderBook 2022-06-05 18:12:26 +08:00
c9s
016ddfd8cd
pivotshort: also check isClosed 2022-06-05 13:14:17 +08:00
c9s
f883d42c58
pivotshort: avoid market sell again if position is already opened 2022-06-05 13:13:23 +08:00
c9s
629ae39095
fix var comparison 2022-06-05 13:09:32 +08:00
c9s
defff9b01d
pivotshort: add new found return value 2022-06-05 13:04:48 +08:00
c9s
f39ba4854d
pivotshort: add notify 2022-06-05 12:58:12 +08:00
c9s
74ee92832b
pivotshort: rename pivotBuffer to pivotLowPrices 2022-06-05 12:56:40 +08:00
c9s
32f324761e
pivotshort: market sell to open short 2022-06-05 12:55:36 +08:00
c9s
4bd322feb4
pivotshort: use notify and always collect trades 2022-06-05 12:51:45 +08:00
c9s
e7078edacd
pivotshort: add kline event handler and a todo 2022-06-05 12:48:54 +08:00
c9s
b20e1335c2
pivotshort: pull out market sell to a single method 2022-06-05 12:47:15 +08:00
c9s
f0578c5fa2
pivotshort: rename place order method 2022-06-05 12:40:41 +08:00
c9s
46b766857a
pivotshort: always collect trades after submitting orders 2022-06-05 12:40:08 +08:00
c9s
b9c32c7f7e
pivotshort: numLayers should be int 2022-06-05 12:37:35 +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
austin362667
9b8239abba pivotshort: add symbol name 2022-06-04 02:31:04 +08:00
austin362667
fcdc26e188 pivotshort: add init place order 2022-06-04 02:31:04 +08:00
austin362667
5ca651a9b4 pivotshort: clean up field name 2022-06-03 23:28:48 +08:00
austin362667
af2d88d9a3 pivotshort: add immediate market sell 2022-06-03 23:23:26 +08:00
austin362667
9dab39849b pivotshort: clean up 2022-06-03 16:38:06 +08:00
austin362667
30be15dd34 pivotshort: add repay margin side effect 2022-06-03 15:48:49 +08:00
austin362667
2aac5bb273 pivotshort: improve post order & add margin 2022-06-03 15:48:49 +08:00
c9s
6936503cde
bollmaker: fix profit stats notification 2022-06-03 14:46:45 +08:00
c9s
4fc0687cf9
bollmaker: remove debug code 2022-06-03 03:14:19 +08:00
c9s
68d6e9e850
service: fix state loading (use correct ID method) 2022-06-03 03:10:50 +08:00
c9s
7fce6a0fca
bollmaker: call persistence.Sync when position is changed 2022-06-03 02:44:00 +08:00
c9s
50d7d235a4
bollmaker: pull out functions 2022-06-03 02:44:00 +08:00
c9s
1a85299204
bollmaker: make detectPriceTrend simple function 2022-06-03 02:44:00 +08:00
c9s
d7c8b0b127
autoborrow: render balance map as SlackAttachment 2022-06-02 19:50:39 +08:00
c9s
5277098f70
add api .UnrealizedProfit and .IsDust method on Position 2022-06-02 18:05:35 +08:00
c9s
6a25f30b39
add IsLong and IsShort method on Position 2022-06-02 17:58:18 +08:00
c9s
e2f339e641
bollmaker: fix short position order 2022-06-02 17:55:14 +08:00
Andy Cheng
bf385899b9 strategy: use private for non-exported fields and functions 2022-06-02 13:47:16 +08:00
c9s
5527b3c48a
rename Withdrawal to Withdraw since it's a noun 2022-06-02 11:42:03 +08:00
c9s
f87a0ab316
autoborrow: add json tags 2022-06-02 01:53:22 +08:00
c9s
34e1b642d1
autoborrow: add exchange name to the margin action struct 2022-06-02 01:51:03 +08:00
c9s
4f842c521a
fix log message 2022-06-02 01:47:55 +08:00
c9s
78f9c7d569
improve autoborrow checks 2022-06-02 01:27:04 +08:00
Andy Cheng
205921ea42 strategy: remove HasTradableBase() 2022-06-01 10:54:13 +08:00
Andy Cheng
cd96c01131 strategy: use Market.IsDustQuantity instead 2022-06-01 10:51:57 +08:00
Andy Cheng
237d1205e8 strategy: check update balance response in calculateQuantity 2022-06-01 10:26:04 +08:00
Andy Cheng
6285e145a7 strategy: margin side effect 2022-05-31 15:46:55 +08:00
Andy Cheng
3421423cd6 strategy: update balance for exchanges like FTX 2022-05-31 14:30:37 +08:00
Andy Cheng
a5124c743f strategy: supertrend strategy TP/SL 2022-05-31 12:53:14 +08:00
c9s
f29e8bd6d2
service: use reflect to generate insert sql 2022-05-30 18:08:54 +08:00
Andy Cheng
d72a4e8e94 strategy: supertrend strategy config example 2022-05-30 16:48:07 +08:00
Andy Cheng
756284378b strategy: supertrend strategy control 2022-05-30 16:35:10 +08:00
Andy Cheng
44469ed3aa strategy: supertrend position control 2022-05-30 16:26:17 +08:00
Andy Cheng
07fe68d740 strategy: Validate() 2022-05-30 16:22:13 +08:00
Andy Cheng
0e1e5369f2 strategy: leverage parameter 2022-05-30 16:07:36 +08:00
Andy Cheng
1d24379c17 strategy: refactor supertrend sconfig 2022-05-30 14:52:51 +08:00
Zenix
8652b4e043
Merge pull request #633 from zenixls2/fix/ewo_entry
Fix/ewo entry, backtest
2022-05-30 15:47:46 +09:00
zenix
e3a8ef4e69 fix: statistics on entry/exit on signal changes, fix position check 2022-05-30 12:45:52 +09:00
austin362667
c904f9f0f7 strategy: add fmaker
fmaker: cleanup
2022-05-29 21:39:11 +08:00
Andy Cheng
39b0013513 strategy: supertrend strategy tp/sl 2022-05-27 18:24:08 +08:00
Yo-An Lin
424c235b43
Merge pull request #617 from andycheng123/improve/bollmaker-dynamic-spread
feature: bollmaker dynamic spread
2022-05-27 16:55:20 +08:00
Andy Cheng
98b794f265 strategy: DynamicSpreadSettings struct to make it more clean 2022-05-27 16:24:50 +08:00
Andy Cheng
bf26076112 strategy: prototype of supertrend strategy 2022-05-27 14:36:48 +08:00
なるみ
c99be984d1 rebalance: place limit orders 2022-05-26 17:28:48 +08:00
zenix
e81216e678 fix: TP compare direction in ewo, feature: add trade report fro ewo, fix: db lock on insertion in sqlite3 2022-05-25 16:11:19 +09:00
zenix
99122f44bc fix: backtest kline prev close -> new open, pass exchange as pointer (for Mutex passing), ewo add filter ma34 2022-05-24 23:05:01 +09:00
zenix
dbe0fbcd4c fix: split implementation, fix code comments, add explanation on ewo params 2022-05-24 16:19:00 +09:00
Andy Cheng
944856eb72 strategy: fix typo 2022-05-23 12:58:45 +08:00
Andy Cheng
bb4d6e61b0 strategy: fix typo 2022-05-23 12:06:24 +08:00
Andy Cheng
64b1ec3780 strategy: update calculation of dynamic spread 2022-05-23 11:37:57 +08:00
c9s
13bf5d69a3
use types.Interval instead of string 2022-05-19 10:04:03 +08:00
Andy Cheng
b41cef4bd7 strategy: use scale for dynamic spread 2022-05-18 14:31:59 +08:00
austin362667
bb94d4a1bd pivotshort: clean up strategy 2022-05-17 19:18:21 +08:00
austin362667
62d11181a4 pivotshort: clean up 2022-05-17 19:18:21 +08:00
austin362667
2c4a52ba30 pivot: fix futures & spot clean up
pivot: clean up
2022-05-17 19:18:21 +08:00
austin362667
8ab696deaa pivotshort: rename strategy & fix pivot indicator 2022-05-17 19:18:21 +08:00
austin362667
1a441425b5 strategy: pivot: add shadow TP
strategy: pivot: add shadow TP
2022-05-17 19:18:21 +08:00
austin362667
60a8c1f42b WIP: strategy: pivot: pivot low shorting strategy 2022-05-17 19:18:21 +08:00
Andy Cheng
7d3181f3fd strategy: update dynamic spread after kline being filtered 2022-05-17 19:00:02 +08:00
Andy Cheng
db62352e6e strategy: temp vars for faster calculation 2022-05-17 10:43:18 +08:00
c9s
b4a79479fd
add pkg/strategy/ewoDgtrd/trylock_18.go 2022-05-17 01:33:24 +08:00
c9s
343434685b
rollback to go1.17 and make try lock backward compatible 2022-05-17 01:32:51 +08:00
Zenix
356ec71570
Merge pull request #610 from zenixls2/feature/liveSLTP
feature: SLTP from bookticker. fix: bookTicker typename, depth buffer…
2022-05-16 20:41:15 +09:00
zenix
641d08c3d2 fix: disable book tick log 2022-05-16 20:37:08 +09:00
Andy Cheng
3c094a195b strategy: check min/max spread settings 2022-05-16 12:57:00 +08:00
c9s
d326494d57
set exchange fee to position 2022-05-13 22:30:04 +08:00
zenix
382e6ee0fb fix: error exit on wrong subscription in backtest. NaN issue in stoch indicator. feature: position management in ewo 2022-05-13 22:58:35 +09:00
Andy Cheng
64a760cf32 strategy: dynamic spread for bollmaker 2022-05-13 17:58:46 +08:00
c9s
eac0117e02
add adjustment orders 2022-05-13 13:01:03 +08:00
c9s
e950ee9559
add wall strategy 2022-05-12 22:51:39 +08:00
zenix
2bea47003f feature: add InstanceID for report 2022-05-12 20:02:34 +09:00
zenix
71fe6c2d26 feature: SLTP from bookticker. fix: bookTicker typename, depth buffer error message 2022-05-12 19:43:04 +09:00
zenix
668328dd16 fix: message typo 2022-05-11 21:22:22 +08:00
zenix
51e2343299 fix: add more live logs to ewo 2022-05-11 21:22:22 +08:00
zenix
5fa9e930d3 fix: wrong balance, wrong bottom/peak, feature: stdev 2022-05-11 21:22:22 +08:00
c9s
b11c4c7337
turn off UseTickerPrice when in the back-testing environment 2022-05-09 19:42:39 +08:00
Andy Cheng
c9ba81fcbb strategy: Update bollmaker to support new strategy controller 2022-05-06 16:52:00 +08:00
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
c9s
aaa52ecea4 xmaker: remove unsued localTimeZone var 2021-12-31 01:53:30 +08:00
c9s
f78a7d37a2 xgap: subscribe 1m kline 2021-12-28 02:14:49 +08:00
c9s
8f4ae1e15b xgap: check balance and adjust order quantity according to the available balance 2021-12-28 02:11:11 +08:00
c9s
958dd97f52 xgap: add SimulateVolume 2021-12-28 01:48:24 +08:00
c9s
1fa03cdfd6 xmaker: add back profit function 2021-12-27 02:59:55 +08:00
c9s
f7c39290a0 call tradeCollector process to check trades 2021-12-27 00:51:57 +08:00
c9s
dcdf33e2c9 xmaker: pull out notifyTrade to a single callback 2021-12-27 00:12:35 +08:00
c9s
65da02af2c xmaker: call TruncateQuantity when the quantity is adjusted 2021-12-26 15:45:39 +08:00
c9s
902e27ede4 xmaker: truncate quantity when hedging 2021-12-26 15:44:41 +08:00
c9s
05a0745d08 fix InitExchange for publicOnly session 2021-12-26 15:29:42 +08:00
c9s
30a7ca1ce1 rename gap to xgap 2021-12-26 15:13:51 +08:00
c9s
1c54e59d55 xmaker: fix trade handling 2021-12-26 12:10:10 +08:00
なるみ
4a8be9cc1a Fix log 2021-12-22 02:04:44 +08:00
なるみ
2999e41ef0 Validate config 2021-12-22 01:59:38 +08:00
なるみ
41d4001872 Add log 2021-12-22 01:59:25 +08:00
Yo-An Lin
1ab20e6397
Merge pull request #381 from narumiruna/maxamount
strategy: rebalance: adjust quantity by max amount
2021-12-21 20:20:44 +08:00
なるみ
531805a449 Adjust quantity by max amount 2021-12-20 23:46:22 +08:00
Andy Cheng
e4bdb1de06
strategy: allow setting the interval and the window for trigger MA 2021-12-19 18:28:47 +08:00
Andy Cheng
d281182432
strategy: fix support strategy criteria 2021-12-19 17:53:34 +08:00
Yo-An Lin
d531e041dd Merge pull request #357 from narumiruna/rebalance
feature: add portfolio rebalancing strategy
2021-12-14 12:01:07 +08:00
なるみ
f320d78f2f Refactor 2021-12-14 02:18:08 +08:00
なるみ
f494a0f514 Initial commit of rebalance strategy 2021-12-13 05:19:44 +08:00
austin362667
1703fff8b2 types: refactor Position and related files 2021-12-11 19:16:16 +08:00
c9s
ca85aa69e6 pull out global premium index type and funding rate type 2021-12-09 00:10:18 +08:00
c9s
1de4e5ee4c grid: fix parameter checking for fixed amount 2021-12-07 15:37:37 +08:00
c9s
85bb9f214e grid: disable trade marking 2021-12-06 01:34:08 +08:00
TonyQ
056afb577c fix generateGridSellOrders with ProfitSpread for begining 2021-11-30 11:55:00 +08:00
c9s
513a799ced fix ewma calculation 2021-11-22 02:14:44 +08:00
c9s
7a3963b34e techsignal: if it's already high funding rate, do not show change 2021-11-06 15:23:52 +08:00
c9s
0c8addc58b grid: refactor trade callback for s.TradeService.Mark 2021-11-05 01:05:43 +08:00
c9s
6851d8d254 grid: add field guards 2021-11-05 01:04:13 +08:00
c9s
7db7596abe grid: refactor trade handler with trade collector 2021-11-05 00:30:04 +08:00
c9s
7787edffa0 refactor grid strategy state loading/saving 2021-11-05 00:22:44 +08:00
c9s
bfaec8fdd8 increase min amount if it's not greater than min notional 2021-11-04 23:22:01 +08:00
c9s
6002a958d2 grid: fix format error 2021-11-04 13:08:38 +08:00
c9s
7eb91cc7cc adjust grid quantity if it does not match min notional and min quantity 2021-11-04 12:50:32 +08:00
c9s
ed1d0ea27e add xnav strategy 2021-10-29 10:40:14 +08:00
c9s
6cb593cd90 techsignal: use realtime funding rate 2021-10-20 14:01:19 +08:00
c9s
1e6692ec8d rename funding rate query method name 2021-10-19 15:29:55 +08:00
c9s
af602df302 techsignal: add math.Round for quote volumes 2021-10-18 20:06:23 +08:00
c9s
3a68d9dae4 techsignal: fix arg cast 2021-10-18 19:40:51 +08:00
c9s
721d63bee0 techsignal: add skip log 2021-10-18 11:10:54 +08:00
c9s
ebc61de946 techsignal: fix ma subscription 2021-10-18 09:00:56 +08:00
c9s
d446dbbed7 bollpp: send profit stat notification 2021-10-18 01:16:46 +08:00
c9s
d6b707c832 bollpp: fix order quantity 2021-10-18 00:56:22 +08:00
c9s
0bd32094ee bollpp: improve bolling ping pong maker 2021-10-18 00:42:01 +08:00
c9s
759b6a812b techsignal: fix funding rate diff 2021-10-17 22:26:04 +08:00
c9s
a3f68d7b72 xmaker: use bbgo.NewPositionFromMarket 2021-10-17 22:24:57 +08:00
c9s
450b7bb61e bollpp: improve boll ping pong strategy with profit stats 2021-10-17 22:23:34 +08:00
c9s
77e7f814d9 support: refactor PercentageTargetStop logics 2021-10-15 16:10:57 +08:00
c9s
a2c29f4519 support: remove legacy resistance code 2021-10-15 12:38:16 +08:00
c9s
d704e19f04 move signedPercentage method to fixedpoint 2021-10-15 12:22:53 +08:00
c9s
952bdf8218 move currency formatter to market struct 2021-10-15 11:50:37 +08:00
c9s
790b3357d7 techsignal: adjust funding rate notification 2021-10-15 11:13:00 +08:00
c9s
4523135012 techsignal: add funding rate checker 2021-10-14 23:01:10 +08:00
c9s
e7fe443cbe show kline in the notification 2021-10-14 14:32:49 +08:00
c9s
fbbefe2878 techsignal: show interval in the message 2021-10-14 14:30:45 +08:00
c9s
a6848a6af4 add strategy/techsignal 2021-10-14 14:24:08 +08:00
c9s
4c2897a86d use Float64 indicator from the types package 2021-10-14 13:15:08 +08:00
c9s
4c061439d3 rename buyandhold to pricedrop 2021-10-14 13:10:00 +08:00
c9s
768a88247b rename bpp to bollpp (bollinger pingpong) 2021-10-14 12:52:54 +08:00
c9s
6e7f12ca9f rename trailingstop to emastop 2021-10-14 12:04:56 +08:00
c9s
e2f58d0466 xmaker: use report ticker to report profit stats 2021-10-14 08:53:44 +08:00
c9s
d3fa0a964b bbgo: add slack attachment support for profit 2021-10-14 01:27:50 +08:00
c9s
e4281b1a02 xmaker: update notification message with strategy ID 2021-10-14 01:27:37 +08:00
c9s
bbc1775ec5 xmaker: update symbol, base, quote currency to profit stats 2021-10-14 01:26:40 +08:00
c9s
8374c98609 xmaker: fix time type casting 2021-10-14 01:26:31 +08:00
c9s
5039a43413 bbgo: move pnl formating to the bbgo package 2021-10-14 01:26:11 +08:00
c9s
45645d0a3d use the profit struct to pass profit info 2021-10-08 19:16:40 +08:00
c9s
d058125f78 bbgo: refactor profit stats 2021-10-08 14:57:44 +08:00
c9s
9e93cd66de strategy: update trade collector api 2021-10-08 13:24:14 +08:00
c9s
8f74c106d6 support: merge stash 2021-10-08 13:14:21 +08:00
c9s
184f93ce79 support: fix interval check 2021-10-08 13:13:49 +08:00
c9s
01de2c5f66 support: fix long term ema kline subscription 2021-10-08 13:13:49 +08:00
c9s
f97eb8914a support: add resistance check 2021-10-08 13:13:49 +08:00
c9s
1091010f64 support: move property configuration to the top 2021-10-08 13:13:49 +08:00
c9s
3539047a39 support: show ema price 2021-10-08 13:13:49 +08:00
c9s
6917b98a74 schedule: show closed price 2021-10-08 11:59:23 +08:00
c9s
f0503b99a1 schedule: add interval check 2021-10-08 11:58:50 +08:00
c9s
193961c4e0 add bpp strategy 2021-10-07 16:39:20 +08:00
c9s
1bc36b17ff xbalance: add verbose flag 2021-09-03 14:25:26 +08:00
c9s
99f97df43b etf: use break instead of return 2021-08-26 11:58:25 +08:00
c9s
8d01c97240 fix cyclic import issue 2021-08-26 11:46:02 +08:00
c9s
1f94ae1c19 bbgo: move moving average settings struct into bbgo 2021-08-26 11:32:39 +08:00
c9s
2c378d6047 add etf strategy 2021-08-26 11:31:36 +08:00
c9s
0dd7438fd7 schedule: show scheduled order price 2021-08-26 10:29:27 +08:00
c9s
684bfcea19 xbalance: capitalize message 2021-08-19 16:35:16 +08:00
c9s
66b7e1fc3f schedule: fix schedule subscription 2021-08-19 16:35:05 +08:00
c9s
cf29cfadd0 xbalance: show balance error message 2021-08-17 12:18:29 +08:00
c9s
47258b31c6 xbalance: fix message 2021-08-17 11:36:51 +08:00
c9s
5a0ae6773c xbalance: configure middle value automatically from total value 2021-08-16 12:52:12 +08:00
c9s
490eb15748 schedule: fix order notification 2021-08-16 12:11:15 +08:00
c9s
5e2b8af4dc xmaker: fix reset today 2021-07-06 12:19:59 +08:00
c9s
1d316ed89c xmaker: call reset today if the date exceeded 2021-07-06 12:19:59 +08:00
c9s
3165d10986 support: use trade collector 2021-06-26 20:26:47 +08:00
c9s
aab0c377d7 xmaker: reformat code 2021-06-26 20:26:47 +08:00
c9s
b58b48d668 xmaker: refactor profit stats 2021-06-26 20:26:47 +08:00
c9s
cef28fa651 xbalance: use time util function from the util package 2021-06-26 20:26:47 +08:00
c9s
5621effd6b add resistance 2021-06-21 19:03:50 +08:00
c9s
4bc0612265 support: add minBaseAssetBalance 2021-06-17 19:28:11 +08:00
c9s
f9fa6e96c3 support: refactor kline handler 2021-06-16 20:33:52 +08:00
c9s
811319fa25 support: fix sensitivity calculation 2021-06-16 14:16:39 +08:00
c9s
5fecccedd6 add resistance check 2021-06-16 13:23:33 +08:00
c9s
3d12a7df59 support: add sensitivity settings 2021-06-16 13:14:10 +08:00
c9s
990da5ad3b xbalance: add foreign fee for withdrawal 2021-06-09 01:37:33 +08:00
c9s
3fd170a4ff xmaker: check book before copying 2021-06-09 01:35:56 +08:00
c9s
f5a241a1a8 xmaker: improve warn message 2021-06-09 01:35:50 +08:00
c9s
a0d8a3718a xmaker: fix bid/ask price check 2021-06-07 02:50:11 +08:00
c9s
d5617d44aa xmaker: pass source market and maker market for formatting 2021-06-07 02:49:54 +08:00
c9s
0a74cc7171 xmaker: add useDepthPrice option 2021-06-07 02:49:44 +08:00
c9s
b60fd9e356 support: fix quantity formatting 2021-06-07 00:57:47 +08:00
c9s
f66095eff9 support: add target orders to the orders 2021-06-01 01:39:22 +08:00
c9s
e5db780be8 notify trades and update position 2021-06-01 01:39:22 +08:00
c9s
40c3a5870f support strategy improvements:
- add taker buy base volume ratio option
- add max base asset balance config
- add min quote asset balance config
- record orders and trades
2021-06-01 01:39:22 +08:00
c9s
69e76485c5 xbalance: fix ticker usage 2021-05-30 18:06:31 +08:00
c9s
38fd5422ab xmaker: use uncovered position 2021-05-30 14:46:48 +08:00
c9s
9a68cfd288 xmaker: fix trade checking 2021-05-30 00:11:35 +08:00
c9s
70284a8c0f xmaker: move notify trade 2021-05-29 01:41:29 +08:00
c9s
3789315214 show accumulated net profit 2021-05-29 01:38:44 +08:00
c9s
df10e175f9 xmaker: fix wording 2021-05-29 01:32:33 +08:00
c9s
e2561bde96 xmaker: add NotifyTrade option 2021-05-29 01:31:13 +08:00
c9s
6e0bc7c1e2 xmaker: use trade channel to buffer trades 2021-05-29 01:03:43 +08:00
c9s
33db0b5c6f xmaker: add trade stores for trade buffering 2021-05-29 00:28:13 +08:00
c9s
d932a686a0 fix strategy market data stream usage 2021-05-28 03:15:29 +08:00
c9s
4f16f6b1f8 fix market data stream usage 2021-05-28 03:13:50 +08:00
c9s
45f1a13870 rename Stream field to UserDataStream and add MarketDataStream 2021-05-27 14:45:06 +08:00
c9s
36071d6649 move MillisecondsJitter to the util package 2021-05-26 23:41:45 +08:00
c9s
9d7f147fbf fix address UnmarshalJSON 2021-05-26 23:37:08 +08:00
c9s
967c7e9f9d xbalance: add withdrawal options 2021-05-26 23:24:05 +08:00
c9s
8781902b68 xmaker: fix stop hedge balance condition 2021-05-26 23:05:41 +08:00
c9s
117b26840e show net profit margin percentage 2021-05-23 01:17:20 +08:00
c9s
9b9643e1f9 improve order cancellation mechanisim 2021-05-22 17:44:20 +08:00
c9s
cca3284140 separate net profit and profit 2021-05-22 17:17:37 +08:00
c9s
8acada76a9 replace sliceorderbook with orderbook interface 2021-05-22 16:32:29 +08:00
c9s
fd710d533f implement tree copy method 2021-05-22 12:18:08 +08:00
c9s
e23932f99c xbalance: add checkOnStart option 2021-05-18 08:32:00 +08:00
c9s
d722b76564 adjust pips by bollband ratio 2021-05-17 23:57:20 +08:00
c9s
1c19c02206 xmaker: fix order submission 2021-05-17 21:33:55 +08:00
c9s
f6f1226bd0 integrate bollband indicator into xmaker 2021-05-17 20:04:13 +08:00
c9s
f80c98b97c since we always receive balance update from websocket we do not need to subscribe 1m from the maker exchange 2021-05-17 20:04:13 +08:00
c9s
6370b39cde adjust quantity by max amount if balance is not enough 2021-05-17 20:04:13 +08:00
c9s
c6ae1b54b8 remove redundant word 2021-05-17 20:04:13 +08:00
c9s
a1c888f04b adjust profit margin percentage precesion 2021-05-17 20:04:13 +08:00
c9s
6069102099 fix percentage 2021-05-17 09:02:34 +08:00
c9s
82e85dd27a add profit margin 2021-05-17 08:59:20 +08:00
c9s
e7c718ee15 assign fee rate to position 2021-05-16 17:58:51 +08:00
c9s
fad1e39bba update state asset name for legacy caches 2021-05-16 01:22:55 +08:00
c9s
f176afee6f remove duplicated notify 2021-05-16 01:18:54 +08:00
c9s
c9cdf31df1 add pnl emoji 2021-05-16 01:16:03 +08:00
c9s
6f79a7eea8 improve support strategy messages 2021-05-16 01:07:53 +08:00
c9s
f28cc18ce4 support: check target quantity and min notional 2021-05-16 01:04:46 +08:00
c9s
9aaad2d28c add emoji icons to the messages 2021-05-16 01:03:28 +08:00
c9s
933765defb add State PlainText method test 2021-05-16 00:59:57 +08:00
c9s
2652bee83b remove arrow from the message text 2021-05-16 00:52:53 +08:00
c9s
f09e248c02 improve slack attachment title 2021-05-16 00:51:51 +08:00
c9s
16fbbd0e4b notify transfer states 2021-05-16 00:51:12 +08:00
c9s
40b5baeda7 add maxDailyAmountOfTransfer check 2021-05-16 00:50:15 +08:00
c9s
942eaac659 improve message formatting 2021-05-16 00:45:08 +08:00
c9s
8eb8a3de72 refactor state functions 2021-05-16 00:32:27 +08:00
c9s
ca10135646 translate WithdrawalRequest to slack attachment 2021-05-16 00:03:19 +08:00
c9s
e0d3b7a418 fix message formating 2021-05-15 23:55:13 +08:00
c9s
a582fdbfa7 xbalance: add jitter and notification messages 2021-05-15 10:42:16 +08:00
c9s
638cc40516 fix notification arguments 2021-05-15 09:59:17 +08:00
c9s
a2bcfc8630 fix bollgrid function call 2021-05-14 15:34:58 +08:00
c9s
abd6f4c7ef rename bbgo.AdjustQuantityByMaxAmount to bbgo.AdjustFloatQuantityByMaxAmount 2021-05-14 14:53:26 +08:00
c9s
f69cbe9c31 add basic TwapExecution 2021-05-14 14:53:26 +08:00
c9s
c520cfa540 xmaker: fix price calculation 2021-05-14 14:53:26 +08:00
Larry850806
4b53b3c96a bollgrid: generate the last order if balance is not enough 2021-05-12 20:45:54 +08:00
c9s
a49cf531b5 fix cross exchange order executor for the basic risk control 2021-05-12 19:02:09 +08:00
c9s
29b7326f19 add withdrawal property to the exchange session 2021-05-12 12:05:54 +08:00
c9s
9ff7b62123 add xbalance strategy 2021-05-12 01:21:40 +08:00
c9s
f197a0fc4f improve log messages 2021-05-11 15:57:44 +08:00
c9s
9d53adc6ef xmaker: ignore self trade 2021-05-11 15:56:46 +08:00
c9s
610c33b819 improve support quantity for spot session 2021-05-11 13:25:29 +08:00
c9s
15086996e4 add balance warning 2021-05-11 12:53:32 +08:00
c9s
5f8e3259eb add stopHedgeQuoteBalance and stopHedgeBaseBalance 2021-05-11 12:47:45 +08:00
c9s
d2a770bc05 adjust second layer price according to the pips 2021-05-11 01:06:39 +08:00
c9s
b86ed36aa2 calculate price by depth 2021-05-11 00:58:11 +08:00
c9s
4429a29c29 disable hedge quote adjustment 2021-05-11 00:10:49 +08:00
c9s
fa3ca54a55 improve warning messages 2021-05-10 23:52:17 +08:00
c9s
fe4e4bf5ea use bbgo.AdjustQuantityByMaxAmount 2021-05-10 23:50:19 +08:00
c9s
b16d2553b5 remove floating point 2021-05-10 23:49:25 +08:00
c9s
1f9558cd64 use local timezone 2021-05-10 23:27:08 +08:00
c9s
af8f718228 add more pnl details to the state 2021-05-10 20:22:33 +08:00
c9s
95d58e9385 adjust hedge quantity according to the hedge account balances 2021-05-10 20:13:23 +08:00
c9s
c1ea9ff9ed xmaker: move cancel order calls to the go routine 2021-05-10 13:18:57 +08:00
c9s
ddab6083d4 xmaker: support quantity scale 2021-05-10 02:52:41 +08:00
c9s
dde998aced fix graceful shutdown 2021-05-10 02:17:19 +08:00
c9s
405f9c863f xmaker: call cancel orders everytime 2021-05-10 01:47:17 +08:00
Yo-An Lin
8a9fe7ea23 Merge pull request #221 from frankurcrazy/fix/skip-cancel-profit-order-on-graceful-exit
fix(bollgrid): skip canceling profit orders on graceful exit
2021-05-10 01:11:20 +08:00
c9s
0307a740e3 calculate accumulatedProfit 2021-05-09 23:56:54 +08:00
c9s
a98fbeea77 reduce notify calls 2021-05-09 21:14:51 +08:00
c9s
2f326d0fed xmaker: add interval jitter 2021-05-09 20:03:06 +08:00
c9s
74e01ce444 fix order waiting for graceful shutdown 2021-05-09 19:44:51 +08:00
c9s
ff90a704d9 fix fixedpoint format 2021-05-09 19:40:56 +08:00
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