public void Setup() { _algo = new QCAlgorithm(); var historyProvider = new SubscriptionDataReaderHistoryProvider(); historyProvider.Initialize(null, new DefaultDataProvider(), new SingleEntryDataCacheProvider(new DefaultDataProvider()), new LocalDiskMapFileProvider(), new LocalDiskFactorFileProvider(), null); _algo.HistoryProvider = historyProvider; _tradeBarSecurity = new Security(SecurityExchangeHours.AlwaysOpen(DateTimeZone.Utc), _tradeBarConfig, new Cash(CashBook.AccountCurrency, 0, 1m), SymbolProperties.GetDefault(CashBook.AccountCurrency)); _quoteBarSecurity = new Security(SecurityExchangeHours.AlwaysOpen(DateTimeZone.Utc), _quoteBarConfig, new Cash(CashBook.AccountCurrency, 0, 1m), SymbolProperties.GetDefault(CashBook.AccountCurrency)); _brokerageInitializer = new BrokerageModelSecurityInitializer(new DefaultBrokerageModel(), new FuncSecuritySeeder(_algo.GetLastKnownPrice)); }
public void BrokerageModelSecurityInitializer_SetLeverageForBuyingPowerModel_Successfully() { var brokerageModel = new DefaultBrokerageModel(AccountType.Cash); var localBrokerageInitializer = new BrokerageModelSecurityInitializer(brokerageModel, new FuncSecuritySeeder(_algo.GetLastKnownPrice)); Assert.AreEqual(1.0, _tradeBarSecurity.Leverage); localBrokerageInitializer.Initialize(_tradeBarSecurity); Assert.AreEqual(1.0, _tradeBarSecurity.Leverage); Assert.AreEqual(1.0, _tradeBarSecurity.BuyingPowerModel.GetLeverage(_tradeBarSecurity)); }
public void SetLeverage_DoesNotThrowInvalidOperationException_BrokerageModelSecurityInitializer_Test() { var crypto = GetCrypto(Symbol); var brokerageInitializer = new BrokerageModelSecurityInitializer( new BitfinexBrokerageModel(AccountType.Margin), SecuritySeeder.Null); brokerageInitializer.Initialize(crypto); Assert.DoesNotThrow(() => crypto.SetLeverage(2)); }
public void ReturnsExpectedTimestamps() { var symbol = CoarseFundamental.CreateUniverseSymbol(Market.USA); var config = new SubscriptionDataConfig(typeof(CoarseFundamental), symbol, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, false, false, TickType.Trade, false); var security = new Security( SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), config, new Cash(Currencies.USD, 0, 1), SymbolProperties.GetDefault(Currencies.USD), ErrorCurrencyConverter.Instance, RegisteredSecurityDataTypesProvider.Null, new SecurityCache() ); var universeSettings = new UniverseSettings(Resolution.Daily, 2m, true, false, TimeSpan.FromDays(1)); var securityInitializer = new BrokerageModelSecurityInitializer(new DefaultBrokerageModel(), SecuritySeeder.Null); var universe = new CoarseFundamentalUniverse(universeSettings, securityInitializer, x => new List <Symbol> { Symbols.AAPL }); var fileProvider = new DefaultDataProvider(); var factory = new BaseDataCollectionSubscriptionEnumeratorFactory(); var dateStart = new DateTime(2014, 3, 26); var dateEnd = new DateTime(2014, 3, 27); var days = (dateEnd - dateStart).Days + 1; var request = new SubscriptionRequest(true, universe, security, config, dateStart, dateEnd); using (var enumerator = factory.CreateEnumerator(request, fileProvider)) { dateStart = dateStart.AddDays(-1); for (var i = 0; i <= days; i++) { Assert.IsTrue(enumerator.MoveNext()); var current = enumerator.Current as BaseDataCollection; Assert.IsNotNull(current); Assert.AreEqual(dateStart.AddDays(i), current.Time); Assert.AreEqual(dateStart.AddDays(i), current.EndTime); Assert.AreEqual(dateStart.AddDays(i - 1), current.Data[0].Time); Assert.AreEqual(dateStart.AddDays(i), current.Data[0].EndTime); } Assert.IsFalse(enumerator.MoveNext()); Assert.IsNotNull(enumerator.Current); } }
public void DoesNotLeakMemory() { var symbol = CoarseFundamental.CreateUniverseSymbol(Market.USA); var config = new SubscriptionDataConfig(typeof(CoarseFundamental), symbol, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, false, false, TickType.Trade, false); var security = new Security( SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), config, new Cash(Currencies.USD, 0, 1), SymbolProperties.GetDefault(Currencies.USD), ErrorCurrencyConverter.Instance, RegisteredSecurityDataTypesProvider.Null, new SecurityCache() ); var universeSettings = new UniverseSettings(Resolution.Daily, 2m, true, false, TimeSpan.FromDays(1)); var securityInitializer = new BrokerageModelSecurityInitializer(new DefaultBrokerageModel(), SecuritySeeder.Null); var universe = new CoarseFundamentalUniverse(universeSettings, securityInitializer, x => new List <Symbol> { Symbols.AAPL }); var fileProvider = new DefaultDataProvider(); var factory = new BaseDataCollectionSubscriptionEnumeratorFactory(); GC.Collect(); var ramUsageBeforeLoop = OS.TotalPhysicalMemoryUsed; var date = new DateTime(2014, 3, 25); const int iterations = 1000; for (var i = 0; i < iterations; i++) { var request = new SubscriptionRequest(true, universe, security, config, date, date); using (var enumerator = factory.CreateEnumerator(request, fileProvider)) { enumerator.MoveNext(); } } GC.Collect(); var ramUsageAfterLoop = OS.TotalPhysicalMemoryUsed; Log.Trace($"RAM usage - before: {ramUsageBeforeLoop} MB, after: {ramUsageAfterLoop} MB"); Assert.IsTrue(ramUsageAfterLoop - ramUsageBeforeLoop < 10); }
public void Setup() { _algo = new QCAlgorithm(); var historyProvider = new SubscriptionDataReaderHistoryProvider(); historyProvider.Initialize( new HistoryProviderInitializeParameters( null, null, TestGlobals.DataProvider, new SingleEntryDataCacheProvider(new DefaultDataProvider()), TestGlobals.MapFileProvider, TestGlobals.FactorFileProvider, null, true, new DataPermissionManager() ) ); _algo.HistoryProvider = historyProvider; _algo.SubscriptionManager.SetDataManager(new DataManagerStub(_algo)); _tradeBarSecurity = new Security( SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), _tradeBarConfig, new Cash(Currencies.USD, 0, 1m), SymbolProperties.GetDefault(Currencies.USD), ErrorCurrencyConverter.Instance, RegisteredSecurityDataTypesProvider.Null, new SecurityCache() ); _quoteBarSecurity = new Security( SecurityExchangeHours.AlwaysOpen(DateTimeZone.ForOffset(Offset.FromHours(-5))), _quoteBarConfig, new Cash(Currencies.USD, 0, 1m), SymbolProperties.GetDefault(Currencies.USD), ErrorCurrencyConverter.Instance, RegisteredSecurityDataTypesProvider.Null, new SecurityCache() ); _brokerageInitializer = new BrokerageModelSecurityInitializer(new DefaultBrokerageModel(), new FuncSecuritySeeder(_algo.GetLastKnownPrice)); }