def get_open_stock_positions(info=None): """Returns a list of stocks that are currently held. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: [list] Returns a list of dictionaries of key/value pairs for each ticker. If info parameter is provided, \ a list of strings is returned where the strings are the value of the key that matches info. :Dictionary Keys: * url * instrument * account * account_number * average_buy_price * pending_average_buy_price * quantity * intraday_average_buy_price * intraday_quantity * shares_held_for_buys * shares_held_for_sells * shares_held_for_stock_grants * shares_held_for_options_collateral * shares_held_for_options_events * shares_pending_from_options_events * updated_at * created_at """ url = urls.positions() payload = {'nonzero': 'true'} data = helper.request_get(url, 'pagination', payload) return(helper.filter(data, info))
def get_dividends(info=None): """Returns a list of dividend trasactions that include information such as the percentage rate, amount, shares of held stock, and date paid. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: [list] Returns a list of dictionaries of key/value pairs for each divident payment. If info parameter is provided, \ a list of strings is returned where the strings are the value of the key that matches info. :Dictionary Keys: * id * url * account * instrument * amount * rate * position * withholding * record_date * payable_date * paid_at * state * nra_withholding * drip_enabled """ url = urls.dividends() data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_latest_notification(): """Returns the time of the latest notification. :returns: Returns a dictionary of key/value pairs. But there is only one key, 'last_viewed_at' """ url = urls.notifications(True) data = helper.request_get(url) return(data)
def get_all_watchlists(info=None): """Returns a list of all watchlists that have been created. Everone has a 'default' watchlist. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a list of the watchlists. Keywords are 'url', 'user', and 'name'. """ url = urls.watchlists() data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_linked_bank_accounts(info=None): """Returns all linked bank accounts. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a list of dictionaries of key/value pairs for each bank. """ url = urls.linked() data = helper.request_get(url, 'results') return(helper.filter(data, info))
def get_referrals(info=None): """Returns a list of referrals. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a list of dictionaries of key/value pairs for each referral. If info parameter is provided, \ a list of strings is returned where the strings are the value of the key that matches info. """ url = urls.referral() data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_bank_transfers(info=None): """Returns all bank transfers made for the account. :param info: Will filter the results to get a specific value. 'direction' gives if it was deposit or withdrawl. :type info: Optional[str] :returns: Returns a list of dictionaries of key/value pairs for each transfer. If info parameter is provided, \ a list of strings is returned where the strings are the value of the key that matches info. """ url = urls.banktransfers() data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_margin_calls(symbol=None): """Returns either all margin calls or margin calls for a specific stock. :param symbol: Will determine which stock to get margin calls for. :type symbol: Optional[str] :returns: Returns a list of dictionaries of key/value pairs for each margin call. """ url = urls.margin() if symbol: try: symbol = symbol.upper().strip() except AttributeError as message: print(message) return None payload = {'equity_instrument_id', helper.id_for_stock(symbol)} data = helper.request_get(url, 'results', payload) else: data = helper.request_get(url, 'results') return(data)
def get_watchlist_by_name(name='Default', info=None): """Returns a list of information related to the stocks in a single watchlist. :param name: The name of the watchlist to get data from. :type name: Optional[str] :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a list of dictionaries that contain the instrument urls and a url that references itself. """ url = urls.watchlists(name) data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_documents(info=None): """Returns a list of documents that have been released by Robinhood to the account. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a list of dictionaries of key/value pairs for each document. If info parameter is provided, \ a list of strings is returned where the strings are the value of the key that matches info. """ url = urls.documents() data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_day_trades(info=None): """Returns recent day trades. :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a list of dictionaries of key/value pairs for each day trade. If info parameter is provided, \ a list of strings is returned where the strings are the value of the key that matches info. """ account = profiles.load_account_profile('account_number') url = urls.daytrades(account) data = helper.request_get(url, 'pagination') return(helper.filter(data, info))
def get_total_dividends(): """Returns a float number representing the total amount of dividends paid to the account. :returns: Total dollar amount of dividends paid to the account as a 2 precision float. """ url = urls.dividends() data = helper.request_get(url, 'pagination') dividend_total = 0 for item in data: dividend_total += float(item['amount']) return(dividend_total)
def get_bank_account_info(id, info=None): """Returns a single dictionary of bank information :param id: The bank id. :type id: str :param info: Will filter the results to get a specific value. :type info: Optional[str] :returns: Returns a dictinoary of key/value pairs for the bank. If info parameter is provided, \ the value of the key that matches info is extracted. """ url = urls.linked(id) data = helper.request_get(url) return(helper.filter(data, info))