Commit Graph

37 Commits

Author SHA1 Message Date
Martin Molinero 08b72c5907 Overall performance improvements v2
- Adding `LazyToUpper()` implementation, that will avoid the call to
`ToUpper` if the string is already upper.
- Reduce the timezone conversions at `Time.EachTradeableDayInTimeZone`
- `TotalPortfolioValue` will iterate over all securities once
- Adding new `SecurityIdentifier` cache, significant impact for
algorithms using coarse/fine data
2019-06-05 17:06:59 -03:00
Michael Handschuh 70dee9380f Add Symbol.HasUnderlyingSymbol(Symbol)
Adds a convenience method to check if a symbol has a specific underlying
2018-03-19 12:40:54 -04:00
Stefano Raggi 45cf56132d Updated Symbol comparisons against Symbol.Empty and null to be equivalent 2018-01-12 20:22:34 +01:00
Stefano Raggi 14b9b9c839 Fix bug in Symbol inequality operator
The operator method was returning true when comparing a null symbol against null.
2018-01-10 18:02:11 +01:00
Andrew bf3eadf0c9 Throw when History methods recieve Symbol.Empty
Often users will request History with a string instead of a Symbol. Because of the implicit conversion between Symbol and string, this only works if the ticker has been first added to the algorithm as a security using a method like AddSecurity(), AddEquity() etc. This commit checks for failed implicit conversions in History request and returns an error message to the user that should better enable users to debug what has gone wrong.
2017-11-01 15:13:16 -04:00
12112 83fdf9c386 crypto wip 2017-07-14 16:53:42 +01:00
Stefano Raggi e1710e9031 Remove BaseData underlying symbol from Future symbol 2017-04-17 13:52:23 +02:00
quant1729 6d9f620215 Updated futures canonical symbol representation. Tested: local backtests, local live IQFeed and IB 2017-01-06 23:10:55 +08:00
quant1729 bfc4c49b7c Added IsCanonical() to Symbol class 2016-12-12 20:51:53 +01:00
quant1729 9b704434a3 Improved performance of options converter on Ubuntu -- ~25 times 2016-12-08 15:59:37 +01:00
quant1729 f3a6b55c04 Refactored multiple symbol representations (options,futures) into one module 2016-11-02 19:20:52 +01:00
quant1729 5803115548 Option splits and renames in backtesting. Added regression tests. 2016-10-26 21:20:03 +02:00
quant1729 7c8013b49c -Added futures support to Symbol, SID
-Loading IQFeed futures universe
2016-09-26 17:16:22 +02:00
quant1729 dd72878d2c Implementing futures support. Future, FutureCache, Futures Chain, Futures Universe classes and more 2016-09-26 13:56:02 +02:00
quant1729 58c3ca21ca Added support for underlying in Symbol class 2016-08-24 16:30:55 +02:00
Michael Handschuh bf69db0551 Changes, issues with BTOA 2016-04-20 12:15:37 -04:00
Michael Handschuh bc13d5001f Document Symbol.Create(option) is canonical 2016-04-07 13:39:19 -04:00
Michael Handschuh c560bcd1df Defines option symbol naming
We're using OSI for option contract symbols
For canonical, we're preceeding the underlying with a ?, such as '?SPY' for easy string based indexing
2016-03-16 19:39:33 -04:00
Michael Handschuh 80cc59b28c Adds Symbol.CreateOption 2016-02-17 13:49:33 -05:00
snugs ee37885ca8 Adds alias to Symbol.Create, useful for same security, different markets 2015-12-21 13:34:14 -05:00
snugs 3c8593b73f Adds Symbol.Create for convenience in creating Symbol objects 2015-11-27 15:15:29 -05:00
snugs 9e660ffcbe Remove usages of Symbol implicits from non-algorithm projects 2015-11-18 18:15:31 -05:00
snugs 8289d1985d Make Symbol implicit able to handle SIDs 2015-11-18 13:11:27 -05:00
snugs 6bd6d61c83 Symbol implicits will return empty on failure 2015-11-18 12:55:50 -05:00
snugs 18edd22e68 Rename SymbolCache.Get to SymbolCache.GetSymbol 2015-11-18 12:55:49 -05:00
snugs d5da2efdf1 Clean up Symbol equality methods 2015-11-18 12:55:49 -05:00
snugs 9f7e1964ff Make Symbol implicit operators inverse operations
Having a symbol implicit to string and then string to symbol must be
inverse operations, consider the case we pass Symbol data.Symbol to a
method expecting a string, and then that same method invokes another
method expecting a Symbol, we'll need it to resolve back to the original
symbol.
2015-11-18 12:55:48 -05:00
snugs aef506f428 Make Symbol string overrides as Obsolete 2015-11-18 12:55:47 -05:00
snugs 3208c4c46b Symbol.Equals(obj) now accepts sid struct 2015-11-17 19:17:09 -05:00
snugs 8f9a228e0c Remove usages of Symbol implicits from engine
Breaks SymbolCache into its own file
2015-11-12 13:55:43 -05:00
snugs 7b6c82841f Initial implementation of SecurityIdentifier 2015-11-12 13:55:42 -05:00
snugs 192053ca74 Fixes bug in Symbol IComparable with string input
Adds some tests for the Symbol IComparable implementation as well
2015-10-15 11:10:50 -04:00
snugs 6b02e96a40 Adds SymbolJsonConverter
For some still unknown reason, when trying to deserialize a
List<Ticks> into a List<BaseData> with multiple symbols, all
instances would share the same symbol reference (to the last
symbol in the list). Adding a dedicated json converter to
handle the deserialization handled this.

SymbolTests.HandlesListTicksWithDifferentSymbols has the
demonstrating case of the bug.
2015-09-22 15:13:56 -04:00
snugs c67ff638f4 Renames Symbol.SID to Symbol.Permtick
Coming soon we'll have a full SID system, so renames to make backwards compatibility easier
2015-09-20 23:14:53 -04:00
snugs 9e46db50a6 Fixed symbol serialization issues 2015-09-18 18:21:54 -04:00
snugs 72fa0c40bd Set JsonConstructor in Symbol for serializer 2015-09-15 15:40:05 -04:00
snugs df79ce30c2 Adds the Symbol type
This includes updating all usages of symbol as a security identifier to use the new type.
The type includes a unique field, SID, as well as the current ticker's value. This allows
for consistent addressability while also allowing the ticker to evolve over time with the
mapping changes.

Effort was made to maintain compile and runtime backwards compatibility.
2015-09-01 22:17:10 -04:00