Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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++;
            }
        }
Exemplo n.º 3
0
        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}");
        }
Exemplo n.º 4
0
        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();
        }