-
Binance Brokerage implementation (#4688)
发布于
2020-09-28 18:57:10 +00:00 | 2785 次提交 在此版本后已推送到 master-
Binance Brokerage skeleton
-
Market hours
-
Implement Symbol Mapper
- known symbols available on /api/v1/exchangeInfo
- fiat currencies are pegged
-
Implement GetCashBalance
-
Implement GetAccountHoldings
- there are no pre-existing currency swaps
- cash balances are pulled and stored in the cashbook
-
Implement GetOpenOrders
-
Manage orders: PlaceOrder
-
Manage orders: UpdateOrder
Update operation is not supported
-
Manage orders: CancelOrder
-
Messaging: order book
-
Messaging: trades
-
Messaging: combine streams
- connect to fake /ws/open channel on init
- case by channel name, but not event type
- Messaging: order depth updates
- ticker symbol is not enough as it pushes updates only once a second, this would be a very incomplete data stream
- fetch ticker snapshot if lastUpdateId == 0
- follow Binance instructions for keeping local orderbook fresh
- Messaging: user data streaming
- Request userDataStream endpoint to get listenKey
- keep listenkey alive
- handle order close event
- handle order fill event
- DataDownloader: get history
- we can aggregate minute candles for higher resolutions
-
fix data stream
-
Tests: FeeModel tests
-
Tests: base brokerage tests
-
Tests: download history
-
Tests: symbol mapper
-
Support StopLimit andd StopMarket orders
-
StopMarket orders disabled
Take profit and Stop loss orders are not supported for any symbols (tested with BTCUSDT, ETHUSDT)
-
Tests: StopLimit order
-
Tests: crypto parsing
-
Reissue user data listen key
-
comment custom currency limitation
-
rework websocket connections
-
implement delayed subscription
-
adapt ignore message
-
add license banner
-
use better suited exception type
-
avoid message double parsing
-
support custom fee values
-
extract BinanceApiClient to manage the request/response between lean and binance
-
use api events to invoke brokerage events
-
do not allow to terminate session if it wasn't allocated.
-
update binance exchange info
-
tool to add or update binance exchange info
-
ExchangeInfo basic test
-
Rebase + Resharp
-
Binance brokerage updates
- Fix sign bug in sell order fills
- Fix bug in GetHistory
- Remove duplicate symbol from symbol properties db
-
Remove unused code
-
Revert removal of account currency check
-
Update symbols properties database
-
Address review
-
Address review
- Upgrade API endpoints from v1 to v3
- Updated sub/unsub for new subscription manager
- Subscribe best bid/ask quotes instead of full order book
- Added handling of websocket error messages
- Cleanup + refactor
-
Update symbol properties database
-
Remove list from symbol mapper
-
Fix symbol mapper tests
-
Address review
- Fix resubscribe after reconnect
- Fix quote tick edge case
-
Fix EnsureCurrencyDataFeed for non-tradeable currencies
-
Fix check in EnsureCurrencyDataFeed
-
Reuse base class subscribe on reconnect
Co-authored-by: Adalyat Nazirov aenazirov@gmail.com
Co-authored-by: Martin-Molinero martin@quantconnect.com下载附件
-