/// <summary> /// Creates the brokerage under test and connects it /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider) { var oandaBrokerage = new OandaBrokerage(orderProvider, 0); var tokens = OandaBrokerageFactory.GetTokens(); var environment = Config.Get("oanda-environment"); if (environment == "sandbox") { var requestString = EndpointResolver.ResolveEndpoint(Environment.Sandbox, Server.Account) + "accounts"; var accountResponse = oandaBrokerage.MakeRequest<AccountResponse>(requestString, "POST"); oandaBrokerage.SetAccountId(accountResponse.accountId); oandaBrokerage.SetEnvironment("sandbox"); oandaBrokerage.SetUserName(accountResponse.username); } else { oandaBrokerage.SetAccountId(Convert.ToInt32(Config.Get("oanda-account-id"))); oandaBrokerage.SetEnvironment(Config.Get("oanda-environment")); } var qcUserId = OandaBrokerageFactory.Configuration.QuantConnectUserId; oandaBrokerage.SetTokens(qcUserId, tokens.AccessToken, tokens.IssuedAt, TimeSpan.FromSeconds(tokens.ExpiresIn)); oandaBrokerage.InitializeInstrumentSecurityTypeMap(); // keep the tokens up to date in the event of a refresh oandaBrokerage.SessionRefreshed += (sender, args) => { File.WriteAllText(OandaBrokerageFactory.TokensFile, JsonConvert.SerializeObject(args, Formatting.Indented)); }; return oandaBrokerage; }
public AccountProvider( IBankingProvider bankingProvider, IHoldingsProvider holdingsProvider) { _bankingProvider = bankingProvider; _holdingsProvider = holdingsProvider; }
/// <summary> /// Creates the brokerage under test and connects it /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider) { var environment = Config.Get("oanda-environment").ConvertTo<Environment>(); var accessToken = Config.Get("oanda-access-token"); var accountId = Config.Get("oanda-account-id").ConvertTo<int>(); return new OandaBrokerage(orderProvider, holdingsProvider, environment, accessToken, accountId); }
public AccountController( Account accounts, IBankingProvider bankingProvider, IHoldingsProvider holdingsProvider) { _accounts = accounts; _bankingProvider = bankingProvider; _holdingsProvider = holdingsProvider; }
/// <summary> /// Creates the brokerage under test /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider) { var server = Config.Get("fxcm-server"); var terminal = Config.Get("fxcm-terminal"); var userName = Config.Get("fxcm-user-name"); var password = Config.Get("fxcm-password"); var accountId = Config.Get("fxcm-account-id"); return(new FxcmBrokerage(orderProvider, holdingsProvider, server, terminal, userName, password, accountId)); }
public HoldingsProviderTest() { _provider = new HoldingsProvider(); _user = new User { UserId = Guid.NewGuid() }; _stock = new Stock { Ticker = "ABC" }; }
public Market( IOrderProvider ordersProvider, IHoldingsProvider holdingsProvider, IBankingProvider bankingProvider, ISharesProvider sharesProvider) { _ordersProvider = ordersProvider; _holdingsProvider = holdingsProvider; _bankingProvider = bankingProvider; _sharesProvider = sharesProvider; }
/// <summary> /// Creates a new instance of the <see cref="FxcmBrokerage"/> class /// </summary> /// <param name="orderProvider">The order provider</param> /// <param name="holdingsProvider">The holdings provider</param> /// <param name="server">The url of the server</param> /// <param name="terminal">The terminal name</param> /// <param name="userName">The user name (login id)</param> /// <param name="password">The user password</param> /// <param name="accountId">The account id</param> public FxcmBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider, string server, string terminal, string userName, string password, string accountId) : base("FXCM Brokerage") { _orderProvider = orderProvider; _holdingsProvider = holdingsProvider; _server = server; _terminal = terminal; _userName = userName; _password = password; _accountId = accountId; }
protected override IBrokerage CreateBrokerage(IOrderMapping orderMapping, IHoldingsProvider holdingsProvider) { if (!_gatewayLaunched) { _gatewayLaunched = true; InteractiveBrokersGatewayRunner.Start(Config.Get("ib-controller-dir"), Config.Get("ib-tws-dir"), Config.Get("ib-user-name"), Config.Get("ib-password"), Config.GetBool("ib-use-tws") ); } return(new InteractiveBrokersBrokerage(orderMapping)); }
protected override IBrokerage CreateBrokerage(IOrderMapping orderMapping, IHoldingsProvider holdingsProvider) { if (!_gatewayLaunched) { _gatewayLaunched = true; InteractiveBrokersGatewayRunner.Start(Config.Get("ib-controller-dir"), Config.Get("ib-tws-dir"), Config.Get("ib-user-name"), Config.Get("ib-password"), Config.GetBool("ib-use-tws") ); } return new InteractiveBrokersBrokerage(orderMapping); }
/// <summary> /// Creates the brokerage under test /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderMapping orderMapping, IHoldingsProvider holdingsProvider) { var accountID = TradierBrokerageFactory.Configuration.AccountID; var tradier = new TradierBrokerage(orderMapping, holdingsProvider, accountID); var qcUserID = TradierBrokerageFactory.Configuration.QuantConnectUserID; var tokens = TradierBrokerageFactory.GetTokens(); tradier.SetTokens(qcUserID, tokens.AccessToken, tokens.RefreshToken, tokens.IssuedAt, TimeSpan.FromSeconds(tokens.ExpiresIn)); // keep the tokens up to date in the event of a refresh tradier.SessionRefreshed += (sender, args) => { File.WriteAllText(TradierBrokerageFactory.TokensFile, JsonConvert.SerializeObject(args, Formatting.Indented)); }; return(tradier); }
/// <summary> /// Creates the brokerage under test and connects it /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider) { var oandaBrokerage = new OandaBrokerage(orderProvider, 0); var tokens = OandaBrokerageFactory.GetTokens(); var environment = Config.Get("oanda-environment"); if (environment == "sandbox") { var requestString = EndpointResolver.ResolveEndpoint(Environment.Sandbox, Server.Account) + "accounts"; var accountResponse = oandaBrokerage.MakeRequest <AccountResponse>(requestString, "POST"); oandaBrokerage.SetAccountId(accountResponse.accountId); oandaBrokerage.SetEnvironment("sandbox"); oandaBrokerage.SetUserName(accountResponse.username); } else { oandaBrokerage.SetAccountId(Convert.ToInt32(Config.Get("oanda-account-id"))); oandaBrokerage.SetEnvironment(Config.Get("oanda-environment")); } var qcUserId = OandaBrokerageFactory.Configuration.QuantConnectUserId; oandaBrokerage.SetTokens(qcUserId, tokens.AccessToken, tokens.IssuedAt, TimeSpan.FromSeconds(tokens.ExpiresIn)); oandaBrokerage.InitializeInstrumentSecurityTypeMap(); // keep the tokens up to date in the event of a refresh oandaBrokerage.SessionRefreshed += (sender, args) => { File.WriteAllText(OandaBrokerageFactory.TokensFile, JsonConvert.SerializeObject(args, Formatting.Indented)); }; return(oandaBrokerage); }
/// <summary> /// Extension method to return the quantity of holdings, if no holdings are present, then zero is returned. /// </summary> /// <param name="provider">The <see cref="IHoldingsProvider"/></param> /// <param name="symbol">The symbol we want holdings quantity for</param> /// <returns>The quantity of holdings for the specified symbol</returns> public static decimal GetHoldingsQuantity(this IHoldingsProvider provider, Symbol symbol) { var holding = provider.GetHoldings(symbol); return(holding == null ? 0 : holding.Quantity); }
/// <summary> /// Creates the brokerage under test and connects it /// </summary> /// <returns>A connected brokerage instance</returns> protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider);
/// <summary> /// Creates the brokerage under test /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider) { var accountID = TradierBrokerageFactory.Configuration.AccountID; var tradier = new TradierBrokerage(orderProvider, holdingsProvider, accountID); var qcUserID = TradierBrokerageFactory.Configuration.QuantConnectUserID; var tokens = TradierBrokerageFactory.GetTokens(); tradier.SetTokens(qcUserID, tokens.AccessToken, tokens.RefreshToken, tokens.IssuedAt, TimeSpan.FromSeconds(tokens.ExpiresIn)); // keep the tokens up to date in the event of a refresh tradier.SessionRefreshed += (sender, args) => { File.WriteAllText(TradierBrokerageFactory.TokensFile, JsonConvert.SerializeObject(args, Formatting.Indented)); }; return tradier; }
/// <summary> /// Creates the brokerage under test and connects it /// </summary> /// <returns>A connected brokerage instance</returns> protected abstract IBrokerage CreateBrokerage(IOrderMapping orderMapping, IHoldingsProvider holdingsProvider);
/// <summary> /// Creates the brokerage under test /// </summary> /// <returns>A connected brokerage instance</returns> protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider) { var server = Config.Get("fxcm-server"); var terminal = Config.Get("fxcm-terminal"); var userName = Config.Get("fxcm-user-name"); var password = Config.Get("fxcm-password"); var accountId = Config.Get("fxcm-account-id"); return new FxcmBrokerage(orderProvider, holdingsProvider, server, terminal, userName, password, accountId); }