Files
Balamurali Pandranki c22a538bad Indian stock markets support & Zerodha brokerage implementation (#4873)
* Indian stock markets & Samco and Zerodha brokerage implementations

* Build fixes & Implement multi leg orders (BracketOrder & CoverOrder)

* Build fixes

* Clean & refactor

* Clean up & remove samco brokerage

* Clean up & remove samco brokerage

* Fix Nifty, BankNifty & Sensex Index futures expiry time functions

* Fix Nifty, BankNifty & Sensex Index futures expiry time functions

* Fix Futures Expiry Testcases

* Fix Futures Expiry Testcases

* Refactor Zerodha Symbol Mapper

* Refactor Zerodha Symbol Mapper

* Add Future symbols to symbol prop db csv

* Fix Symbol Mapper context

* Fix Market Hours Database

* Fix OrderJsonConverter

* Add Zerodha AccountBaseCurrency

* Add QuantConnect License headers to new source files

* cleanup config.json formatting & tick aggregator implementation

* cleanup config.json formatting & tick aggregator implementation

* Refactor ZerodhaBrokerageModel

* Fix

* Build Fixes

* Refactor

* Refactor Brokerage class & remove TextFieldParser

* Refactor Brokerage FeeModel

* Add ZerodhaOrderProperties

* Add Refactor HistoryProvider

* Refactor CanExecuteOrder

* Refactor SymbolMapper

* Refactor market names

* Refactor & remove Zerodha subscription manager

* Refactor & remove ZerodhaWebSocketChannels

* Refactor & remove ZerodhaWebSocketChannels

* Refactor ZerodhaBrokerage

* Refactor symbol prop db

* zerodha update downloader ticker data using symbol name

* 1 Zerodha mapper class update to get instruments based on Market. 2 Zerodha Getholdings data fetch fix.

* Update market-hours-database.json

* Implement basic testcases for ZerodhaBrokerage

* Update market-hours-database.json

* Update Market.cs

* 1 Fix for Zerodha subscriber and unsubscribe 2 User of CSVHelper to read instrument list

* Rename Zerodha DataQueueHandler class implementation

* Changes related to TradeBar and emit tick

* Fix DataQueueUniverseProvider & Handle Timezone conversion in WS EmitQuotes

* Emit Order Fixes

* DataQueueHandler refactoring and build fix

* Update config.json

* Removal of IHistoryProvider impplementation

* Reverting timezone logic as already taken care by BrokerImplementation using Unix time

* Place, modify and cancel order implementation

* fix zerodha test cases

* Updating get quotes and restricting getHoldings to MIS

* Testcase Fixes

* Testcase Fixes

* Testcase Fixes

* Updating emitFillOrder

* Add ProductType to ZerodhaOrderProperties

* Addition of ZerodhaProduct Type property and test update

* Fix for unit tests and minor changes for place and update order

* Unit test fix for Zerodha

* Addition of the product type and trading segment configs

* PR review fixes

* Addition of trading segment and product type configs

* Nuget Fixes

* Fix ZerodhaBrokerage DataQueueHandler

* Cleanup OrderTypes & rm global.json

* Update UpdateOrderRequest.cs

* Removal of custom csvreader

* Implementing additional method CanPerformSelection

* Add LiveOptionChainProvider

* Clean up and add QC license headers

* Quick cleanup

* Update ZerodhaBrokerage.cs

* Fix OrderEvent timezone conversions

* use item.Unrealised for Intraday position holdings

* Refactor Option chain get instruments calls

* Refactor Option chain get instruments calls

* Review fixes

* Remove whitespaces

* Updating options strike price

* Undo time stamp change

* Optional gethistory

* Addition of comments and minor changes

* Build Fixes

* Add comments for LogType enums

* Options fix

* Fix json name in CsvInstrument

* Update tick generation in DataQueueHandler

- Use Timestamp field for both trades and quotes
- Fix incorrect bid/ask sizes
- Avoid reading depth on each tick to find top quote
- Use new Tick constructors
- Remove unnecessary locking

* Add missing null check in Utils.StringToDate

* Order fixes

- Include TriggerPending orders in GetOpenOrders
- Remove unnecessary invalid check in PlaceOrder
- Fix GetOrderPrice and GetOrderTriggerPrice

* Zerodha account balance fetch

* Removal of Futures and Options

* Remove Futures & Options Support

* Update ZerodhaBrokerage.cs

* Update ZerodhaBrokerage.cs

* Add License headers

* Add License Headers

* Refactor

* historical TradeBar & security fee calculation fixes

* fix brokerage test case

* Update ZerodhaBrokerage.cs

* Update ZerodhaBrokerageHistoryProviderTests.cs

Co-authored-by: Aman Ray <ray.aman9876@gmail.com>
Co-authored-by: Stefano Raggi <stefano.raggi67@gmail.com>
2021-03-08 18:51:54 -03:00
..
2021-03-04 13:13:41 -03:00
2020-05-12 16:15:26 -03:00

alt tag Lean Data ToolBox

Slack Chat

Lean Home | Documentation | Download Lean

Introduction

Lean Engine is an open-source algorithmic trading engine built for easy strategy research, backtesting and live trading. We integrate with common data providers and brokerages so you can quickly deploy algorithmic trading strategies.

The ToolBox project is a command line program which wraps over 15 tools.

Usage

Each tool requires a different set of parameters, the only required argument is '--app=', which defines the target tool and is case insensitive.

Help information is available using the '--help' parameter.

Example: --app=YahooDownloader --tickers=SPY,AAPL --resolution=Daily --from-date=yyyyMMdd-HH:mm:ss --to-date=yyyyMMdd-HH:mm:ss

Available downloaders

  • '--app='
    • GDAXDownloader or GDAXDL
    • CryptoiqDownloader or CDL
    • DukascopyDownloader or DDL
    • FxcmDownloader or FDL
    • FxcmVolumeDownload or FVDL
    • IBDownloader or IBDL
    • KrakenDownloader or KDL
    • OandaDownloader or ODL
    • QuandlBitfinexDownloader or QBDL
    • YahooDownloader or YDL
    • IEXDownloader or IEXDL
    • BitfinexDownloader or BFXDL
    • BinanceDownloader or MBXDL
    • PolygonDownloader or PDL
  • '--from-date=yyyyMMdd-HH:mm:ss' required
  • '--tickers=SPY,AAPL,etc' required, except for QuandlBitfinexDownloader (QBDL)
  • '--resolution=Tick/Second/Minute/Hour/Daily/All' required, except for QuandlBitfinexDownloader (QBDL), CryptoiqDownloader (CDL). Case sensitive. Not all downloaders support all resolutions, send empty for more information.
  • '--to-date=yyyyMMdd-HH:mm:ss' optional. If not provided 'DateTime.UtcNow' will be used

Available Converters

  • '--app='
    • AlgoSeekFuturesConverter or ASFC
      • '--date=yyyyMMdd' reference date.
    • AlgoSeekOptionsConverter or ASOC
      • '--date=yyyyMMdd' reference date.
    • CoinApiDataConverter or CADC
      • '--source-dir=' path to the raw CoinAPI data.
    • IVolatilityEquityConverter or IVEC
      • '--source-dir=' source archived IVolatility data.
      • '--source-meta-dir=' source archived IVolatility meta data.
      • '--destination-dir=' directory where Lean Data is located "Lean/Data".
      • '--resolution=Minute/Hour/Daily' resolution of your IVolatility data. Case insensitive.
    • KaikoDataConverter or KDC
      • '--market=' the exchange the data represents.
      • '--tick-type=Quote/Trade' the tick type being processed. Case insensitive.
      • '--source-dir=' path to the raw Kaiko data.
    • NseMarketDataConverter or NMDC
      • '--source-dir=' source directory of unzipped NSE data.
      • '--destination-dir=' directory where Lean Data is located "Lean/Data".
    • QuantQuoteConverter or QQC
      • '--source-dir=' directory where your QuantQuote order is extracted.
      • '--destination-dir=' directory where Lean Data is located "Lean/Data".
      • '--resolution=' resolution of the QuantQuote data.

Other tools

  • '--app='
    • CoarseUniverseGenerator or CUG