136 Commits

Author SHA1 Message Date
Aaron Janeiro Stone 7d70698c9a Feature #5098 - Time Series Indicators (#5099)
* Cleans history for ArimaIndicator/TimeSeriesIndicator.

-- removes commits from a tracked, already merged branch
-- removes artifacts from debugging sessions

* Removes AR/MA method as a user-specifiable method.
-- Prevents need to reference dll for MathNet in Tests (and potentially elsewhere).
-- Wrapper can be implemented around this functionality.

* Removes AR/MA method as a user-specifiable method.
-- Prevents need to reference dll for MathNet in Tests (and potentially elsewhere).
-- Wrapper can be implemented around this functionality.

* Better adherence to established code style

* Makes _intercept = true by default in constructor where it is not parameter

* WIP -- addressing reviews

* Passing tests following prior refactor

* Rearranged code, access modifiers adjusted

* Fixed indexing of _mafits, adds example algorithm

* Adds regression algo in python + addresses some refactors

* Addresses review

* Adds regression stats

* Fixes missing value signs

* Removes redundant code

* style changes

* style changes

* style: "err" -> "error"

* Minor tweaks

* Fixes python arima regression test

* Refactors AutoregressiveIntegratedMovingAverageTests.cs

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2021-02-01 20:17:49 -03:00
Gerardo Salazar 3e7af17e02 Implements Easy To Borrow Reality Modeling (WIP) (#5159)
* Creates IShortableProvider interface + interface impls

  * This is the foundational work for the addition of the shortable stocks
    feature for backtesting and live trading. Note that the QCAlgorithm
    API and the backend transaction handling will be implemented
    separately.

* temp; work on preorder checks

* improve checks

* tmep

* Enforces ETB checks at BrokerageTransactionHandler

  * Adds ETB Shortable Provider to QCAlgorithm and IAlgorithm
  * Removes ETB check from PreOrderChecksImpl
  * Removes outdated test, new test to come soon for relevant class

* Work in progress commit, pushing for review.

  * Adds new regression algorithm (WIP)
  * Enhances ShortableProviderOrdersRejectedRegressionAlgorithm
  * Adds new methods to QCAlgorithm
  * Move IShortableProvider to have BrokerageModel own it
  * Comments updates
  * Adds new properties to Equity Security for shortable

  * Fixes bug where retrieving open order quantities would aggregate the
    submitted order quantity rather than the remaining order quantity for
    open orders.

  * Fixes bug where quantity of zero would result in a
    false positive in QCAlgorithm.Shortable(...)

  * Code refactoring and comments updates

Co-authored-by: Jared <jaredbroad@gmail.com>
2021-01-14 13:33:44 -08:00
Aaron Janeiro Stone 7531046f14 Feature 4999 -- Adds RVI (#5041)
* adds RVI

* RVI refactor and tests
TODO: fix ComparesWithExternalDataRviSignal

* Fixed to allow all tests to pass.

* Addresses requested changes

* Addresses requested changes

* Addresses reviewer recommendations
2021-01-08 11:11:00 -03:00
Adalyat Nazirov 54fce3f666 FillForward enumerator does not loop infinitely if fillforward resolution is different from data resolution (#5118)
* change filename template. add fillforward resolution suffix

* replicate GH issue 5116 on master

it's easy to reproduce on FXCM market by using data resolution different from fillforward resolution.
in this cases daily vs hour/minute were added

* change priorities of Time & EndTime values.

it's necessary to calculate EndTime  properly, and then we can align Time to it.
potential end time should be also calculated using ptoper TZ. Because of we store open hours without TZ movement TZ in market-hours it's necessary to reapply TZ

fix tests

* Miss 2AM bar on Sunday of DST; FF 2AM bar on Sunday ST

* use UTC TimeZone as baseline during comparison
2021-01-06 20:18:08 -03:00
Adalyat Nazirov 1988ad1ae5 Bug 4925 daylight out of order bar (#4941)
* test

* wip

* Revert "Fix duplicated history entries when contains daylight saving time change (#4700)"

Use proper rounding down

* regression test

* remove unused parameters

* more tests

* fix name and comment

* improve regression test

* more tests: oanda market hours

* re-apply Exchange TZ to bar EndTime

* fix expected results

* we can't substract minute because it can harm algorithm on minute resolution; so we could use tick?

* rename prop: conflict with QCAlgorithm.StartDate

* do not log messages to pass travis ci log limit

* assign loghandler in AlgorithmSetupHandler

* reference to PR for more description

* due to https://github.com/QuantConnect/Lean/pull/5039 we don't need to override it manually
2020-12-28 16:24:33 -03:00
Aaron Janeiro Stone c650eb6c1c Adds DeM indicator (#5002)
* Adds DeM indicator

* Added reference to param movingaverage type

* Fixed variable declarations

* Added nameless initialize

* Missing DeM "type" args added

* Missing DeM "type" args added

* refactor

* Undid _previousInput → protected

* Demarker symbol: DeM →DEM

* Symbol change: DeM → DEM

* Updated symbols

TestDivByZero originally had dem as cmf.

* Symbol: DeM →DEM

Co-authored-by: Alexandre Catarino <AlexCatarino@users.noreply.github.com>
2020-12-15 08:29:55 -03:00
Aaron Janeiro Stone 7f5d69bbec Adds the Awesome Oscillator (#5005)
* Adds the awesome oscillator.

* added missing type hint for AO

* cleaned initializations

* refactor in call for AO(fast,slow,type)

* added missing type parameter for AO

* Changes AO sub-indicators to public.

Co-authored-by: Alexandre Catarino <AlexCatarino@users.noreply.github.com>
2020-12-11 20:46:07 -03:00
Aaron Janeiro Stone 32ab4fdea1 Adds ChaikinMoneyFlow indicator (#4986)
* Added CMF indicator

CMF is a volume-weighted average of accumulation and distribution over a period.

* Added initializer for CMF

Registration for ChaikinMoneyFlow implemented.

* Added CMF tests.

* Added CMF tests.

* spy_cmf.txt changed to external indicator data.

* Implement suggestions of @AlexCatarino

* added sum terms as subindicators.

* added sum terms as subindicators.

* Removal of vestigial rolling window

* Minor nit changes

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2020-12-11 18:04:17 -03:00
Gerardo Salazar bd7be31ede Fixes inability to parse negative strike prices in SecurityIdentifier (#4953)
* Fixes inability to parse negative strike prices in SecurityIdentifier

  * Adds new tests ensuring backwards compat and no throwing w/ negative
    strike prices

* Changes strategy used to support negative strike prices

  * We add support for negative strike prices at the cost of
    reducing the maximum allowed precision for the strike price.
    We encode a negative sign into the 20th bit of the strike price
    and set our bounds for precision to a max (exclusive) of 475712.
    This in turn is then used to form a negative strike when rebuilding
    the SID.

  * Adds tests covering changes

* Address review: adds additional tests and refactors code

* Address self-review: remove unused import in SymbolTests

* Address review: adds additional test cases for OptionStyle and OptionRight

  * These tests are to ensure that backwards compatibility is maintained

* Addresses review: Adds option chain <-> master SID hash test

  * Refactors previous tests to reduce on code duplication

* Reduce test duplication

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2020-11-30 15:45:36 -03:00
Stefano Raggi d7e543736f GDAX Brokerage updates (#4635)
* GDAX Brokerage updates

- Replaced fill detection from trade stream with monitor task
- Order fees for fills are now the real fees paid (previously they were calculated by the brokerage model)
- All unit and integration tests are green

* Address review

- Remove unnecessary signals
- Add "gdax-fill-monitor-timeout" config setting

* Remove user channel
2020-09-09 16:18:10 -03:00
Jovad Uribe fc6ccdbc11 Feature emv indicator addition (#4591)
* Create EaseOfMovementValue.cs

Added ease of movement file

* Update EaseOfMovementValue.cs

Added calculation for EMV and return its value

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

Rearranged code and removed all IndicatorBases

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

Added Min and Max Indicator

* Added Tests and Compile

* Fixed Bugs and Removed Reset

* Added Current Value and revereted to Bar data

* Fixed test file and refined indicator file

* TradeBar to IBaseDataBar

* Bug fixes

* bug fix

* Switching to TradeBar and attempting to fix Volume bug

There are two bugs that I have been having trouble fixing. 1. Cannot implicitly convert decimal to int (simple fix but cannot find where bug is taking place)
2. IBaseDataBar does not contain a definition for Volume

* Update EaseOfMovementValueTests.cs

* bug fix

* added data

* updated assertion

* added reset

* Update EaseOfMovementValueTests.cs

* Update EaseOfMovementValue.cs

* Update spy_emv.txt

I had the wrong test data in. Was throwing failed test for many pull requests.

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Cleaned Data

* Bug fixes

Fixed zero division error. Used better Test Data.

* removed readonly from _previous...price

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* bug fix

* Test Bug Fix

* EMV data from online

* Cosmetics

* Out of bounds fix

* Update EaseOfMovementValueTests.cs

* Update spy_emv.txt

* Update spy_emv.txt

* Added changes requested

Placed constructor first, fixed nullable type if statement, set 10,000 to default argument, added SMA.

* Update EaseOfMovementValue.cs

added variables

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Update EaseOfMovementValue.cs

* Fixed bugs

* Changed Delta, Added Assert

Create Indicator -> Update EMV -> Assert Status. Also changed delta from 1 to 0.000001 to improve test accuracy.

* Added unit test testing the SMA
2020-08-24 09:54:58 -03:00
Adalyat Nazirov b0fcf9f7ac fixup data 2020-07-31 17:53:56 +03:00
Adalyat Nazirov a8d6857407 test data 2020-07-31 17:53:55 +03:00
Colton Sellers b70173de22 Changed to intraday points, lots more data. 2020-07-28 14:34:08 -07:00
Colton Sellers c171431e3f Got a test file for Schaffs Trend Cycle 2020-07-28 14:34:07 -07:00
Adalyat Nazirov 5f7b58bc09 More Bollinger Indicators 2020-06-30 11:02:59 +03:00
Anand Vishnu ec6abfacc8 Add future contracts for NK, IN, TW and HSI 2020-06-29 17:35:40 +01:00
Martin Molinero 63bf4e72a0 Revert "Revert "Fix market open missing FillForward bar""
This reverts commit 1ac8146eae.
2020-05-08 12:46:02 -03:00
Martin-Molinero 1ac8146eae Revert "Fix market open missing FillForward bar" 2020-05-08 11:38:59 -03:00
Martin Molinero f78142fe32 Fix rebase after data update 2020-04-28 15:53:01 -03:00
Martin Molinero 075e82629a Add more unit tests
- Add more fill forward unit test including a weekend using different
combinations of resolutions
- Add required AIG second data file
- Avoid list in most common FF case
2020-04-28 15:23:07 -03:00
Stefano Raggi 7462934efa Update Coinbase brokerage unit tests
- should have been included in PR #4317
2020-04-21 17:23:40 +02:00
AlexCatarino 3a0640614c Updates Dropbox Algorithms
- Updates `DropboxUniverseSelectionAlgorithm` and `DropboxBaseDataUniverseSelectionAlgorithm` with new links to Dropbox files and date range to match the dates in the files.
- Adds copy of files in `TestData` folder.
2020-02-12 23:58:03 +00:00
Gerardo Salazar bfffbc183c Adds UB, TN to FuturesExpiryFunctions, MHDB, and symbol-properties-db 2020-02-11 18:05:59 -08:00
Gerardo Salazar 1773e03b81 Implements GE, CT, CC, KC, SB, OJ futures contract expiries 2020-01-20 17:57:42 -08:00
Adam May 04f54380f4 Add HRW Wheat, Brent Crude, Low Sulfur Gasoil and Random Length Lumber Futures 2020-01-14 21:39:37 +11:00
AlexCatarino c7e4d9798b Changes NLTK Data Location and Adds mlfinlab Package
- Use `/usr/share/nltk_data` instead of `/root/nltk_data`.
- Adds test for NLTK.
- Tidies the root directory of the docker image
- Adds support to mlfinlab
2019-11-12 22:30:04 +00:00
Juan José D'Ambrosio 2c55937f1a Add test for FredApi 2019-10-19 09:15:59 -03:00
Gerardo Salazar 4a83793067 Address review 2019-07-09 17:46:15 -07:00
Gerardo Salazar f93c7d8b53 Add unit tests to cover changes 2019-06-19 10:08:27 -07:00
Gerardo Salazar b0406ba9eb Adds the following symbols to futures database: EI, EMD, ...
EN, EPN, ESK, EVC, EWG, EWN, EXR, F1U, FO, FRC, FSS, GCU, GD, GDK,
GNF, HCL, HG, HH, HP, HRC, HTT, IBV, J7

Add new utility functions in FuturesExpiryUtillityFunctions
2019-06-07 08:49:56 -07:00
Jared 87f03e68ca Merge pull request #3185 from gsalaz98/feature-2991-add-expirations-to-futures-database-part-4
Add Various Symbols to Futures Database (Part 4 / 11)
2019-05-17 07:16:54 -07:00
AlexCatarino 3323b7b86d Fixes FishTransform Indicator
- The `FisherTransformFunction` was rounding up(down) the input value instead of down(up).
- Adds the `FISH` method to QCAlgorithm.
2019-05-13 17:57:08 +01:00
Gerardo Salazar 44a4451ea3 Adds the following futures to futures database: BTC, ...
BWF, BZ, CB, CJY, CNH, CRB, CSC, CSW, CSX, CU, D1N, DC,
DCB, DY, E6, E7, EAD, ECD, EDP, EH
2019-05-10 17:39:51 -05:00
Gerardo Salazar 35b0d84247 Add the following futures to futures database: AGA, AJL, AJS, ...
AJY, AKL, AKZ, ANE, APS, AR0, ARE, AUP, AVZ, AW, AYV, AYX, AZ1, B0, B7H, BCF, BIO, BK, BOO, BR7

Correct wrong entry for symbol ZT in symbol-properties-database

Add missing holidays or early closes for energies and fx in mhdb
2019-04-22 17:16:47 -05:00
Gerardo Salazar 26c2f2e36a Adds The Following Symbols To Futures Database: 6Z, A0D, A0F, A1L, ...
A1M, A1R, A32, A3G, A7E, A7I, A7Q, A8J, A8K, A8O, A91,
A9N, AA6, AA8, ABS, ABT, AC0, ACD, AD0, ADB, AE5
2019-04-04 17:03:57 -07:00
Gerardo Salazar 5e562c07c0 Use market hours database instead of custom FuturesExpiryCalendar
Added additional test cases for symbols 6L and 6M
2019-03-20 13:45:29 -07:00
Gerardo Salazar ea6d8ee088 Merge branch 'master' into feature-2991-add-expirations-to-futures-database-part-1 2019-03-18 19:52:47 -07:00
Gerardo Salazar 4d4f27f027 Add 1S, 22, 6L, 6M, 6R to futures database 2019-03-18 17:06:35 -07:00
AlexCatarino 3b36f4abe8 Adds more test dates
Also: adds YO to AlgoSeek.US.Futures.PriceMultipliers.1.1.csv
2019-03-15 18:02:18 +00:00
AlexCatarino f4d5f0e458 Adds RTY, NKD, and YO to Future's Database
Adds Russell 2000 E-Mini (RTY), Nikkei 225 Dollar (NKD) and Sugar 11 CME Globex (YO) to future data: entails update entries in market hours and symbol properties databases.
Updates `FutureExpiryFunction` to handle these contracts expiration date.
2019-03-15 17:22:10 +00:00
AlexCatarino bb99123c19 Refactors AverageDirectionalIndex and AverageDirectionalMovementIndexRating
- Fixes `TrueRange` computation: it was not using the H-L range;
- Fixes `SmoothedDirectionalMovementMinus` that used a constant value instead of the defined period;
- Use a `WilderMovingAverage` to compute ADX based on DX.
- Fixes `AverageDirectionalMovementIndexRating` only be ready when there is enough past values.
- Removes external data for `AverageDirectionalMovementIndexRating` and points to column in `AverageDirectionalMovementIndex` external data.

Closes #2666
2018-11-02 22:53:20 +00:00
Juan José D'Ambrosio 1552819ee1 Implement VIX futures expiry function
Test case and data added
Tests expected vs. actual fix.
2018-07-20 17:08:27 -03:00
Stefano Raggi ad36e4e9a7 Add JSON deserialization test for FineFundamental 2018-05-07 21:43:11 +02:00
Stefano Raggi a3864c220d Add live QuandlFuture custom data test 2018-04-20 23:00:05 +02:00
AlexCatarino 089ce953d3 Adds unit test for RelativeStrengthIndex with MovingAverageType.Wilders
Closes #1651
2018-03-21 00:18:08 +00:00
AlexCatarino 25e7ad2fba Adds unit test for AverageTrueRange with MovingAverageType.Wilders
Closes #1722
2018-03-21 00:15:54 +00:00
Juan José D'Ambrosio de0926834e Fixes MACD's Signal and Histogram warming up
Formatting test file


tiny format fix


Historgram test fixed


external data from free stock charts


new testing data without pandas
2018-03-06 20:03:15 -03:00
Juan José D'Ambrosio 5c2c7224e2 MACD EMA as default 2018-02-28 23:49:15 -03:00
Juan José D'Ambrosio e7223da4a7 Coppock Curve indicator implementation 2018-01-30 12:05:13 -03:00