/// <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;
        }
Example #2
0
        /// <summary>
        ///     Creates the brokerage under test and connects it
        /// </summary>
        /// <returns>A connected brokerage instance</returns>
        protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
        {
            var environment = Config.Get("oanda-environment").ConvertTo<Environment>();
            var accessToken = Config.Get("oanda-access-token");
            var accountId = Config.Get("oanda-account-id");

            return new OandaBrokerage(orderProvider, securityProvider, environment, accessToken, accountId);
        }
Example #3
0
        /// <summary>
        /// Creates the brokerage under test
        /// </summary>
        /// <returns>A connected brokerage instance</returns>
        protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
        {
            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, securityProvider, server, terminal, userName, password, accountId);
        }
Example #4
0
 /// <summary>
 /// Creates a new instance of the <see cref="FxcmBrokerage"/> class
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 /// <param name="securityProvider">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, ISecurityProvider securityProvider, string server, string terminal, string userName, string password, string accountId)
     : base("FXCM Brokerage")
 {
     _orderProvider = orderProvider;
     _securityProvider = securityProvider;
     _server = server;
     _terminal = terminal;
     _userName = userName;
     _password = password;
     _accountId = accountId;
 }
 public void Add(IConfig config)
 {
     columns.AddRange(config.GetColumns());
     exporters.AddRange(config.GetExporters());
     loggers.AddRange(config.GetLoggers());
     diagnosers.AddRange(config.GetDiagnosers());
     analysers.AddRange(config.GetAnalysers());
     jobs.AddRange(config.GetJobs());
     validators.AddRange(config.GetValidators());
     orderProvider = config.GetOrderProvider() ?? orderProvider;
     KeepBenchmarkFiles |= config.KeepBenchmarkFiles;
 }
Example #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OandaBrokerage"/> class.
        /// </summary>
        /// <param name="orderProvider">The order provider.</param>
        /// <param name="securityProvider">The holdings provider.</param>
        /// <param name="environment">The Oanda environment (Trade or Practice)</param>
        /// <param name="accessToken">The Oanda access token (can be the user's personal access token or the access token obtained with OAuth by QC on behalf of the user)</param>
        /// <param name="accountId">The account identifier.</param>
        public OandaBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider, Environment environment, string accessToken, int accountId)
            : base("Oanda Brokerage")
        {
            _orderProvider = orderProvider;
            _securityProvider = securityProvider;

            if (environment != Environment.Trade && environment != Environment.Practice)
                throw new NotSupportedException("Oanda Environment not supported: " + environment);

            _environment = environment;
            _accessToken = accessToken;
            _accountId = accountId;
        }
Example #7
0
        /// <summary>
        /// Creates a new instance of the <see cref="FxcmBrokerage"/> class
        /// </summary>
        /// <param name="orderProvider">The order provider</param>
        /// <param name="securityProvider">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, ISecurityProvider securityProvider, string server, string terminal, string userName, string password, string accountId)
            : base("FXCM Brokerage")
        {
            _orderProvider = orderProvider;
            _securityProvider = securityProvider;
            _server = server;
            _terminal = terminal;
            _userName = userName;
            _password = password;
            _accountId = accountId;

            HistoryResponseTimeout = 5000;
            MaximumHistoryRetryAttempts = 1;
        }
 protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
 {
     if (!_manualGatewayControl && !_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(orderProvider, securityProvider);
 }
Example #9
0
        /// <summary>
        /// Creates the brokerage under test
        /// </summary>
        /// <returns>A connected brokerage instance</returns>
        protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
        {
            var accountID = TradierBrokerageFactory.Configuration.AccountID;
            var tradier = new TradierBrokerage(orderProvider, securityProvider, 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;
        }
Example #10
0
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider);
Example #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OandaRestApiV1"/> class.
 /// </summary>
 /// <param name="symbolMapper">The symbol mapper.</param>
 /// <param name="orderProvider">The order provider.</param>
 /// <param name="securityProvider">The holdings provider.</param>
 /// <param name="environment">The Oanda environment (Trade or Practice)</param>
 /// <param name="accessToken">The Oanda access token (can be the user's personal access token or the access token obtained with OAuth by QC on behalf of the user)</param>
 /// <param name="accountId">The account identifier.</param>
 /// <param name="agent">The Oanda agent string</param>
 public OandaRestApiV1(OandaSymbolMapper symbolMapper, IOrderProvider orderProvider, ISecurityProvider securityProvider, Environment environment, string accessToken, string accountId, string agent)
     : base(symbolMapper, orderProvider, securityProvider, environment, accessToken, accountId, agent)
 {
 }
Example #12
0
 public Person4ManagerController(IEmpProvider empProvider, ICustomerProvider customerProvider, IPowerCheckProvider powerCheckProvider, IOrderProvider orderProvider)
 {
     _empProvider        = empProvider;
     _customerProvider   = customerProvider;
     _powerCheckProvider = powerCheckProvider;
     _orderProvider      = orderProvider;
 }
Example #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultBrokerageModel"/> class
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 /// <param name="accountType">The type of account to be modelled, defaults to
 /// <see cref="AccountType.Cash"/></param>
 public AlpacaBrokerageModel(IOrderProvider orderProvider, AccountType accountType = AccountType.Margin)
     : base(accountType)
 {
     _orderProvider = orderProvider;
 }
Example #14
0
 /// <summary>
 /// Gets a new instance of the <see cref="TradierBrokerageModel"/>
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 public override IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider) => new TradierBrokerageModel();
 public override IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider) => new BrokerageTransactionHandlerTests.BrokerageTransactionHandlerTests.TestBrokerageModel();
Example #16
0
 public static IConfig With(this IConfig config, IOrderProvider provider) => config.With(m => m.Set(provider));
 /// <summary>
 /// Creates a new InteractiveBrokersBrokerage using values from configuration:
 ///     ib-account (required)
 ///     ib-host (optional, defaults to LOCALHOST)
 ///     ib-port (optional, defaults to 4001)
 ///     ib-agent-description (optional, defaults to Individual)
 /// </summary>
 /// <param name="orderProvider">An instance of IOrderProvider used to fetch Order objects by brokerage ID</param>
 /// <param name="securityProvider">The security provider used to give access to algorithm securities</param>
 public InteractiveBrokersBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
     : this(
         orderProvider,
         securityProvider,
         Config.Get("ib-account"),
         Config.Get("ib-host", "LOCALHOST"),
         Config.GetInt("ib-port", 4001),
         Config.GetValue("ib-agent-description", IB.AgentDescription.Individual)
         )
 {
 }
Example #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OandaBrokerage"/> class.
 /// </summary>
 /// <param name="orderProvider">The order provider.</param>
 /// <param name="securityProvider">The holdings provider.</param>
 /// <param name="aggregator">consolidate ticks</param>
 /// <param name="environment">The Oanda environment (Trade or Practice)</param>
 /// <param name="accessToken">The Oanda access token (can be the user's personal access token or the access token obtained with OAuth by QC on behalf of the user)</param>
 /// <param name="accountId">The account identifier.</param>
 /// <param name="agent">The Oanda agent string</param>
 public OandaBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider, IDataAggregator aggregator, Environment environment, string accessToken, string accountId, string agent = OandaRestApiBase.OandaAgentDefaultValue)
     : base("Oanda Brokerage")
 {
     Initialize(orderProvider, securityProvider, aggregator, environment, accessToken, accountId, agent = OandaRestApiBase.OandaAgentDefaultValue);
 }
        /// <summary>
        /// Creates a new IBrokerage instance and set ups the environment for the brokerage
        /// </summary>
        /// <param name="brokerageData">Brokerage data containing necessary parameters for initialization</param>
        /// <param name="orderProvider">IOrderMapping instance to maintain IB -> QC order id mapping</param>
        /// <returns>A new brokerage instance</returns>
        public IBrokerage CreateBrokerage(Dictionary<string, string> brokerageData, IOrderProvider orderProvider)
        {
            var errors = new List<string>();

            // read values from the brokerage datas
            var useTws = Config.GetBool("ib-use-tws");
            var port = Config.GetInt("ib-port", 4001);
            var host = Config.Get("ib-host", "127.0.0.1");
            var twsDirectory = Config.Get("ib-tws-dir", "C:\\Jts");
            var ibControllerDirectory = Config.Get("ib-controller-dir", "C:\\IBController");

            var account = Read<string>(brokerageData, "ib-account", errors);
            var userID = Read<string>(brokerageData, "ib-user-name", errors);
            var password = Read<string>(brokerageData, "ib-password", errors);
            var agentDescription = Read<AgentDescription>(brokerageData, "ib-agent-description", errors);

            if (errors.Count != 0)
            {
                // if we had errors then we can't create the instance
                throw new Exception(string.Join(Environment.NewLine, errors));
            }

            // launch the IB gateway
            InteractiveBrokersGatewayRunner.Start(ibControllerDirectory, twsDirectory, userID, password, useTws);

            return new InteractiveBrokersBrokerage(orderProvider, account, host, port, agentDescription);
        }
Example #20
0
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, IHoldingsProvider holdingsProvider);
Example #21
0
 /// <summary>
 /// Gets the order by its brokerage id
 /// </summary>
 /// <param name="orderProvider">The order provider to search</param>
 /// <param name="brokerageId">The brokerage id to fetch</param>
 /// <returns>The first order matching the brokerage id, or null if no match is found</returns>
 public static Order GetOrderByBrokerageId(this IOrderProvider orderProvider, long brokerageId)
 {
     return(orderProvider.GetOrderByBrokerageId(brokerageId.ToStringInvariant()));
 }
Example #22
0
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider);
 /// <summary>
 /// Initializes a new instance of the <see cref="PartialMarketFillModel"/> class
 /// </summary>
 /// <code>
 /// // split market orders into two fills
 /// Securities["SPY"].FillModel = new PartialMarketFillModel(Transactions, 2);
 /// </code>
 /// <param name="orderProvider">The order provider used for getting order tickets</param>
 /// <param name="numberOfFills"></param>
 public PartialMarketFillModel(IOrderProvider orderProvider, int numberOfFills = 1)
 {
     _orderProvider = orderProvider;
     _percent = 1m / numberOfFills;
 }
 /// <summary>
 /// Gets a new instance of the <see cref="InteractiveBrokersBrokerageModel"/>
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 public override IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider) => new InteractiveBrokersBrokerageModel();
 public OrdersController(IOrderProvider provider) => _orderProvider = provider;
 public static IConfig With(this IConfig config, IOrderProvider provider) => config.With(m => m.Set(provider));
 protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
 {
     return(new InteractiveBrokersBrokerage(new QCAlgorithm(), orderProvider, securityProvider));
 }
Example #28
0
 /// <summary>
 /// Gets a new instance of the <see cref="AlpacaBrokerageModel"/>
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 public override IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider) => new AlpacaBrokerageModel(orderProvider);
Example #29
0
 public void Set(IOrderProvider provider) => orderProvider = provider ?? orderProvider;
Example #30
0
 public OrderController(IOrderProvider provider)
 {
     _provider = provider;
 }
 public void Set(IOrderProvider provider) => orderProvider = provider ?? orderProvider;
Example #32
0
 public BookingService(IOrderProvider orderProvider)
 {
     m_order_provider = orderProvider;
 }
 /// <summary>
 /// Gets the order by its brokerage id
 /// </summary>
 /// <param name="orderProvider">The order provider to search</param>
 /// <param name="brokerageId">The brokerage id to fetch</param>
 /// <returns>The first order matching the brokerage id, or null if no match is found</returns>
 public static Order GetOrderByBrokerageId(this IOrderProvider orderProvider, int brokerageId)
 {
     return(orderProvider.GetOrderByBrokerageId(brokerageId.ToString()));
 }
Example #34
0
        private static void SaveListOfTrades(IOrderProvider transactions, string csvFileName)
        {
            var orders = transactions.GetOrders(x => x.Status.IsFill());

            var path = Path.GetDirectoryName(csvFileName);
            if (path != null && !Directory.Exists(path))
                Directory.CreateDirectory(path);

            using (var writer = new StreamWriter(csvFileName))
            {
                foreach (var order in orders)
                {
                    var line = string.Format("{0},{1},{2},{3},{4}",
                        order.Time.ToString("yyyy-MM-dd HH:mm:ss"),
                        order.Symbol.Value,
                        order.Direction,
                        order.Quantity,
                        order.Price);
                    writer.WriteLine(line);
                }
            }
        }
Example #35
0
 public OrdersController(IOrderProvider orderProvider)
 {
     this.orderProvider = orderProvider;
 }
Example #36
0
 /// <summary>
 /// Gets a brokerage model that can be used to model this brokerage's unique behaviors
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 public abstract IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider);
Example #37
0
 /// <summary>
 /// Creates the brokerage under test and connects it
 /// </summary>
 /// <returns>A connected brokerage instance</returns>
 protected abstract IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider);
 public OrderController(IOrderProvider orderProvider)
 {
     _orderProvider = orderProvider;
 }
Example #39
0
 /// <summary>
 /// Create a new instance
 /// </summary>
 /// <param name="orderProvider">The order provider used to determine if it is safe to remove a security</param>
 public PendingRemovalsManager(IOrderProvider orderProvider)
 {
     _orderProvider   = orderProvider;
     _pendingRemovals = new Dictionary <Universe, List <Security> >();
 }
Example #40
0
 /// <summary>
 /// Gets a new instance of the <see cref="InteractiveBrokersBrokerageModel"/>
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 public override IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider) => new DefaultBrokerageModel();
 public OrderController(IAccessTokenService accessTokenService, IOrderProcessingService orderProcessingService, IOrderProvider orderProvider)
 {
     m_token_service    = accessTokenService;
     m_order_processing = orderProcessingService;
     m_order_provider   = orderProvider;
 }
 public ProductService(IProductProvider productProvider, IOrderProvider orderProvider, IOfferProvider offerProvider)
 {
     _productProvider = productProvider;
     _orderProvider   = orderProvider;
     _offerProvider   = offerProvider;
 }
Example #43
0
        /// <summary>
        /// Creates a new <see cref="IBrokerageModel"/> for the specified <see cref="BrokerageName"/>
        /// </summary>
        /// <param name="orderProvider">The order provider</param>
        /// <param name="brokerage">The name of the brokerage</param>
        /// <param name="accountType">The account type</param>
        /// <returns>The model for the specified brokerage</returns>
        public static IBrokerageModel Create(IOrderProvider orderProvider, BrokerageName brokerage, AccountType accountType)
        {
            switch (brokerage)
            {
            case BrokerageName.Default:
                return(new DefaultBrokerageModel(accountType));

            case BrokerageName.InteractiveBrokersBrokerage:
                return(new InteractiveBrokersBrokerageModel(accountType));

            case BrokerageName.TradierBrokerage:
                return(new TradierBrokerageModel(accountType));

            case BrokerageName.OandaBrokerage:
                return(new OandaBrokerageModel(accountType));

            case BrokerageName.FxcmBrokerage:
                return(new FxcmBrokerageModel(accountType));

            case BrokerageName.Bitfinex:
                return(new BitfinexBrokerageModel(accountType));

            case BrokerageName.Binance:
                return(new BinanceBrokerageModel(accountType));

            case BrokerageName.BinanceUS:
                return(new BinanceUSBrokerageModel(accountType));

            case BrokerageName.GDAX:
                return(new GDAXBrokerageModel(accountType));

            case BrokerageName.AlphaStreams:
                return(new AlphaStreamsBrokerageModel(accountType));

            case BrokerageName.Zerodha:
                return(new ZerodhaBrokerageModel(accountType));

            case BrokerageName.Atreyu:
                return(new AtreyuBrokerageModel(accountType));

            case BrokerageName.TradingTechnologies:
                return(new TradingTechnologiesBrokerageModel(accountType));

            case BrokerageName.Samco:
                return(new SamcoBrokerageModel(accountType));

            case BrokerageName.Kraken:
                return(new KrakenBrokerageModel(accountType));

            case BrokerageName.Exante:
                return(new ExanteBrokerageModel(accountType));

            case BrokerageName.FTX:
                return(new FTXBrokerageModel(accountType));

            case BrokerageName.FTXUS:
                return(new FTXUSBrokerageModel(accountType));

            default:
                throw new ArgumentOutOfRangeException(nameof(brokerage), brokerage, null);
            }
        }
Example #44
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PartialMarketFillModel"/> class
 /// </summary>
 /// <code>
 /// // split market orders into two fills
 /// Securities["SPY"].FillModel = new PartialMarketFillModel(Transactions, 2);
 /// </code>
 /// <param name="orderProvider">The order provider used for getting order tickets</param>
 /// <param name="numberOfFills"></param>
 public PartialMarketFillModel(IOrderProvider orderProvider, int numberOfFills = 1)
 {
     _orderProvider = orderProvider;
     _percent       = 1m / numberOfFills;
 }
        /// <summary>
        /// Creates a new InteractiveBrokersBrokerage from the specified values
        /// </summary>
        /// <param name="orderProvider">An instance of IOrderProvider used to fetch Order objects by brokerage ID</param>
        /// <param name="securityProvider">The security provider used to give access to algorithm securities</param>
        /// <param name="account">The Interactive Brokers account name</param>
        /// <param name="host">host name or IP address of the machine where TWS is running. Leave blank to connect to the local host.</param>
        /// <param name="port">must match the port specified in TWS on the Configure&gt;API&gt;Socket Port field.</param>
        /// <param name="agentDescription">Used for Rule 80A describes the type of trader.</param>
        public InteractiveBrokersBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider, string account, string host, int port, IB.AgentDescription agentDescription = IB.AgentDescription.Individual)
            : base("Interactive Brokers Brokerage")
        {
            _orderProvider = orderProvider;
            _securityProvider = securityProvider;
            _account = account;
            _host = host;
            _port = port;
            _clientID = IncrementClientID();
            _agentDescription = agentDescription;
            _client = new IB.IBClient();

            // set up event handlers
            _client.UpdatePortfolio += HandlePortfolioUpdates;
            _client.OrderStatus += HandleOrderStatusUpdates;
            _client.UpdateAccountValue += HandleUpdateAccountValue;
            _client.Error += HandleError;
            _client.TickPrice += HandleTickPrice;
            _client.TickSize += HandleTickSize;
            _client.CurrentTime += HandleBrokerTime;

            // we need to wait until we receive the next valid id from the server
            _client.NextValidId += (sender, e) =>
            {
                // only grab this id when we initialize, and we'll manually increment it here to avoid threading issues
                if (_nextValidID == 0)
                {
                    _nextValidID = e.OrderId;
                    _waitForNextValidID.Set();
                }
                Log.Trace("InteractiveBrokersBrokerage.HandleNextValidID(): " + e.OrderId);
            };
        }
 protected override IBrokerage CreateBrokerage(IOrderProvider orderProvider, ISecurityProvider securityProvider)
 {
     return(new InteractiveBrokersBrokerage(new QCAlgorithm(), orderProvider, securityProvider, new AggregationManager(), new LocalDiskMapFileProvider()));
 }
Example #47
0
 /// <summary>
 /// Gets a new instance of the <see cref="OandaBrokerageModel"/>
 /// </summary>
 /// <param name="orderProvider">The order provider</param>
 public override IBrokerageModel GetBrokerageModel(IOrderProvider orderProvider) => new OandaBrokerageModel();
Example #48
0
 public Service(IOrderProvider orderProvider)
 {
     _orderProvider = orderProvider;
 }