public void given_market_center_closed_open_ignore_response() { _currencyPairProvider.Setup(x => x.Market).Returns(new Market { IsOpen = false }); _yahooFinance = new YahooFinanceProvider(_httpProvider.Object, _currencyPairProvider.Object, _formatter.Object); var result = _yahooFinance.GetQuote().Result; Assert.That(result, Is.Null); }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Usage: turtles-buy symbols.txt"); return; } var headers = new string[] { "Valor", "Riesgo", "Precio de compra", "ATR", "Precio de salida", "# de acciones", "Cash necesario" }; Console.WriteLine(string.Join("\t", headers)); var symbols = File.ReadAllLines(args[0]).Where(line => !string.IsNullOrEmpty(line)).Select(line => line.Trim()); var i = 2; foreach (var symbol in symbols) { var dataProvider = new YahooFinanceProvider(); var indicators = new IndicatorsCalculator(dataProvider); var max = indicators.MaxLast10YearsAsync(symbol); Thread.Sleep(1000); var atr = indicators.CalculateAtrAsync(symbol); Thread.Sleep(1000); var tr = indicators.CalculateTrAsync(symbol); Thread.Sleep(1000); var maxRounded = Math.Round(max.Result, 2); var atrRounded = Math.Round(atr.Result.Last(), 2); var maxWithCommas = maxRounded.ToString().Replace('.', ','); var atrWithCommas = atrRounded.ToString().Replace('.', ','); Console.Write(symbol); Console.Write("\t"); Console.Write(200); Console.Write("\t"); Console.Write(maxWithCommas); Console.Write("\t"); Console.Write(atrWithCommas); Console.Write("\t"); Console.Write($"=C{i}-D{i}"); Console.Write("\t"); Console.Write($"=FLOOR(B{i}/D{i})"); Console.Write("\t"); Console.Write($"=C{i}*F{i}"); Console.WriteLine(""); i++; } }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Usage: turtles-add symbol1"); return; } var symbol = args[0]; var dataProvider = new YahooFinanceProvider(); var indicators = new IndicatorsCalculator(dataProvider); var min = indicators.MinLast20DaysAsync(symbol).Result; Console.WriteLine($"The minimum for the last 4 weeks for {symbol} is {min}"); }
public void given_market_center_is_open_process_response() { var url = WebUtility.UrlEncode("https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ('AUDCAD,AUDCHF')") + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"; var pairs = new List <CurrencyPair> { new CurrencyPair { Symbol = "AUDCAD" }, new CurrencyPair { Symbol = "AUDCHF" } }; var response = new Quote { Created = DateTime.Now, Rates = new List <Rate>() }; response.Rates.Add(new Rate { CurrencyPair = new CurrencyPair { Symbol = "AUDCAD" } }); response.Rates.Add(new Rate { CurrencyPair = new CurrencyPair { Symbol = "AUDCHF" } }); _currencyPairProvider.Setup(x => x.Market).Returns(new Market { IsOpen = true }); _currencyPairProvider.Setup(x => x.Pairs).Returns(pairs); _httpProvider.Setup(x => x.GetAsync(url, _formatter.Object)).Returns(Task.FromResult(response)); _yahooFinance = new YahooFinanceProvider(_httpProvider.Object, _currencyPairProvider.Object, _formatter.Object); var result = _yahooFinance.GetQuote(); _httpProvider.Verify(); }