неожиданный аргумент ключевого слова 'freq' в Pandas DataReader (модуль Stooq) - PullRequest
0 голосов
/ 27 мая 2020

Я немного новичок в кодировании и не уверен, что происходит. В настоящее время я пытаюсь извлечь данные ежемесячного индекса из stooq, чтобы написать исследовательскую работу. Однако аргумент freq возвращает неожиданную ошибку аргумента ключевого слова при попытке вызвать его. Я попытался сравнить это с аргументом «интервал» в финансовом модуле Yahoo, поскольку они, по сути, выполняют ту же функцию, но, похоже, они по-разному структурированы. Опять же, не уверен, вина ли это расширения или моя (возможно, моя) .... Если бы кто-нибудь мог помочь аспиранту, был бы очень признателен, спасибо!

Russia = pdr.get_data_stooq(symbols='^MOEX', start=datetime(1969, 12, 31),
                            end=datetime(2020, 5, 1), freq='m')

Расширение Stooq для справки :

"""
Returns DataFrame/dict of Dataframes of historical stock prices from
symbols, over date range, start to end.

Parameters
----------
symbols : string, array-like object (list, tuple, Series), or DataFrame
    Single stock symbol (ticker), array-like object of symbols or
    DataFrame with index containing stock 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
    20 years before current date.
end : string, int, date, datetime, Timestamp
    Ending date
retry_count : int, default 3
    Number of times to retry query request.
pause : int, default 0.1
    Time, in seconds, to pause between consecutive queries of chunks. If
    single value given for symbol, represents the pause between retries.
chunksize : int, default 25
    Number of symbols to download consecutively before initiating pause.
session : Session, default None
    requests.sessions.Session instance to be used
freq : string, d, w, m ,q, y for daily, weekly, monthly, quarterly, yearly

Notes
-----
See `Stooq <https://stooq.com>`__
"""

@property
def url(self):
    """API URL"""
    return "https://stooq.com/q/d/l/"

def _get_params(self, symbol, country="US"):
    symbol_parts = symbol.split(".")
    if not symbol.startswith("^"):
        if len(symbol_parts) == 1:
            symbol = ".".join([symbol, country])
        elif symbol_parts[1].lower() == "pl":
            symbol = symbol_parts[0]
        else:
            if symbol_parts[1].lower() not in ["de", "hk", "hu", "jp", "uk", "us"]:
                symbol = ".".join([symbol, "US"])

    params = {
        "s": symbol,
        "i": self.freq or "d",
        "d1": self.start.strftime("%Y%m%d"),
        "d2": self.end.strftime("%Y%m%d"),
    }

    return params
...