Commit Graph

47 Commits

Author SHA1 Message Date
Jared 4a9f9448c5 Merge pull request #3264 from aytacasan/master
IQFeed Downloader Program
2019-07-03 16:53:04 -07:00
Aytaç Aşan 7ca6dd9f0d Added quantity/volume support
When populate tick data from response, last size value assigned to quantity property. Also when aggregate ticks to trade bar sum of quantity assigned to volume property.
2019-06-06 10:12:23 -04:00
Martin Molinero d360ec36ac Address reviews 2019-05-31 18:26:18 -03:00
Aytaç Aşan d6c5bc5635 IQFeed Downloader
IQFeed data downloader program that download history data for all resolutions
2019-05-31 11:36:35 -04:00
Stefano Raggi a8d6f05825 Refactor and add error handling in OS class 2019-01-10 21:24:22 +01:00
Martin Molinero 0933da9303 Refactor previous commits
- Removing `AccountCurrency` from `Cash` and `Brokerage` classes.
`ICurrencyConverter` will now provide the `AccountCurrency`
- Adding new static `OrderFee.Zero` which will return a 0 order fee in
`NullCurrency`
- Adding static `Currencies.USD` value, replacing all "USD".
- Addin new static `Currencies.NullCurrency`
- Updating Bitfinex `FeeModel` so it return fees in quote currency.
Adding unit tests
2018-12-13 11:30:40 -03:00
Stefano Raggi 44412f2273 Move HistoryProviderBase to QuantConnect.Common project 2018-10-14 23:07:09 +02:00
Stefano Raggi dbaf109c78 Post-review updates
- Renamed events in SubscriptionDataReader and IHistoryProvider
- Added HistoryProvider base class with events and event invocators
2018-10-14 22:29:06 +02:00
Stefano Raggi 9fad26bc8f Add events to IHistoryProvider and SubscriptionDataReader
The SubscriptionDataReaderHistoryProvider was using StubResultHandler, so no error messages were being shown or logged. By adding events to IHistoryProvider and SubscriptionDataReader, the dependency on IResultHandler could be removed completely and error messages are now pushed up the stack.
2018-10-14 22:29:04 +02:00
Stefano Raggi 77b37f4dfd Update IHistoryProvider.Initialize to use HistoryProviderInitializeParameters
This is only a mechanical refactor for the updated IHistoryProvider.Initialize method in all IHistoryProvider implementations, call sites and unit tests.
2018-10-14 22:29:02 +02:00
Juan José D'Ambrosio 8ae73ba621 Fix IQFeed data provider future issue.
Remove references to `Symbol.Underlying` for futures.
Skip reading `TST$Y`
Add log at reading symbol list.
2018-08-27 16:17:22 -03:00
Michael Handschuh ca747b3667 Add split warning events
This follows the pattern used by delisting events, where we send a warning event
before the start of trading on the trading day before the split will happen. This
change also adds a SplitType enum having a Warning and SplitOccurred values.
2018-01-22 22:06:30 -05:00
Stefano Raggi 2cbe2af4fd Remove redundant properties in HistoryRequest class
SecurityType and Market properties are already implicitly included in the Symbol property.

With this change we avoid forgetting to set these properties when creating HistoryRequest objects (issue #863)
2017-04-29 20:31:39 +02:00
Andrew 672e134939 Removed ApiDataProvider
Refactored IHistoryProvider interface order of parameters
2017-02-16 15:47:06 -05:00
Andrew b6171cc9d5 Renamed IDataFileProvider to IDataProvider using resharper
Refactored IDataProvider interface to return stream. The IDataProvider
Fetch method now only takes a key.  The IDataProvider
has been reshuffled to be at the bottom of the LeanDataStack.  It provides
data to the rest of the Lean stack. The default implementation of IDataProvider reads
data from disc.

All IDataCacheProviders now have constructors which take IDataProviders
and use them to find data on disc.

Renamed DataCacheProvider to ZipDataCacheProvider

Added comments to IDataProvider and it's implementations

Added comments to IDataCacheProvider and it's implementations
2017-02-15 12:16:50 -05:00
Andrew ed2107132e IHistoryProvider.Initialize() requires a DataCacheProvider
Fixed bug where DataCacheProvider was returning a stream without closing
the stream.  Also, ZipFiles returned from ZipFileCacheProvider are
effectively disposed.

Removed date field from IDataCacheProvider interface
2017-02-15 12:16:49 -05:00
Andrew 952e1d19e3 Added interface IDataCacheProvider that defines a mechanism for caching data
This interface was built around the existing implementation of the
DataCacheProvider.  It's purpose is to define a method for caching data
files.  Currently, most data files are either read from disc or retrieved
remotely. The IDataChceProvider returns returns a Stream and can handle
many types of data. The IDataFileCacheProvider is needed because keeping data in memory will improve performance and overcome certain File read/write limitations (such as sharing violations) currently experienced by Lean.

There are two implementations of this interface.  The first is the
SingleZipEntryDataCache.  This is the default implementation. It does not
cache and returns the first entry found within a ZipFile.  The second is
the ZipEntryCacheProvider.  This is a rework of the existing
DataCachePrivider.  It caches ZipFiles for up to 10 seconds.  It can
return specific entries for option and future ZipFiles.  Otherwise, it
returns the first entry in a ZipFile.

Added IDataFileCacheProvider as parameter to IHistoryProvider.Initialize()

The IDataFileCacheProvider is very useful for the IHistoryProvider in that it can eliminate the need for history request to touch disc.  This can greatly improve peerformance and eliminate disc bugs associated with disc read/writes. To minimize changes throughtout Lean, the default value for the IDataFileCacheProvider is null in the IHistoryProvider.Initialize method.

IDataCacheProviders are passed down the Lean stack. Each instance of a Subscription Enumerator factory decides what cache it
will use.  In other words, the IDataCacheProvider is not configurable from
config.json.  The IDataCacheProvider is passwed down the stack form the
Enumerator factory to the IStreamReader where it is used to retrieve data.

Added useful helper method to Unizp files into a Stream.
2017-02-15 12:16:49 -05:00
quant1729 145ba7bd83 Updated code as per PR 2017-01-02 19:47:23 +01:00
quant1729 e2c3d5de45 Fixed bug: wrong HV calculations with IQFeed due to malformed history daily bars. 2016-12-15 10:11:59 +01:00
quant1729 b828133420 Fixed IQFeed bug with producing only trade ticks for FXCM 2016-12-14 12:20:41 +01:00
quant1729 bfc4c49b7c Added IsCanonical() to Symbol class 2016-12-12 20:51:53 +01:00
quant1729 b6cd0b0b8c Added support for derivatives history. Tested: IQFeed, IB. First cut. Added history sample algos. Added config.json. 2016-11-21 15:50:55 +01:00
quant1729 1305d96edd Open interest support: backtesting, converters, live data handlers (IQFeed/IB), live trading (IB). First cut. Regression Test. 2016-11-15 21:33:33 +01:00
quant1729 677e40ccda Fixed issue with duplicate futures symbols: exchange prioritization is added (similar to IB). 2016-11-09 18:04:43 +01:00
quant1729 0ab0405df8 Fix for typo in IContinuousContractModel
Fix for synchronization bug in IQFeedDataQueueUniverseProvider
2016-11-08 21:25:09 +01:00
quant1729 1141cd21e6 Merge branch 'futures' into master
Conflicts:
	Algorithm.CSharp/QuantConnect.Algorithm.CSharp.csproj
	Algorithm/QCAlgorithm.cs
	Brokerages/InteractiveBrokers/InteractiveBrokersBrokerage.cs
	Common/QuantConnect.csproj
	Common/Securities/Option/Option.cs
	Data/equity/usa/factor_files/aapl.csv
	Data/symbol-properties/symbol-properties-database.csv
	Engine/DataFeeds/Enumerators/Factories/BaseDataSubscriptionEnumeratorFactory.cs
	Engine/DataFeeds/Enumerators/Factories/OptionChainUniverseSubscriptionEnumeratorFactory.cs
	Engine/DataFeeds/SubscriptionDataReader.cs
	ToolBox/QuantConnect.ToolBox.csproj
2016-11-07 16:18:11 +01:00
quant1729 391e42de78 Updated IQFeed symbol universe module to minimize memory consumption 2016-11-04 14:00:47 +01:00
quant1729 2f56d36430 Updated symbol mapping file, fixing some bugs in futures mappings. 2016-11-03 09:55:26 +01:00
quant1729 f3a6b55c04 Refactored multiple symbol representations (options,futures) into one module 2016-11-02 19:20:52 +01:00
quant1729 18acd126b6 Fixing IQFeed timezones 2016-10-31 19:49:04 +01:00
quant1729 8c1ebdb8c5 Fix for bug trello #1119 2016-10-27 18:21:22 +02:00
Andrew fdea52a933 Renamed XxxFileProvider to XxxDataFileProvider 2016-10-20 08:36:36 -04:00
Andrew bcd3cb6b10 FileProvider can now be configured in config.json
The DefaultFileProvider is now configured as by default as the file-provider in config.json and passed in the the engine through the leanAlgorithmHandlers object.

The FileProvider is now passed into the TextSubscriptionDataSourceReader and ZipEntryNameSubscriptionDataSourceReader.  Most of the changes in this commit are just getting the FileProvider to those two methods.
2016-10-17 15:52:11 -04:00
quant1729 61bee66af0 Added indices to the IQFeed universe 2016-10-17 20:29:40 +02:00
quant1729 afe972df4a Fixed typo in IQFeed universe - FX symbols 2016-10-17 19:35:47 +02:00
quant1729 512b4064c1 Added config.json for tests of options - paper w/ IQFeed, trading/data: IB/IB, and trading/data: IB/IQFeed. Futures trading should also work fine.
Added futures symbols map file to the project due to very slow IQFeed symbol update function (account changes?)
Changed BasicTemplateOptionsAlgorithm.cs to run a single option position (enter/exit)
2016-10-12 21:06:39 +02:00
quant1729 f95b5349ae Added support of live options and futures data from IB (via IDataQueueHandler). First cut. Testing.
Fixed minor bug in IQFeedDataQueueUniverseProvider
2016-10-10 20:40:16 +02:00
quant1729 cee38707db Added support for futures expiration dates in IQFeed/IB, that makes possible the delivery of options/futures calendars and continuous contracts
Added futures market hours with help of Deval. This needs more tests in the future.
Added several futures exchanges. Some groundwork for future use of exchanges in the future symbols.
Removed IQFeed futures symbols map. Map is now generated and saved automatically, effectively removing the issue of IQFeed arbitrary renaming futures symbols
Changed IQFeed universe file downloading intervals from daily to weekly.
2016-10-07 19:10:53 +02:00
Stefano Raggi d0edb6806e Fixed slice timestamps in IHistoryProvider implementations 2016-10-04 14:53:57 +02:00
quant1729 3a0fbf3d91 Merge branch 'futures' of https://github.com/QuantConnect/Lean into futures
Conflicts:
	Brokerages/Backtesting/BasicOptionAssignmentSimulation.cs
2016-10-03 12:01:39 +02:00
quant1729 7fdf839dd4 Added support for futures nomenclature (standard groups: energy, softs, financials, etc)
Added symbol properties for that nomenclature
Added IQFeed mapping for that nomenclature
Added basic futures algo class
2016-09-29 21:52:00 +02:00
quant1729 f89ea2183f Added real-time support for futures. Tested with IQFeed, IB. 2016-09-28 19:10:03 +02:00
quant1729 cbcac47721 Fixed bug in IQFeed handler. Now IQFeed produces EST time stamped quotes for FX, and NY stamped - for all other asset classes 2016-09-26 18:08:01 +02:00
quant1729 7c8013b49c -Added futures support to Symbol, SID
-Loading IQFeed futures universe
2016-09-26 17:16:22 +02:00
quant1729 0396841d82 - Added support for sourcing and caching the full symbol list from IQFeed website.
- Added IQFeed options support to toolbox: option chain universe, option symbol list, subscriptions, live prices
- Added LiveTradingDataFeed to support options live screaming
- Added IB live options trading support: trading orders, holdings, live option exercising
- Modified ISymbolMapper interface to support derivatives (options, futures)
- Fixed minor bugs with (introduced ealier) symbol changes for options
Tested with IQFeed version 5.2.4.2. IB TWS offline version 957.
2016-09-14 21:56:12 +01:00
quant1729 2c623c0bc6 Added QFeedDataQueueUniverseProvider: loading and mapping IQFeed symbols to LEAN. Sanity check test. 2016-09-03 10:14:21 +02:00
AlexCatarino 2d96c9212b Implements IQFeedDataQueueHandler.
Adds the IQFeed to the Toolbox:
IQFeedDataQueueHandler implements  IDataQueueHandler and
IHistoryProvider

Changes config.json to include  IQFeed configuration.
At config.json "data-queue-handler" and "history-provider" should point to
newly created IQFeedDataQueueHandler to make the implementation work

Adds BasicTemplateForexAlgorithm.cs to test IQFeed implementation
2016-04-19 22:48:48 -03:00