Skip to content

AI Price Forecasts Dataset

Access deep learning-powered price predictions for over 10,000 tickers. FinBrain’s AI models analyze historical price data and alternative signals to generate daily and monthly forecasts with directional signals.

The AI Price Forecasts dataset provides:

  • Price Forecasts: Predicted price (mid) with lower and upper bounds for each future date
  • Expected Moves: Short, mid, and long-term expected percentage changes
  • Bound Changes: Lower and upper bound percentage changes
  • Daily & Monthly Types: Choose your prediction horizon
MarketTickersUpdate Frequency
S&P 500500+Daily
NASDAQ3,000+Daily
NYSE2,500+Daily
Crypto100+Daily
Total10,000+Daily
FieldDaily PredictionsMonthly Predictions
metadata.expectedShortTerm3-day expected % move3-month expected % move
metadata.expectedMidTerm5-day expected % move6-month expected % move
metadata.expectedLongTerm10-day expected % move12-month expected % move

Each prediction in the predictions array contains structured fields:

{
"date": "2024-11-04",
"mid": 201.33,
"lower": 197.21,
"upper": 205.45
}
  • mid: Predicted price
  • lower: Lower bound of the confidence interval
  • upper: Upper bound of the confidence interval

All numeric values are returned as numbers (not strings).

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
df = fb.predictions.ticker("AAPL", prediction_type="daily",
as_dataframe=True)
print(df)
# mid lower upper
# date
# 2024-11-04 201.33 197.21 205.45

For complete code examples in Python, JavaScript, C++, Rust, and cURL, see the API Reference for Ticker Predictions.

Plot AI price predictions with the built-in SDK chart:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
# One-line interactive chart with confidence bands
fb.plot.predictions("AAPL")
AI Price Forecast Chart
AAPL AI price predictions with confidence bounds

Build trading systems that generate buy/sell signals based on AI predictions:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def get_trading_signal(symbol, threshold=1.0):
"""Check if a ticker has a strong expected move"""
result = fb.predictions.ticker(symbol, prediction_type="daily")
expected = result["metadata"]["expectedShortTerm"] # 3-day expected move
if expected > threshold:
return "bullish", expected
elif expected < -threshold:
return "bearish", expected
else:
return "neutral", expected
# Screen a watchlist
watchlist = ["AAPL", "MSFT", "GOOGL", "AMZN", "NVDA", "META", "TSLA"]
for symbol in watchlist:
try:
signal, expected = get_trading_signal(symbol)
if signal != "neutral":
print(f"{symbol}: {signal} ({expected:+.2f}%)")
except Exception:
continue

Filter your investment universe based on expected price movements:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def screen_portfolio(symbols, min_expected=0.5):
"""Screen portfolio for positive expected moves"""
opportunities = []
for symbol in symbols:
try:
result = fb.predictions.ticker(symbol, prediction_type="daily")
metadata = result["metadata"]
expected_3day = metadata["expectedShortTerm"]
if expected_3day > min_expected:
opportunities.append({
"symbol": symbol,
"expected_3day": expected_3day,
"expected_5day": metadata["expectedMidTerm"],
"expected_10day": metadata["expectedLongTerm"]
})
except Exception:
continue
return sorted(opportunities, key=lambda x: x["expected_3day"], reverse=True)
# Screen tech stocks
watchlist = ["AAPL", "MSFT", "GOOGL", "AMZN", "NVDA", "META", "TSLA"]
opportunities = screen_portfolio(watchlist)
for opp in opportunities:
print(f"{opp['symbol']}: {opp['expected_3day']:.2f}% (3-day), {opp['expected_5day']:.2f}% (5-day)")

Compare short, mid, and long-term expectations to identify momentum:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def analyze_momentum(symbol):
"""Analyze if momentum is accelerating or decelerating"""
result = fb.predictions.ticker(symbol, prediction_type="daily")
metadata = result["metadata"]
short = metadata["expectedShortTerm"] # 3-day
mid = metadata["expectedMidTerm"] # 5-day
long_term = metadata["expectedLongTerm"] # 10-day
# Check if expectations are increasing across time horizons
if short > 0 and mid > short and long_term > mid:
return "accelerating_bullish"
elif short < 0 and mid < short and long_term < mid:
return "accelerating_bearish"
elif short > 0 and mid > 0 and long_term > 0:
return "bullish"
elif short < 0 and mid < 0 and long_term < 0:
return "bearish"
else:
return "mixed"
momentum = analyze_momentum("AAPL")
print(f"AAPL momentum: {momentum}")