public void Setup() { var priceProvider = new Mock <IPriceProvider>(); priceProvider.Setup(x => x.GetLastPrice(It.IsAny <Symbol>())).Returns(1.234m); _unit = new GDAXBrokerage("wss://localhost", _wss.Object, _rest.Object, "abc", "MTIz", "pass", _algo.Object, priceProvider.Object); _orderData = File.ReadAllText("TestData//gdax_order.txt"); _matchData = File.ReadAllText("TestData//gdax_match.txt"); _openOrderData = File.ReadAllText("TestData//gdax_openOrders.txt"); _accountsData = File.ReadAllText("TestData//gdax_accounts.txt"); _holdingData = File.ReadAllText("TestData//gdax_holding.txt"); _orderByIdData = File.ReadAllText("TestData//gdax_orderById.txt"); _tickerData = File.ReadAllText("TestData//gdax_ticker.txt"); _symbol = Symbol.Create("BTCUSD", SecurityType.Crypto, Market.GDAX); _rest.Setup(m => m.Execute(It.Is <IRestRequest>(r => r.Resource.StartsWith("/products/")))).Returns(new RestSharp.RestResponse { Content = File.ReadAllText("TestData//gdax_tick.txt"), StatusCode = HttpStatusCode.OK }); _rest.Setup(m => m.Execute(It.Is <IRestRequest>(r => r.Resource.StartsWith("/orders/" + _brokerId) || r.Resource.StartsWith("/orders/" + _matchBrokerId)))) .Returns(new RestSharp.RestResponse { Content = File.ReadAllText("TestData//gdax_orderById.txt"), StatusCode = HttpStatusCode.OK }); _algo.Setup(a => a.BrokerageModel.AccountType).Returns(_accountType); _algo.Setup(a => a.AccountCurrency).Returns(Currencies.USD); }
public static void AddOrder(GDAXBrokerage unit, int id, string brokerId, decimal quantity) { var order = new Orders.MarketOrder { BrokerId = new List <string> { brokerId }, Quantity = quantity, Id = id }; unit.CachedOrderIDs.TryAdd(1, order); unit.FillSplit.TryAdd(id, new GDAXFill(order)); }
public static void AddOrder(GDAXBrokerage unit, int id, string brokerId, decimal quantity) { var order = new Orders.MarketOrder { BrokerId = new List <string> { brokerId }, Symbol = Btcusd, Quantity = quantity, Id = id }; order.PriceCurrency = Currencies.USD; unit.CachedOrderIDs.TryAdd(1, order); unit.FillSplit.TryAdd(id, new GDAXFill(order)); }
public void GetsHistory(Symbol symbol, Resolution resolution, TickType tickType, TimeSpan period, bool shouldBeEmpty) { var restClient = new RestClient("https://api.pro.coinbase.com"); var webSocketClient = new WebSocketClientWrapper(); var aggregator = new AggregationManager(); var brokerage = new GDAXBrokerage( Config.Get("gdax-url", "wss://ws-feed.pro.coinbase.com"), webSocketClient, restClient, Config.Get("gdax-api-key"), Config.Get("gdax-api-secret"), Config.Get("gdax-passphrase"), null, null, aggregator, null); var historyProvider = new BrokerageHistoryProvider(); historyProvider.SetBrokerage(brokerage); historyProvider.Initialize(new HistoryProviderInitializeParameters(null, null, null, null, null, null, null, false, new DataPermissionManager())); var now = DateTime.UtcNow; var requests = new[] { new HistoryRequest(now.Add(-period), now, typeof(TradeBar), symbol, resolution, SecurityExchangeHours.AlwaysOpen(TimeZones.Utc), DateTimeZone.Utc, resolution, false, false, DataNormalizationMode.Adjusted, tickType) }; var history = historyProvider.GetHistory(requests, TimeZones.Utc).ToList(); foreach (var slice in history) { var bar = slice.Bars[symbol]; Log.Trace($"{bar.Time}: {bar.Symbol} - O={bar.Open}, H={bar.High}, L={bar.Low}, C={bar.Close}, V={bar.Volume}"); } if (shouldBeEmpty) { Assert.IsTrue(history.Count == 0); } else { Assert.IsTrue(history.Count > 0); } Log.Trace("Data points retrieved: " + historyProvider.DataPointCount); }
private static GDAXBrokerage GetBrokerage() { var wssUrl = Config.Get("gdax-url", "wss://ws-feed.pro.coinbase.com"); var webSocketClient = new WebSocketWrapper(); var restClient = new RestClient("https://api.pro.coinbase.com"); var apiKey = Config.Get("gdax-api-key"); var apiSecret = Config.Get("gdax-api-secret"); var passPhrase = Config.Get("gdax-passphrase"); var algorithm = new QCAlgorithm(); var brokerage = new GDAXBrokerage(wssUrl, webSocketClient, restClient, apiKey, apiSecret, passPhrase, algorithm); brokerage.Connect(); return(brokerage); }
private static GDAXBrokerage GetBrokerage() { var wssUrl = Config.Get("gdax-url", "wss://ws-feed.pro.coinbase.com"); var webSocketClient = new WebSocketWrapper(); var restClient = new RestClient("https://api.pro.coinbase.com"); var apiKey = Config.Get("gdax-api-key"); var apiSecret = Config.Get("gdax-api-secret"); var passPhrase = Config.Get("gdax-passphrase"); var algorithm = new QCAlgorithm(); var userId = Config.GetInt("job-user-id"); var userToken = Config.Get("api-access-token"); var priceProvider = new ApiPriceProvider(userId, userToken); var brokerage = new GDAXBrokerage(wssUrl, webSocketClient, restClient, apiKey, apiSecret, passPhrase, algorithm, priceProvider); brokerage.Connect(); return(brokerage); }
public void Setup() { _unit = new GDAXBrokerage("wss://localhost", _wss.Object, _rest.Object, "abc", "MTIz", "pass", _algo.Object); _orderData = File.ReadAllText("TestData//gdax_order.txt"); _matchData = File.ReadAllText("TestData//gdax_match.txt"); _openOrderData = File.ReadAllText("TestData//gdax_openOrders.txt"); _accountsData = File.ReadAllText("TestData//gdax_accounts.txt"); _holdingData = File.ReadAllText("TestData//gdax_holding.txt"); _orderByIdData = File.ReadAllText("TestData//gdax_orderById.txt"); _tickerData = File.ReadAllText("TestData//gdax_ticker.txt"); _symbol = Symbol.Create("BTCUSD", SecurityType.Crypto, Market.GDAX); _rest.Setup(m => m.Execute(It.Is <IRestRequest>(r => r.Resource.StartsWith("/products/")))).Returns(new RestSharp.RestResponse { Content = File.ReadAllText("TestData//gdax_tick.txt"), StatusCode = HttpStatusCode.OK }); _rest.Setup(m => m.Execute(It.Is <IRestRequest>(r => r.Resource.StartsWith("/orders/" + _brokerId) || r.Resource.StartsWith("/orders/" + _matchBrokerId)))) .Returns(new RestSharp.RestResponse { Content = File.ReadAllText("TestData//gdax_orderById.txt"), StatusCode = HttpStatusCode.OK }); _algo.Setup(a => a.BrokerageModel.AccountType).Returns(_accountType); var rateMock = new Mock <IRestClient>(); _unit.RateClient = rateMock.Object; rateMock.Setup(r => r.Execute(It.IsAny <IRestRequest>())).Returns(new RestResponse { Content = @"{""base"":""USD"",""date"":""2001-01-01"",""rates"":{""GBP"":1.234 }}", StatusCode = HttpStatusCode.OK }); }