Beispiel #1
0
    def test_reader_chart_range(self):
        from datetime import date, timedelta

        syms = ["AAPL"]

        # source: pandas datareader

        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=5),
                                 end=date.today()).chart_range == "5d")
        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=27),
                                 end=date.today()).chart_range == "1m")
        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=83),
                                 end=date.today()).chart_range == "3m")
        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=167),
                                 end=date.today()).chart_range == "6m")
        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=170),
                                 end=date.today()).chart_range == "1y")
        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=365),
                                 end=date.today()).chart_range == "2y")
        assert (HistoricalReader(symbols=syms,
                                 start=date.today() - timedelta(days=730),
                                 end=date.today()).chart_range == "5y")
        assert (HistoricalReader(
            symbols=syms,
            start=date.today() - timedelta(days=1826),
            end=date.today(),
        ).chart_range == "max")
Beispiel #2
0
    def test_reader_chart_range(self):
        from datetime import date, timedelta

        syms = ["AAPL"]

        # source: pandas datareader

        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=5),
                                end=date.today()).chart_range == '5d'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=27),
                                end=date.today()).chart_range == '1m'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=83),
                                end=date.today()).chart_range == '3m'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=167),
                                end=date.today()).chart_range == '6m'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=170),
                                end=date.today()).chart_range == '1y'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=365),
                                end=date.today()).chart_range == '2y'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=730),
                                end=date.today()).chart_range == '5y'
        assert HistoricalReader(symbols=syms,
                                start=date.today() - timedelta(days=1826),
                                end=date.today()).chart_range == 'max'
Beispiel #3
0
def get_historical_data(symbols, start, end=None, close_only=False, **kwargs):
    """
    Function to obtain historical date for a symbol or list of
    symbols. Return an instance of HistoricalReader

    Reference: https://iextrading.com/developer/docs/#chart

    Parameters
    ----------
    symbols: str or list
        A symbol or list of symbols
    start : string, int, date, datetime, Timestamp
        Starting date. Parses many different kind of date
        representations (e.g., 'JAN-01-2010', '1/1/10', 'Jan, 1, 1980').
        Defaults to 15 years before current date.
    end : string, int, date, datetime, Timestamp
        Ending date
    close_only: bool, default False
        Returns adjusted data only with keys ``date``, ``close``, and
        ``volume``
    kwargs:
        Additional Request Parameters (see base class)

    Returns
    -------
    list or DataFrame
        Historical stock prices over date range, start to end
    """
    return HistoricalReader(
        symbols, start=start, end=end, close_only=close_only, **kwargs
    ).fetch()
Beispiel #4
0
def get_historical_data(symbols, start, end=None, close_only=False, **kwargs):
    """
    Function to obtain historical date for a symbol or list of
    symbols. Return an instance of HistoricalReader

    Reference: https://iextrading.com/developer/docs/#chart

    Parameters
    ----------
    symbols: str or list
        A symbol or list of symbols
    start: datetime.datetime
        Beginning of desired date range
    end: datetime.datetime, optional, default None
        End of required date range
    close_only: bool, default False
        Returns adjusted data only with keys ``date``, ``close``, and
        ``volume``
    kwargs:
        Additional Request Parameters (see base class)

    Returns
    -------
    list or DataFrame
        Historical stock prices over date range, start to end
    """
    return HistoricalReader(symbols,
                            start=start,
                            end=end,
                            close_only=close_only,
                            **kwargs).fetch()
Beispiel #5
0
def get_historical_data(symbols, start=None, end=None, **kwargs):
    """
    Function to obtain historical date for a symbol or list of
    symbols. Return an instance of HistoricalReader

    Parameters
    ----------
    symbols: str or list
        A symbol or list of symbols
    start: datetime.datetime, default None
        Beginning of desired date range
    end: datetime.datetime, default None
        End of required date range
    kwargs:
        Additional Request Parameters (see base class)

    Returns
    -------
    list or DataFrame
        Historical stock prices over date range, start to end
    """
    start, end = _sanitize_dates(start, end)
    return HistoricalReader(symbols, start=start, end=end, **kwargs).fetch()