Commit Graph

15 Commits

Author SHA1 Message Date
Martin-Molinero 9cb2452025 Oanda default Forex Market (#4706)
* Oanda default forex Market

- Use Oanda as default forex Market since it has more pairs.
- Remove FXCM data add Oanda equivalente data.
- Update unit and regression tests

* Address reviews

- Revert FXCM data removal
- Remove unrequired commented code

* Fix rebase
2020-09-14 16:43:23 -03:00
Martin Molinero 72c8affbc3 Adding unit tests for OrderTargetsByMarginImpact 2019-11-05 13:47:42 -03:00
Stefano Raggi c818313fb0 Add new LiveTradingDataFee unit test 2019-05-03 23:32:38 +02:00
Martin Molinero f1ecfd5784 Move DataManager in front of DataFeed
- Completly move `DataManager` in front of `DataFeed`. Specifically
`AddSubscription()` and `RemoveSubscription()` implementations. Also
removing IDataFeed.Subscriptions
2018-10-29 16:13:27 -03:00
Jared 9ba96121c1 Merge pull request #2609 from Martin-Molinero/refactor-2608-new-synchronizer-timeslice-streamer
Creating new Synchronizer - TimeSlice streamer
2018-10-25 08:51:52 -07:00
Martin Molinero 91806c4478 Fix invalid adding to SymbolCache
- Fix two invalid additions to SymbolCache. Adding a unit test which
reproduced the issue for each case.
2018-10-22 23:08:16 -03:00
Martin Molinero 9bdf702c41 Creating new Synchronizer - TimeSlice streamer
- Creating new `Synchronizer` which will consolidate and combine `TimeSlice`
streaming for both live and backtests modes. Will live in front of the
`DataManager`
- `SubscriptionSynchronizer` will be the `FrontierTimeProvider` exposed,
and owned, by the new `Synchronizer`
- Updating existing tests
2018-10-19 15:36:08 -03:00
Michael Handschuh c5cc3aa656 Apply dividends in live paper mode
We recently disabled dividend application in live mode because
it was more accurate to rely on the brokerage's daily cash sync
to pick up when the distribution was actually made. Before that
change we were applying dividends on the ex-date, and then it was
un-applied via the cash sync and then re-applied when the funds
finally hit the brokerage account. By making that change we failed
to ensure that dividends were still applied in live paper mode.

Dividends are detected via the PaperBrokerage's Scan method which
is called at least once every time loop. IAlgorithm.CurrenctSlice
is used to check for dividends and then the total distribution is
computed and applied directly to the portfolio's cash book.
2018-10-09 13:27:07 -04:00
Martin Molinero 1997197f47 Fix failing unit tests 2018-09-18 12:10:42 -03:00
Martin Molinero e74d0200b3 LiveTradingDataFeed will use SubscriptionSynchronizer 2018-09-10 21:22:18 -03:00
Martin Molinero bda109858d Add and Enable and fix ignored LiveTradingDataFeed tests 2018-08-31 17:17:13 -03:00
Martin Molinero 41873b2315 Fixing unit tests 2018-08-31 16:06:41 -03:00
snugs f33cffe77f Moves asset count limit logic out of Algorithm namespace
Since we now support universe selection and by convention never remove a security
object, we can't rely on the counts of the security manager to perform limits on
data subscriptions, this logic was moved deeper into the engine, where we perform
UniverseSelection, which is the path taken to add new data subscriptions
2015-12-21 16:13:23 -05:00
snugs 9e660ffcbe Remove usages of Symbol implicits from non-algorithm projects 2015-11-18 18:15:31 -05:00
snugs cd27c2833b Rewrites the LiveTradingDataFeed to be enumerator centric
This refactor was an effort to bring into line the various concepts between the
FileSystemDataFeed and the LiveTradingDataFeed. The former works using enumerators
and a time sync loop that uses the concept of a frontier to decide when to 'pull-off'
data that's at or before the frontier. This makes the feed uninterested in how the
data (via enumerators) is provided, and only concerns itself with things at the
subscription level, that is, time syncing and universe selection invocation.

These concepts were brought over to the LiveTradingDataFeed with some modification.
This change heavily uses object composition of enumerators to handle the various
concerns that were previously within the enumerator loops in the LiveTradingDataFeed.

Some enumerator types that help accomplish these concerns:

	FastForwardEnumerator 		- fast forwards an enumerator that contains old data
	RateLimitEnumerator			- prevents an enumerator from being invoked too frequently
	TradeBarBuilderEnumerator 	- Builds trade bars from tick data
	FrontierAwareEnumerator		- Emits the underlying when the frontier is on or after Current
	EnqueableEnumerator			- Acts as a liason between a push/pull system using a queue
2015-10-15 11:10:54 -04:00