Commit Graph

1054 Commits

Author SHA1 Message Date
c9s
21b092037e refactor notification configuration 2021-02-21 16:52:47 +08:00
c9s
fa4e813729 resolve cyclic imports 2021-02-21 01:01:39 +08:00
c9s
6845db6dd3 refactor database configure method 2021-02-21 00:58:34 +08:00
c9s
1763fb8904 improve the warning message 2021-02-21 00:48:26 +08:00
c9s
12ed5a1efe move persistence service into the service package 2021-02-21 00:45:56 +08:00
c9s
b7a3f2ee03 refactor telegram initialization 2021-02-20 12:33:43 +08:00
c9s
be00aae81e move trade configuration to the trader struct method 2021-02-20 12:23:31 +08:00
c9s
c72b7b2dfa add sync api for syncing trades in the background 2021-02-20 11:56:39 +08:00
c9s
7684099f01 add /api/environment/syncing api 2021-02-20 11:54:48 +08:00
c9s
4ce6e85624 add sync status to the environment 2021-02-20 11:29:33 +08:00
c9s
ff5233ba3e support: use Notfiy 2021-02-20 10:51:01 +08:00
c9s
dd13b9a8bf remove start time query condition for trade sync since starting from trade id = 1 works 2021-02-19 14:18:50 +08:00
c9s
44fa74a4c9 refactor session sync 2021-02-19 10:42:24 +08:00
c9s
390c9b1a4b move Sync method into the sync service 2021-02-19 10:26:13 +08:00
c9s
eaa8c647b5 refactor session sync 2021-02-18 22:40:46 +08:00
c9s
90069a8589 improve sync command to find possible trading symbols automatically 2021-02-18 22:07:54 +08:00
c9s
65ff2894c5 binance: calculate quote quantity manually if it's not defined 2021-02-18 18:24:00 +08:00
c9s
3a89b0a714 improve trade sync 2021-02-18 18:20:18 +08:00
c9s
654ad62f36 remove type assert 2021-02-18 17:42:14 +08:00
c9s
0ba595bd55 Fix trade sync for self trades
MAX uses one single trade for presenting self trade.

BINANCE uses two trade records for presenting self trade. the trade
creation time are the same.
2021-02-18 17:37:49 +08:00
c9s
c3dbb1b204 avoid using last trade id for syncing data 2021-02-18 16:40:47 +08:00
c9s
29bbd03836 add binance single ticker query method and fix quantity formating 2021-02-18 16:17:40 +08:00
c9s
b9564690b5 fix go migration loader 2021-02-17 19:06:55 +08:00
c9s
b2bcd3528c use sqlx for testing connection 2021-02-17 17:35:54 +08:00
c9s
88f7f0f61c compile and update migration package 2021-02-17 17:35:11 +08:00
c9s
ea27a291db compile and update migration package 2021-02-17 17:28:05 +08:00
c9s
a1cb3859c3 fix db driver setup 2021-02-17 14:57:29 +08:00
c9s
e372a53835 refactor transfer history command 2021-02-17 14:43:50 +08:00
c9s
49f4039a23 add timestamp parameter 2021-02-16 17:11:15 +08:00
c9s
9a7437de53 set default limit to 1000 2021-02-16 17:10:58 +08:00
c9s
5f759780c3 remove unused since flag 2021-02-16 17:10:48 +08:00
c9s
3867fdde91 add stringer interface to Position 2021-02-16 16:40:11 +08:00
c9s
bc3754d989 check if limit is set 2021-02-16 16:39:56 +08:00
c9s
02512805f8 set default query trade limit to 1000 for max 2021-02-16 16:32:48 +08:00
c9s
e3d3eacb78 fix trade service injection 2021-02-16 16:30:01 +08:00
c9s
8ae4cab550 inject TradeService field if we found it 2021-02-16 16:14:49 +08:00
c9s
c75eb6b5ba pull out Persistence injection to the common injection 2021-02-16 16:13:52 +08:00
c9s
5c1630f000 refactor strategy executor 2021-02-16 16:12:00 +08:00
c9s
bf0ba89aee convert StrategyID field to NullString 2021-02-16 16:00:14 +08:00
c9s
fc4419b49b refactor injection 2021-02-16 15:58:21 +08:00
c9s
1c2646b0af add Test_injectField 2021-02-16 15:49:57 +08:00
c9s
67a3c49081 add more trade service tests 2021-02-16 15:34:01 +08:00
c9s
ebe065332c allocate sqlx db from rockhopper db 2021-02-15 21:07:55 +08:00
c9s
c219dc7be0 add test code for testing migration scripts 2021-02-15 21:04:44 +08:00
c9s
3d47b3f34d update trade fields for pnl and strategy id 2021-02-15 20:55:14 +08:00
c9s
786f37e675 add MarkStrategyID for marking trade with the source strategy 2021-02-15 20:53:19 +08:00
c9s
f3d65b1281 add UpdatePnL method for updating trade pnl field 2021-02-15 20:51:34 +08:00
c9s
8224447985 fix build tags 2021-02-15 16:21:47 +08:00
c9s
0c9ca851e5 improve support strategy 2021-02-15 01:26:46 +08:00
c9s
bea750ca97 make margin order side effect json unmarshallable 2021-02-15 01:26:23 +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
f7ef91b55c binance: set the default ping handler 2021-02-11 08:13:50 +08:00
c9s
4a0bd45301 remove order test code 2021-02-11 00:30:37 +08:00
c9s
ffa001fc29 fix quantity format 2021-02-11 00:21:56 +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
c9s
57435419b4 add marketData label 2021-02-10 22:40:36 +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
YC
776cd95955 Merge pull request #128 from c9s/ftx/balance 2021-02-09 19:49:38 +08:00
Yo-An Lin
bb394c8d38 Merge pull request #124 from ychi/feat/calculate-asset-with-ticker
feat/calculate asset with ticker
2021-02-09 17:49:22 +08:00
Yo-An Lin
5b06c47b2a Merge pull request #125 from c9s/fix/grid 2021-02-09 12:02:04 +08:00
ycchen
2b285c0202 fix: remove unused 2021-02-08 22:43:20 +01:00
ycchen
6655e16889 minor tweaks 2021-02-08 22:41:44 +01:00
ycchen
61c98432f2 feat: tickers for asset calculation 2021-02-08 22:41:44 +01:00
ycdesu
ed86e923df ftx: add exchange name 2021-02-08 22:33:12 +08:00
ycdesu
0eb0bdefa2 ftx: use uppercase in toGlobalCurrency 2021-02-08 22:29:50 +08:00
ycdesu
46b0315871 ftx: implement ftx balances querying 2021-02-08 19:07:18 +08:00
ycdesu
eb00720043 ftx: define empty ftx.toGlobalCurrency 2021-02-08 19:07:18 +08:00
ycdesu
7c48670c39 ftx: define rest client 2021-02-08 19:07:18 +08:00
ycdesu
8663704d6e util: create IsJSON/IsHTML type helper 2021-02-08 19:07:18 +08:00
ycdesu
565086cc2a util: extract IsError method 2021-02-08 19:07:18 +08:00
ycdesu
54ef8d3ca6 ftx: define empty exchange 2021-02-08 19:04:18 +08:00
c9s
72044a63fd remove query trades default limit 200 2021-02-08 13:40:47 +08:00
c9s
ffb6a29d0d fix startPrice value conversion 2021-02-08 13:21:22 +08:00
Yo-An Lin
f8ae8ec5b0 Merge pull request #108 from ychi/feat/exchange-ticker-api 2021-02-08 07:37:50 +08:00
ycchen
7a67083fbe Address review feedbacks 2021-02-07 22:58:30 +01:00
Jui-Nan Lin
001f0e8c2f fix(max): use global trade side here, not string 2021-02-07 14:58:44 +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
ycchen
288f7257eb fix testcases 2021-02-06 19:39:43 +01:00
ycchen
5fed7b81de QueryTicker 2021-02-06 18:35:23 +01:00
ycchen
fa20df487e feat: ticker api for types.Exchange 2021-02-06 14:05:26 +01:00
Yo-An Lin
a738bffc07 Merge pull request #112 from jnlin/fix/pnl-amount 2021-02-06 18:26:04 +08:00
Yo-An Lin
b81eb33cad Merge pull request #117 from c9s/wizard/sqlite3
add sqlite3 driver option to the wizard user interface
2021-02-06 17:41:45 +08:00
Jui-Nan Lin
b38b65ce83 fix(pnl): do not calculate the "self" trade 2021-02-06 17:34:13 +08:00
Jui-Nan Lin
30f085fa91 fix(max): IsBuyer should check side "buy" and "bid" 2021-02-06 17:30:18 +08:00
Jui-Nan Lin
7e1825d991 Merge branch 'main' into fix/pnl-amount 2021-02-06 17:22:43 +08:00
c9s
d0c967af55 use fake asset data for the asset query 2021-02-06 16:38:00 +08:00
c9s
8e0778a095 fix trading volume query for sqlite3 2021-02-06 16:05:21 +08:00
Yo-An Lin
597dd21865 Merge pull request #116 from c9s/feature/sqlite3
convert time struct for sqlite driver
2021-02-06 15:05:49 +08:00
c9s
62145d02f3 move dotenv loading to the root command 2021-02-06 15:03:07 +08:00
c9s
855378e098 add driver field to the setup db route 2021-02-06 14:31:46 +08:00
c9s
26f9e5488d apply datatype.Time to order time fields 2021-02-06 14:30:00 +08:00
c9s
20e6e4c299 add MarshalJSON and UnmarshalJSON to datatype.Time 2021-02-06 14:25:38 +08:00
c9s
3abdb3dd7b convert time struct for sqlite driver 2021-02-06 12:32:21 +08:00
Yo-An Lin
5a5e64cc8d Merge pull request #111 from c9s/feature/sqlite3
add sqlite3 migration support
2021-02-06 11:52:03 +08:00
c9s
32117af4b0 service: remove the ignore keyword to make the sql compatible with sqlite3 2021-02-06 11:44:49 +08:00
c9s
0b657d59f9 make inBaseAsset as private method 2021-02-06 11:34:53 +08:00
c9s
dd9dbee903 refactor database configuration with env vars 2021-02-06 11:33:49 +08:00
c9s
99b56003eb clean up legacy db connection handling with the new database service 2021-02-06 11:22:04 +08:00
c9s
276b6c1e48 drop the legacy upgradeDB 2021-02-06 11:22:04 +08:00
c9s
c7440a3ea4 compile and update migration package 2021-02-06 11:22:04 +08:00
c9s
de51eb29e4 refactor db stuff with database service 2021-02-06 11:22:04 +08:00
ycdesu
06eacf70a2 util: test Response struct 2021-02-05 22:38:45 +08:00
ycdesu
f44d6a323a http: move response helper to util 2021-02-05 22:31:40 +08:00
Yo-An Lin
8c72e2290e Merge pull request #110 from jnlin/options_orderlimit 2021-02-05 19:30:41 +08:00
Jui-Nan Lin
c9f3b6fc1a fix(pnl): checking the side of trade, not taker or maker 2021-02-05 14:52:38 +08:00
Jui-Nan Lin
b6da7ee2f2 fix(pnl): should be trades 2021-02-05 14:49:42 +08:00
c9s
ea0c20cfe7 rename enableApiServer to enableWebServer 2021-02-05 13:04:52 +08:00
c9s
0803d6bae0 add BeforeRestart hook 2021-02-05 13:01:07 +08:00
Jui-Nan Lin
8eb8fb105d test: fix query trading test 2021-02-05 12:42:59 +08:00
Jui-Nan Lin
893b513605 feat: add limit option for pnl command 2021-02-05 10:12:10 +08:00
c9s
10f8a7864f fix side bar layout 2021-02-05 09:09:59 +08:00
c9s
bd895149ad if dotenv file does not exist, do not load it 2021-02-04 20:34:31 +08:00
c9s
621321f5db add basic desktop app 2021-02-04 20:34:31 +08:00
c9s
0cb2a3c452 split files to make routes smaller 2021-02-04 16:59:00 +08:00
c9s
5f84c847c1 move setupRestart 2021-02-04 16:54:24 +08:00
c9s
e1b4ff3450 move setup handlers to setup.go 2021-02-04 16:51:53 +08:00
c9s
c12161ff1c pull out listSessionSymbols 2021-02-04 16:49:47 +08:00
c9s
3dfc75591a Add RunWithListener method to server 2021-02-04 16:47:53 +08:00
c9s
c1b2114dd2 refactor server routes 2021-02-04 16:44:14 +08:00
c9s
2791da3ec4 fix empty session issue 2021-02-04 15:19:40 +08:00
c9s
d8d1249293 fix env var prefix by using os.Getenv directly 2021-02-04 15:14:54 +08:00
c9s
e6b0a0c595 implement server shutdown goroutine 2021-02-04 14:44:48 +08:00
c9s
e257f6e8f6 pull out pingUntil function 2021-02-04 14:29:15 +08:00
c9s
f2686d02b0 refactor ping handler 2021-02-04 14:00:41 +08:00
c9s
42e5c88a2f refactor more setup route handlers 2021-02-04 13:59:26 +08:00
c9s
f74ebd48e2 refactor setup routes 2021-02-04 13:56:36 +08:00
c9s
7c6fce076f use ping try the api server 2021-02-04 13:48:21 +08:00
c9s
6db1924f87 add setup struct for setup mode options 2021-02-04 13:29:43 +08:00
c9s
7b7bcf56c9 add PUT and DELETE methods 2021-02-04 13:23:05 +08:00
c9s
f21b7f06d7 update static files and fix page routes 2021-02-03 18:54:35 +08:00
c9s
b3aa7e7511 add darwin os check 2021-02-03 18:54:34 +08:00
YC
d821d2ef95 Merge pull request #103 from ycdesu/minor/order/tests 2021-02-03 18:52:11 +08:00
YC
cc146faae2 Merge pull request #101 from ycdesu/minor/trade/tests
minor: extract SQL generator function of trades table
2021-02-03 18:32:25 +08:00
ycdesu
72b1877e4a order: extract query order sql generator 2021-02-03 18:31:32 +08:00
c9s
c73e5f00f3 refactor server routes 2021-02-03 18:09:33 +08:00
c9s
bf8508d4fb update description 2021-02-03 17:41:48 +08:00
c9s
4e31c7f68a change default config path to just bbgo.yaml 2021-02-03 17:39:53 +08:00
c9s
9096b6425e move instructions sequence 2021-02-03 17:29:51 +08:00
c9s
c35cef5b09 implement config saving api 2021-02-03 17:27:18 +08:00
ycdesu
220da92f48 trade: extract sql generator function and test it 2021-02-03 16:51:02 +08:00
ycdesu
1522c3d7a6 trade: create a separate sql gen function 2021-02-03 15:44:02 +08:00
c9s
f7a4f7d415 add strategies endpoint and strategy review page 2021-02-03 15:00:01 +08:00
c9s
705edc38c0 implement config yaml dummper 2021-02-03 09:58:31 +08:00
c9s
098a966813 add test case for config.Map method 2021-02-03 09:34:53 +08:00
c9s
1a2c3556a8 add ID method to the TestStrategy 2021-02-03 09:09:19 +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
578451bb51 add setup flag to run server 2021-02-02 18:17:58 +08:00
c9s
d458519ba5 add setup flag 2021-02-02 18:17:39 +08:00
c9s
17d5e301dc refine setup steps 2021-02-02 17:26:35 +08:00
c9s
73762d9888 support exchange session test from the setup wizard 2021-02-02 11:44:07 +08:00
c9s
06f648448b pull out wrapper runner 2021-02-01 20:44:15 +08:00
c9s
eebb568b0c add dotenv string flag for changing dotenv filename 2021-02-01 20:44:15 +08:00
c9s
0a29ee99b8 call godotenv.Load to load env vars 2021-02-01 20:44:15 +08:00
c9s
a60aeb4771 pull out .Subscribe from trader.Run 2021-02-01 20:44:15 +08:00
c9s
ddcc8ae4ee move ExchangeOrderExecutor into exchange session 2021-02-01 20:44:15 +08:00
c9s
de8e717a41 refactor session initialization function 2021-02-01 20:44:15 +08:00
c9s
6912f77c72 fix lock issue 2021-02-01 18:55:47 +08:00
c9s
a926ee1e37 rename --enable-api-server to --enable-web-server 2021-01-29 19:31:52 +08:00
c9s
fbbe304dfb add trades query api 2021-01-29 18:48:00 +08:00
c9s
cc8133a90e print order query sql 2021-01-29 18:34:03 +08:00
c9s
72037d6c14 update migration package 2021-01-29 18:28:23 +08:00
c9s
b8d7ae7687 add AggOrder for market orders 2021-01-29 17:52:13 +08:00
c9s
32645f228b add order query api 2021-01-29 13:15:44 +08:00
c9s
be750b94df fix layout and margin 2021-01-29 12:55:11 +08:00
c9s
8031c6066e mount static files to routes 2021-01-29 11:19:37 +08:00
c9s
78890834b5 support symbol segment 2021-01-28 18:51:35 +08:00
c9s
9ee49ea3f1 Add TradingVolumeBar 2021-01-26 18:10:08 +08:00
c9s
95129e94d7 add lastPrcieUpdatedAt timestamp for checking last price cache 2021-01-26 17:23:40 +08:00
c9s
df17c4b1b6 add trading volume query api 2021-01-26 17:21:18 +08:00
c9s
9717fddfbd add total asset pie chart 2021-01-25 16:56:02 +08:00
c9s
e47357d1ed add assets api and price loading 2021-01-25 15:32:17 +08:00
c9s
09b3046feb lower case fields are not exported to json 2021-01-25 14:32:46 +08:00
c9s
b952e6fd54 rename Reset to private reset 2021-01-25 14:26:22 +08:00
c9s
4c0a586aa2 adjust depth update to 5 minutes 2021-01-25 14:24:59 +08:00
c9s
ca71c81284 improve slice copying 2021-01-25 14:20:56 +08:00
c9s
b99c01a03f fix stream book usage 2021-01-25 14:13:39 +08:00
c9s
1aefbbfddc improve orderbook validation error 2021-01-25 13:53:11 +08:00
c9s
7310700540 add account and account balances 2021-01-24 20:18:04 +08:00
c9s
eab915abc7 rename loaded-symbols to just symbols 2021-01-24 20:14:43 +08:00
c9s
3a52a4bff8 add and set AddOrderUpdate flag for session order store 2021-01-24 20:13:05 +08:00
c9s
e2de3040bd adjust ping ticker to 10seconds 2021-01-24 19:08:33 +08:00
c9s
42b66d6898 add OrderStore accessor on ExchangeSession 2021-01-24 19:08:12 +08:00
c9s
9040f6ff0d add --enable-api-server flag 2021-01-24 19:07:56 +08:00
c9s
447057086c add Orders method on OrderStore 2021-01-24 19:07:32 +08:00
c9s
eccc2c6e0f implement session config api and server 2021-01-24 18:42:36 +08:00
c9s
7632638982 log depth api error 2021-01-24 16:54:13 +08:00
c9s
51e5deee47 add frontend files 2021-01-24 14:14:25 +08:00
c9s
1892d03326 make session trades map thread safe 2021-01-24 14:14:25 +08:00
c9s
1c80d30ce2 add TradeSlice with sync 2021-01-24 14:14:25 +08:00
c9s
84b6982033 add order store to exchange session 2021-01-24 14:14:25 +08:00
c9s
568250f4bb define api routes 2021-01-24 14:14:25 +08:00
c9s
cabc082713 fix f.loadDepthSnapshot timing 2021-01-24 14:12:44 +08:00
c9s
50fc1fd3ac call Reset instead of replacing the whole map
the reason is that we have the update worker, which is already started.
2021-01-24 14:09:07 +08:00
c9s
2b441ad3bc binance: improve depth event filtering and reloading 2021-01-24 10:02:38 +08:00
c9s
1f1e1383f3 fix advancedOrderCancelApi interface 2021-01-23 17:20:26 +08:00
c9s
858a8d84bb groupID is an int64 field 2021-01-23 17:17:46 +08:00
c9s
4b039847b7 support group ID 2021-01-23 17:15:32 +08:00
c9s
b5f2c325a4 add group id field 2021-01-23 17:07:05 +08:00
c9s
e08d62395e adjust snapshot ticker to 10 minutes 2021-01-23 17:03:53 +08:00
c9s
6a6dacd595 fix binance depth snapshot updating 2021-01-23 16:59:51 +08:00
c9s
d0fc161ae7 fix define build config checking 2021-01-23 01:06:56 +08:00
c9s
2da5fa2e92 pre-define build config 2021-01-23 01:03:56 +08:00
c9s
cc3e9f42aa cmd: fix build nil check 2021-01-23 01:01:36 +08:00
c9s
fa8198b8b9 remove unnecessary logs 2021-01-21 12:28:47 +08:00
c9s
93ae65535d remove os and arch flags 2021-01-21 12:27:55 +08:00
c9s
5eaa8f0778 add IsWrapperBinary flag and fix persistence error 2021-01-21 12:27:21 +08:00
c9s
503df57e72 remove legacy cmd flags 2021-01-21 12:10:06 +08:00
c9s
45876968d9 let build config and legacy imports co-exists 2021-01-21 12:08:06 +08:00
c9s
5329ef8f25 refactor build config 2021-01-21 12:06:03 +08:00
c9s
26c128b3ab adjust rate limiter 2021-01-21 01:21:30 +08:00
c9s
e869e04092 use rate limiter for batch query 2021-01-21 01:02:43 +08:00
c9s
a73729fb17 split files for batch processor and margin settings 2021-01-21 00:58:02 +08:00
c9s
ad4f339b27 fix test case name 2021-01-21 00:54:59 +08:00
c9s
38bac10050 consider fee calculation 2021-01-21 00:49:01 +08:00
c9s
bfc8e511d0 simplify average cost calculation 2021-01-20 23:46:22 +08:00
c9s
16aa070120 assign base/quote currency to the position struct 2021-01-20 23:08:57 +08:00
c9s
8a08c406c3 check symbol for the position update 2021-01-20 17:37:23 +08:00
c9s
48dd697ce3 handling short-to-long and long-to-short position 2021-01-20 17:35:58 +08:00
c9s
c2a27b031e init position with loaded symbols 2021-01-20 16:30:44 +08:00
c9s
0051dbc78a add Position accessor 2021-01-20 16:29:15 +08:00
c9s
079fcf08e3 initialize position map 2021-01-20 16:28:27 +08:00
c9s
09d712416f add json struct tags 2021-01-20 16:15:34 +08:00
c9s
617f5119fd test trade profit calculation 2021-01-20 16:14:02 +08:00
c9s
169af63846 add more position tests 2021-01-20 16:10:20 +08:00
c9s
34148948ab add position and its tests 2021-01-20 16:08:14 +08:00
c9s
42811e8157 alias logrus as log 2021-01-20 02:45:50 +08:00
c9s
9280ec348f clean up pnl command
we should use environment to load the sessions
2021-01-20 02:45:13 +08:00
c9s
0e99d9bdcb move time.Sleep to batch processor to avoid rate limit 2021-01-20 02:32:55 +08:00
c9s
c79c7d1b11 fix margin order/trade sync 2021-01-20 02:09:12 +08:00
c9s
d3f6841a27 improve sync command for margin trades and orders 2021-01-20 01:46:17 +08:00
c9s
7520430b52 support margin api for query trades 2021-01-20 01:27:27 +08:00
c9s
1d8b7dc657 handle trade and order margin field 2021-01-20 01:24:29 +08:00
c9s
334eff4682 update sync service for margin fields 2021-01-19 23:33:06 +08:00
c9s
62f6d857b3 update compiled migrations package for margin columns 2021-01-19 23:31:13 +08:00
c9s
a6015fb3e2 add isMargin, isIsolated columns 2021-01-19 23:31:04 +08:00
c9s
2c1c9a046b tmp 2021-01-19 23:31:04 +08:00
c9s
677f4b93e6 add margin mode support to QueryOpenOrders 2021-01-19 23:31:04 +08:00
c9s
ad4226f35b support margin order creation 2021-01-19 23:31:04 +08:00
c9s
3eda64641e use exchange's margin option 2021-01-19 23:31:04 +08:00
c9s
7235100140 integrate submitMarginOrder api 2021-01-19 23:31:04 +08:00
c9s
f35e90a4f1 document marginSideEffect 2021-01-19 23:31:04 +08:00
c9s
5cab37488b move MarginSettings struct to a file 2021-01-19 23:31:04 +08:00
c9s
1c77de031a add extended margin fields to the order struct 2021-01-19 23:31:04 +08:00
c9s
f8a9610222 pass isolated margin symbol 2021-01-19 23:31:04 +08:00
c9s
f505c0e2c6 split go routine for keep alive and ping tickers 2021-01-19 23:31:04 +08:00
c9s
d4774f5f0e add IsolatedMargin option 2021-01-19 23:31:04 +08:00
c9s
310943d010 add isolated margin symbol option 2021-01-19 23:31:04 +08:00
c9s
48083151aa turning margin mode 2021-01-19 23:31:04 +08:00
c9s
e8fec434b5 cast exchange instance to margin exchange interface 2021-01-19 23:31:04 +08:00
c9s
3199c63d62 add margin mode 2021-01-19 23:31:04 +08:00
c9s
4002ec80d6 add public only field to the session config struct 2021-01-19 23:31:04 +08:00
c9s
c3db6db590 add margin option 2021-01-19 23:31:04 +08:00
c9s
1233035780 fix migration script 2021-01-19 23:11:07 +08:00
c9s
0bdfd0f04b check if err is nil 2021-01-18 21:59:02 +08:00
c9s
ddc33f633f check if err is nil 2021-01-18 21:57:57 +08:00
c9s
ad78f81b10 fix unique index for binance self trade 2021-01-18 16:48:47 +08:00
c9s
3db5c26416 improve transfer history layout 2021-01-15 14:24:24 +08:00
c9s
d96e6e8ccc use environment to configure database 2021-01-15 10:47:49 +08:00
c9s
1ce3244c17 drop the legacy migration command 2021-01-15 10:33:23 +08:00
c9s
293d889276 fix built-in migrations 2021-01-15 10:31:37 +08:00
c9s
d04e1e7816 refactory sync command and upgrade db automatically 2021-01-14 15:10:11 +08:00
c9s
ad567dc360 use mysql reformat dsn function to add parseTime parameters 2021-01-14 14:56:13 +08:00
c9s
cd9f2ba0e8 add compile migration files 2021-01-14 00:33:28 +08:00
c9s
6491166459 drop legacy pkg/migration 2021-01-14 00:00:05 +08:00
c9s
2699c32b38 add rockhopper 2021-01-13 23:53:36 +08:00
c9s
50cd6f7d68 change go-binance to github.com/adshao/go-binance/v2 2021-01-11 13:36:49 +08:00
c9s
653eba73c5 improve session error message 2021-01-09 19:47:21 +08:00
c9s
4a1af6f362 add check for PersistenceServiceFacade 2021-01-09 19:44:45 +08:00
c9s
93d71b5300 bbgo: session log error 2021-01-09 19:40:31 +08:00
c9s
995f9a9ea0 grid: add order amount field 2021-01-06 13:31:17 +08:00
c9s
92ab7e125a improve RegisterStrategy method to register strategy between cross and single 2020-12-31 17:14:47 +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
25eab8e95f adjust log 2020-12-29 18:32:51 +08:00
c9s
f485c1ba7f fix grid strategy order placing 2020-12-29 18:18:32 +08:00
c9s
70479bfd16 binance: assign Isolated field 2020-12-29 17:26:22 +08:00
c9s
275aa9494a support canceling orders on max 2020-12-29 16:00:03 +08:00
c9s
9568b04328 fix log message 2020-12-28 16:24:57 +08:00
c9s
2932230fdb print out websocket error 2020-12-28 16:24:35 +08:00
c9s
d9e5ad4365 add event authenticated 2020-12-28 16:24:17 +08:00
c9s
f12e38b70e call cancelTrading defer 2020-12-21 15:47:20 +08:00
c9s
9db1c78171 add public only mode to backtest 2020-12-21 15:45:40 +08:00
c9s
f56318c9b6 add public only mode to stream 2020-12-21 15:43:54 +08:00
c9s
ce0e28708a add public only mode to binance stream 2020-12-21 15:26:05 +08:00
c9s
d4b99f41a4 reformat 2020-12-21 14:55:14 +08:00
c9s
39f5290634 shorten the log messages 2020-12-21 14:53:34 +08:00
c9s
a60529ee37 reload depth snapshot periodically 2020-12-21 14:43:40 +08:00
c9s
9223b2ba47 move FormatOrder to ExchangeSession since it depends on Market 2020-12-21 13:47:40 +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
1c7d3d5481 support max staging url orverride 2020-12-17 14:44:30 +08:00
c9s
728bf5fc81 bbgo: move some logs to debug level 2020-12-15 14:14:44 +08:00
c9s
63a5881d16 use golang.org/x/time for rate limiting 2020-12-15 14:04:27 +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
81c7d3c668 fix fmt import 2020-12-14 14:34:55 +08:00
c9s
cabd8f8dcb improve buyandhold strategy 2020-12-14 14:21:02 +08:00
c9s
321b4812ca supporting otp key restore from key url 2020-12-11 17:12:16 +08:00
c9s
fbb9d0d3ba show key URL 2020-12-11 17:08:06 +08:00
c9s
deb9a29521 support one-time password 2020-12-11 17:07:19 +08:00
c9s
f4ef19e5d6 implement PlainText for telegram bot 2020-12-11 15:58:05 +08:00
c9s
6af88a2a87 add interaction callbacks 2020-12-11 14:40:18 +08:00
c9s
45bc4dc9eb refactor telegram notifier with interaction component 2020-12-11 14:40:04 +08:00
c9s
f595b1ef65 fix compile flag check 2020-12-09 16:13:20 +08:00
c9s
846f463cfc print loaded position 2020-12-08 16:32:39 +08:00
c9s
6b760c72b7 use bot token prefix as the redis store namespace 2020-12-08 16:28:55 +08:00
c9s
03afa060d5 add updateInterval for mirrormaker 2020-12-08 16:01:46 +08:00
c9s
c66b140d90 support duration parse 2020-12-08 16:01:46 +08:00
c9s
fe7495898f check if persistence is configured 2020-12-08 15:09:17 +08:00
c9s
53d7fb5611 support telegram chat user persistence 2020-12-08 15:03:52 +08:00
c9s
a299721a98 improve message layout 2020-12-08 14:41:51 +08:00
c9s
4316f1fada pull out bot initialization 2020-12-08 14:25:30 +08:00
c9s
55cd0c6a6e pull out bot initialization to run 2020-12-08 14:20:49 +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
9eaf69388c add fixedpoint json marshaling 2020-12-07 23:03:06 +08:00
c9s
4addf65f64 support memory persistence 2020-12-07 12:03:56 +08:00
c9s
2d98336fb6 implement Persistent API for strategy 2020-12-07 11:44:41 +08:00
c9s
341f735bc3 configure ConfigurePersistence if it's defined 2020-12-07 11:44:41 +08:00
c9s
a01f83ab15 add persistence config and tests 2020-12-07 11:44:41 +08:00
c9s
b843388483 only query subscribed kline intervals 2020-12-07 11:44:23 +08:00
c9s
62a541fb27 rename preload to loadBuildConfig 2020-12-07 11:44:23 +08:00
Che-Chia (David) Chang
1b17cba2eb Merge pull request #67 from c9s/feature/add-telegram-bot-notifier
feature: add telegram bot notifier
2020-12-06 14:12:32 +08:00
David Chang
9f92fcf2e4 chore: rename telegram init to telegram auth 2020-12-06 13:59:47 +08:00
David Chang
58aadd9f45 fix: use correct format for log 2020-12-06 13:47:52 +08:00
David Chang
9e4602cf66 fix: allow upadte telegram chat user with bot command 2020-12-06 13:02:21 +08:00
David Chang
a55cd02e21 feature: add info command 2020-12-06 12:34:43 +08:00
David Chang
f9124aa907 fix: telegram bot send message to correct user 2020-12-06 12:11:27 +08:00
David Chang
7caf986d11 fix: change warning type from user to username 2020-12-05 14:28:48 +08:00
David Chang
c72ef2b31c fix: add missing root cmd flags 2020-12-05 14:25:19 +08:00
David Chang
b2d9bd0312 feature: add telegram bot notifier 2020-12-05 14:20:27 +08:00
c9s
c5d002a0b0 fix market data kline registration 2020-12-05 13:32:41 +08:00
c9s
900f822559 improve and fix ewma calculation 2020-12-05 13:32:41 +08:00
c9s
b188901ed0 fix ewma calculation 2020-12-05 13:32:41 +08:00
c9s
f7a119fa5e remove debug message 2020-12-04 19:15:53 +08:00
c9s
936650d879 rename kline trend to direction 2020-12-04 10:18:51 +08:00
c9s
22771288eb fix sma kline window check 2020-12-03 20:42:26 +08:00
c9s
177607e5fb fix ewma kline window check 2020-12-03 20:42:00 +08:00
c9s
f4aee5234a add updater to indicators 2020-12-03 18:14:16 +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
d60a82256d types: remove slice preallocated cap 2020-12-03 09:27:05 +08:00
c9s
2b264905f9 add warnings and fix subscription 2020-12-03 09:26:10 +08:00
c9s
4f399ebb9f fix stop price formating 2020-12-03 09:25:47 +08:00
c9s
17590fcc08 include movingstop in builtin 2020-12-03 08:52:43 +08:00
c9s
9d7aa2fe22 add movingstop strategy 2020-12-03 08:52:32 +08:00
c9s
0a5bac803c ignore duplicated trade 2020-12-03 08:51:57 +08:00
c9s
edb22383c7 fix ToGlobalOrder call 2020-12-02 22:44:57 +08:00
c9s
d38b16fb3e fix cross exchange strategy subscription 2020-12-02 22:44:41 +08:00
c9s
4cf5929cac improve trade parsing error 2020-12-02 22:21:13 +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
e57b9f235b add quota 2020-11-23 16:47:36 +08:00
c9s
db6c90b8dd cmd: fix run command signal handling 2020-11-23 16:36:03 +08:00
c9s
a86078d68c max: fix tick size 2020-11-22 21:34:05 +08:00
c9s
914d5cdc94 try to keep all orders from order store 2020-11-17 15:53:46 +08:00
c9s
c40982164a fix trade slack formatting 2020-11-17 15:48:18 +08:00
c9s
8f5491d818 improve balance printing 2020-11-17 14:45:27 +08:00
c9s
18d9245b06 improve order slice lock 2020-11-17 14:31:18 +08:00
c9s
ed6d6342e7 fix account currency translation 2020-11-17 14:24:26 +08:00
c9s
95b0910a09 fix trade order id parsing 2020-11-17 14:13:37 +08:00
c9s
03d99a4cab remove debug logs 2020-11-17 13:25:59 +08:00
c9s
4bda1fee08 fix order id parsing 2020-11-17 12:46:55 +08:00
c9s
cc3da5b678 pass order id for order store exists 2020-11-17 08:53:22 +08:00
c9s
f4512f031c improve cross exchange strategy mounting behavior and add fixedpoint atomic ops 2020-11-17 08:19:22 +08:00
c9s
3ea2e877ff do not submit subscribe request if param array is empty 2020-11-15 13:32:46 +08:00
c9s
ded970f5a4 imporve CrossExchange subscription handling 2020-11-15 13:27:33 +08:00
c9s
94aaaf21b0 improve wrapper binary invocation 2020-11-15 13:23:26 +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
cd283f2c28 remove unused logger field 2020-11-12 17:30:21 +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
35a5b61f60 add local active orderbook callback files 2020-11-11 23:19:16 +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
4bb5730cea remove backtest flag from the sync command 2020-11-11 16:11:41 +08:00
c9s
24e5911140 refactory sync mode into the backtest command 2020-11-11 16:08:24 +08:00
c9s
097b2d30a6 add base-asset-baseline flag for backtest 2020-11-11 14:39:33 +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
04a7c7a2cc add stddev accessor 2020-11-10 16:55:35 +08:00
c9s
23c19c5968 use fixedpoint for balances 2020-11-10 14:19:33 +08:00
c9s
cdf7959029 fix fixedpoint unmarshal 2020-11-10 14:19:22 +08:00
c9s
923fea0d94 improve backtest cmd 2020-11-10 14:19:11 +08:00
c9s
941c93794c fix grid strategy for backtesting 2020-11-10 14:18:54 +08:00
c9s
770efeed4f pnl format improve 2020-11-10 14:18:27 +08:00
c9s
69a33b6400 fix and improve backtest 2020-11-10 14:18:04 +08:00
c9s
f5b17193c5 move verbose flag detection before we setup the environment 2020-11-09 16:49:03 +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
1e129e4c86 collect error object instead of logging 2020-11-09 15:29:40 +08:00
c9s
8414f406bf drop the legacy order executor 2020-11-09 15:02:12 +08:00
c9s
4a2a542222 refactor basic risk controller 2020-11-09 14:56:54 +08:00
c9s
ded89e099f refactor simple price matching 2020-11-09 03:17:02 +08:00
c9s
5cc9506960 simplify executeTrade method since we should not use over locked funds 2020-11-09 03:09:12 +08:00
c9s
443f2c6891 document fee rate for BNB holders 2020-11-09 03:01:40 +08:00
c9s
377f4cae34 add account balance lock and unlock for testing maker strategies 2020-11-09 02:58:46 +08:00
c9s
5d4680e496 add lock and unlock functions 2020-11-09 01:10:14 +08:00
c9s
f69c87b3a8 fix fee calculation and add account balance checking 2020-11-08 21:52:44 +08:00
c9s
090011da9e pull out order matching trigger from the kline event callbacks 2020-11-08 13:07:45 +08:00
c9s
e3a1184d22 fix backtest sync exchange and consider fee rate 2020-11-08 12:47:14 +08:00
c9s
6bd3573287 add exchange field in the table so that we can reuse the kline objects for backtest 2020-11-08 12:13:34 +08:00
c9s
4b0bab31fb Merge branch 'feature/backtest' into main 2020-11-07 20:34:55 +08:00
c9s
641784e1b1 calculate pnl after the backtest 2020-11-07 20:34:34 +08:00
c9s
f3571b9832 fix tests 2020-11-07 20:18:11 +08:00
c9s
6040c69327 add sync flag for backtesting 2020-11-07 20:14:53 +08:00
c9s
f1db12eb10 add done channel for backtest exchange 2020-11-07 20:11:07 +08:00
c9s
a4a9067c6a integrate matching engine with backtest exchange 2020-11-07 19:57:36 +08:00
c9s
5be4aa53db move simple price matching to matching.go 2020-11-07 16:09:21 +08:00
c9s
3778adc8c8 implement SimplePriceMatching engine 2020-11-07 16:08:20 +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
b13a2deec5 emit klines and setup account balances 2020-11-07 03:18:05 +08:00
c9s
22a214328d implement backtest command, stream and add backtest config 2020-11-07 02:57:50 +08:00
c9s
8823a39fc2 support backtesting kline verification 2020-11-07 00:49:17 +08:00
c9s
555fe57341 implement kline sync function from command 2020-11-06 21:40:48 +08:00
c9s
f78fefb3b0 implement QueryCh on kline service 2020-11-06 20:58:45 +08:00
c9s
78d7c71ecc add kline service and extend kline struct fields 2020-11-06 19:07:07 +08:00
c9s
c9f2a1aed5 add db tag to kline struct 2020-11-06 11:08:31 +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
b38d0d15ed fix order sync for max 2020-11-05 14:12:19 +08:00
c9s
7e47f754c5 use channel to sync trades 2020-11-05 13:35:04 +08:00
c9s
8693bbbd24 fix orderId-based query for binance 2020-11-05 11:14:14 +08:00
c9s
7fab2e24de improve order persistence and support order data sync 2020-11-05 11:14:14 +08:00
c9s
a4555a2b7b implement QueryClosedOrders 2020-11-05 11:14:14 +08:00
c9s
fe16f9aa4d add is_working column 2020-11-05 11:14:14 +08:00
c9s
bb0ff263c8 assign order_id to the trade object 2020-11-05 11:14:14 +08:00