예제 #1
0
        public static AccountBasicInfo ParseAccountBasicInfo(string data)
        {
            JToken           json      = JToken.Parse(data);
            AccountBasicInfo basicInfo = new AccountBasicInfo();

            basicInfo.address           = (string)json["address"];
            basicInfo.citizenship       = (string)json["citizenship"];
            basicInfo.city              = (string)json["city"];
            basicInfo.countryOfResident = (string)json["country_of_residence"];
            basicInfo.dateOfBirth       = (string)json["date_of_birth"];
            basicInfo.maritialStatus    = (string)json["martial_status"];
            basicInfo.numberDependents  = (int)json["number_dependents"];
            basicInfo.phoneNumber       = (string)json["phone_number"];
            basicInfo.state             = (string)json["state"];
            basicInfo.taxIDSSN          = (int)json["tax_id_ssn"];
            basicInfo.updatedAt         = (string)json["updated_at"];
            basicInfo.zipcode           = (int)json["zipcode"];
            return(basicInfo);
        }
예제 #2
0
        static void Main(string[] args)
        {
            Login          login          = new Login();
            Authentication authentication = new Authentication();
            Endpoints      endpoints      = new Endpoints();
            Quotes         quotes         = new Quotes();
            Fundamentals   fundamentals   = new Fundamentals();
            Instruments    instruments    = new Instruments();
            Account        account        = new Account();
            Market         market         = new Market();
            Statistics     statistics     = new Statistics();

            var testDic = new Dictionary <string, string>
            {
                { "query", "Microsoft" }
            };

            using (StreamReader reader = new StreamReader("login.txt"))
            {
                var readFile = reader.ReadToEnd();
                var words    = readFile.Split();
                login.username = words[1];
                login.password = words[4];
            }

            //login.AccessToken = authentication.AuthenticateUser(login,true);
            authentication.ReadAccessToken(login);
            authentication.CheckRefreshToken(login);
            //account.GatherBasicInfo(login.AccessToken);
            //account.GatherAccountID(login.AccessToken);
            //Console.ReadLine();


            var quoteData = quotes.GatherData("GOOGL");

            string[] data = new string[]
            {
                "MSFT",
                "GOOGL",
                "AAPL",
                "AMZN",
                "TSLA"
            };

            var content = fundamentals.GatherMultipleFundamentalBySymbol(data);             //Returns an array of fudamentalData

            for (int i = 0; i < data.Length; i++)
            {
                Console.WriteLine(content[i].description);
                Console.WriteLine(content[i].high);
                Console.WriteLine(content[i].high52Weeks);
                Console.WriteLine(content[i].low);
                Console.WriteLine(content[i].low52Weeks);
                Console.WriteLine(content[i].marketCap + Environment.NewLine);
            }

            InstrumentData[] instrumentData = instruments.InstrumentsByKeyWord("oil");             //Returns an array of "InstrumentData" after querying the Robinhood server
            Console.WriteLine("-----------------------------------Instruments--------------------------");

            foreach (var item in instrumentData)
            {
                Console.WriteLine(item.name);
                Console.WriteLine(item.simpleName);
                Console.WriteLine(item.listDate);
                Console.WriteLine(item.market);
                Console.WriteLine(item.symbol);
                Console.WriteLine(item.country);
                Console.WriteLine("------------------------------------------------------------------------------");
            }
            Console.WriteLine("----------------------------------Instrument by Symbol------------------------------");
            InstrumentData instrument = instruments.InstrumentsBySymbol("MSFT");

            Console.WriteLine(instrument.simpleName);
            Console.WriteLine(instruments.InstrumentsByID("777c0d30-3f78-4449-8d85-49702ae96a34").name);

            Console.WriteLine("----------------------------------ALL------------------------------");
            InstrumentData[] allInstruments = instruments.AllInstruments();
            Console.WriteLine(allInstruments[18].name);
            Console.WriteLine(allInstruments[18].simpleName);
            Console.WriteLine(allInstruments[0].next);

            allInstruments = instruments.AllInstruments("https://api.robinhood.com/instruments/?cursor=cD0xMjk4NQ%3D%3D");
            Console.WriteLine("----------------------------------------------Next Page---------------------------------------");
            Console.WriteLine(allInstruments[0].name);
            Console.WriteLine(allInstruments[0].next);

            Console.WriteLine("----------------------------------------------Splits---------------------------------------");
            SplitData[] splitData = instruments.GatherSplitHistoryForInstrument(instruments.InstrumentsBySymbol("SCO").id);             //Gather information for one instrument split
            //Most times there wont be one
            //SCO just happened to be one that has a split which I used for testing
            Console.WriteLine(splitData[0].executionDate);
            Console.WriteLine(splitData[0].instrument);
            Console.WriteLine(splitData[0].multiplier);
            Console.WriteLine("----------------------------------------------Single Splits Thing---------------------------------------");
            SplitData splitDataSingle = instruments.GatherSplitHistoryForInstrumentSpecified(splitData[0].url);                                         //Single stocks get

            //Get one of the splits information
            Console.WriteLine(splitDataSingle.executionDate);
            Console.WriteLine(splitDataSingle.instrument);

            Console.WriteLine("----------------------------------------------Account---------------------------------------");
            Console.WriteLine(account.GatherListofAccounts(login.AccessToken) + Environment.NewLine);
            Console.WriteLine(account.GatherEmploymentData(login.AccessToken).employerName + Environment.NewLine);
            Console.WriteLine(account.GatherAccountHolderAffliationInfo(login.AccessToken).agreedToRhs + Environment.NewLine);

            Console.WriteLine("----------------------------------------------Account Basic Info---------------------------------------");
            AccountBasicInfo basicInfo = account.GatherBasicInfo(login.AccessToken);

            Console.WriteLine(basicInfo.citizenship);
            Console.WriteLine(basicInfo.countryOfResident);
            Console.WriteLine(basicInfo.phoneNumber);
            Console.WriteLine(basicInfo.state);


            Console.WriteLine("Account Number: " + account.GatherListofAccounts(login.AccessToken).accountNumber);
            Console.WriteLine(account.GatherMarginBalances(login.AccessToken).updatedAt);
            Console.WriteLine("Start of day overnight buying power = " + account.GatherMarginBalances(login.AccessToken).startOfDayOvernightBuyingPower);

            Console.WriteLine("------------------------------------------------------------------------------Investment----------------------------------------------");
            InvestmentProfileData investmentProfileData = account.GatherInvestmentProfile(login.AccessToken);

            Console.WriteLine("Liquid net Worth: " + investmentProfileData.liquidNetWorth);
            Console.WriteLine("Risk Tolerance: " + investmentProfileData.riskTolerance);
            Console.WriteLine("Investment Objective" + investmentProfileData.investmentObjective);
            Console.WriteLine("\n\nAccount Average Buy Price for " + instruments.InstrumentsByID(account.GatherAccountPositions(login.AccessToken)[0].instrument.Replace("https://api.robinhood.com/instruments/", "").TrimEnd('/')).simpleName + ": " + account.GatherAccountPositions(login.AccessToken)[0].averageBuyPrice);
            Console.WriteLine("\n\nAccount Average Buy Price for " + instruments.InstrumentsByID(account.GatherAccountPositions(login.AccessToken)[1].instrument.Replace("https://api.robinhood.com/instruments/", "").TrimEnd('/')).simpleName + ": " + account.GatherAccountPositions(login.AccessToken)[1].averageBuyPrice);
            Console.WriteLine("\n\nAccount Average Buy Price for " + instruments.InstrumentsByID(account.GatherAccountPositions(login.AccessToken)[2].instrument.Replace("https://api.robinhood.com/instruments/", "").TrimEnd('/')).simpleName + ": " + account.GatherAccountPositions(login.AccessToken)[2].averageBuyPrice);

            //interval=year|month|week|day|10minute|5minute|null(all) span=day|week|month|year|5year|all bounds=extended|regular|trading
            //Only day can use the minute intervals
            DateTime time = new DateTime(2018, 12, 12);

            Console.WriteLine(time);
            Console.WriteLine(market.GatherMarketHours("BATS", time));
            var symbol   = Input("Symbol:");
            var interval = Input("Interval:");
            var span     = Input("Span:");
            var bounds   = Input("Bounds:");

            Dictionary <string, string> param = new Dictionary <string, string>
            {
                { "interval", interval },
                { "span", span },
                { "all bounds", bounds }
            };

            QuoteHistory[] quoteHistory = quotes.GatherHistoryQuotes(symbol, param);
            for (int i = 0; i < quoteHistory.Length; i++)
            {
                Console.WriteLine("Open Price:" + quoteHistory[i].openPrice);
                Console.WriteLine("Close Price: " + quoteHistory[i].closePrice);
                Console.WriteLine("Volume: " + quoteHistory[i].volume);
            }
            Console.WriteLine(Environment.NewLine);
            string[] pop = statistics.Get100MostPopular();
            foreach (var item in pop)
            {
                var thing = instruments.InstrumentsByIDTrim(item);
                Console.WriteLine(thing.name + ":" + thing.symbol);
            }

            //Did not implement these
            Console.WriteLine(TesterAuthenication(login.AccessToken, "/settings/notifications/"));
            Console.WriteLine(TesterAuthenication(login.AccessToken, "/notifications/devices/"));
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);

            //News & Info
            Console.WriteLine(JToken.Parse(RHttpClient.RHttpClientGet("/midlands/news/MSFT/")));             //Need to be implemented
            Console.WriteLine(account.GatherAccountPortfolio(login.AccessToken).extendedHoursMarketValue);

            Console.ReadLine();
        }