コード例 #1
0
        /// <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;
        }
コード例 #2
0
 public AccountProvider(
     IBankingProvider bankingProvider,
     IHoldingsProvider holdingsProvider)
 {
     _bankingProvider  = bankingProvider;
     _holdingsProvider = holdingsProvider;
 }
コード例 #3
0
ファイル: OandaBrokerageTests.cs プロジェクト: bizcad/LeanJJN
        /// <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);
        }
コード例 #4
0
 public AccountController(
     Account accounts,
     IBankingProvider bankingProvider,
     IHoldingsProvider holdingsProvider)
 {
     _accounts         = accounts;
     _bankingProvider  = bankingProvider;
     _holdingsProvider = holdingsProvider;
 }
コード例 #5
0
        /// <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));
        }
コード例 #6
0
 public HoldingsProviderTest()
 {
     _provider = new HoldingsProvider();
     _user     = new User {
         UserId = Guid.NewGuid()
     };
     _stock = new Stock {
         Ticker = "ABC"
     };
 }
コード例 #7
0
 public Market(
     IOrderProvider ordersProvider,
     IHoldingsProvider holdingsProvider,
     IBankingProvider bankingProvider,
     ISharesProvider sharesProvider)
 {
     _ordersProvider   = ordersProvider;
     _holdingsProvider = holdingsProvider;
     _bankingProvider  = bankingProvider;
     _sharesProvider   = sharesProvider;
 }
コード例 #8
0
ファイル: FxcmBrokerage.cs プロジェクト: hittudiv/Lean
 /// <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;
 }
コード例 #9
0
ファイル: FxcmBrokerage.cs プロジェクト: tzaavi/Lean
 /// <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;
 }
コード例 #10
0
 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));
 }
コード例 #11
0
 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);
 }
コード例 #12
0
        /// <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);
        }
コード例 #13
0
        /// <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);
        }
コード例 #14
0
        /// <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);
        }
コード例 #15
0
ファイル: BrokerageTests.cs プロジェクト: sprgn/LeanITrend
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider);
コード例 #16
0
        /// <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;
        }
コード例 #17
0
ファイル: BrokerageTests.cs プロジェクト: reddream/Lean
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderMapping orderMapping, IHoldingsProvider holdingsProvider);
コード例 #18
0
ファイル: BrokerageTests.cs プロジェクト: hittudiv/Lean
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider);
コード例 #19
0
ファイル: FxcmBrokerageTests.cs プロジェクト: hittudiv/Lean
        /// <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);
        }
コード例 #20
0
ファイル: BrokerageTests.cs プロジェクト: solaristrading/Lean
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderMapping orderMapping, IHoldingsProvider holdingsProvider);