weltby Ergodic Sign inGet started
All use cases

Where Could Bitcoin's Price Go in the Next Two Weeks?

From each coin's daily closing price, what range could Bitcoin, Ethereum and Litecoin trade in over the next 14 days? The width of the range matters more than the middle line.

Use caseFinanceForecastingPrediction

The table

Daily closing prices and trading volume for the top 100 cryptocurrencies in 2020. It's in Welt's research catalogue as Top 100 Cryptocurrency Daily Market Prices 2020, 40,100 rows by 9 columns, licensed CC0: Public Domain. The catalogue measures its signal at 0.55, in time order. Chronos-2 forecasts the 3 series named below in one request and needs no training.

Walkthrough

  1. Load it from the catalogue

    Find the table, read its recorded target and print the column names.

    import pandas as pd
    from welt import Client, Forecast
    
    with Client() as client:
        item = client.research_datasets(q="top 100 cryptocurrency 2020", limit=1)["items"][0]
        info = client.research_dataset(item["id"])
        data = client.load_research_dataset(item["id"])
    
    target = info["targets"][0]
    target = target["name"] if isinstance(target, dict) else target
    print([column["name"] for column in info["schema"]], target)
  2. Pick the history

    Keep the time column and the target, for the series you want.

    time, series = "date", "name"
    history = data[data[series].isin(["Bitcoin", "Ethereum", "Litecoin"])][[series, time, target]].dropna()
    history[time] = pd.to_datetime(history[time])
  3. Forecast with a range

    Ask for the next 14 steps, one per day. The median is the forecast, and the 10% and 90% columns give a low and a high case.

    model = Forecast(model="chronos-2").fit(history, time=time, id=series, target=[target])
    result = model.forecast(14, quantile_levels=[0.1, 0.5, 0.9])
    print(result.to_frame()[["id", "timestamp", "median", "q_0.1", "q_0.9"]].head(14))

What you get

Two weeks aheadA daily range for each coin.
Risk in plain sightThe gap between the 10% and 90% lines shows how volatile each coin is.
Several coins at onceOne request covers all three.

Try it

Use Open with to run the research datasets notebook in Colab, Kaggle or Jupyter and search for "top 100 cryptocurrency 2020", or run the code above after pip install "welt-client[parquet]".