Intermediate9 columnsUp to 4,176 rows Fictional data

Stock Prices (Fictional Tickers) dataset

Daily open, high, low, close and volume for made-up companies (tickers start with SIM): practise returns, moving averages and charts.

Made the moment you click and sent straight to you. Nothing is saved on our server.

About this dataset

Daily trading data (open, high, low, close and volume) for up to eight companies that do not exist. Every ticker starts with SIM so it can never be confused with a real listed share, and the prices come from a random walk, not a market.

This is for learning the techniques, not for investing: daily returns, moving averages, volatility, correlation between stocks and candlestick charts. Nothing here is investment advice, and patterns in this data say nothing about real markets.

Good for practising: Financial analysis, Moving averages, Volatility, NumPy.

What's built into the data

The rows are random, but they follow rules, so there is something real to find. These are the patterns to look for:

  • Only weekdays appear, as on a real exchange.
  • Every company is partly driven by a shared 'market' move, so the stocks are correlated with each other.
  • Some names swing much more than others: SIMSTEEL is the most volatile and SIMFMCG the calmest.
  • About once in a hundred days a stock jumps or falls 3–8% in one go, like a results-day surprise.
  • High is always at least the open and close, and low is always at most both.

Columns

ColumnTypeDescription
dateDateTrading day (weekdays only).
tickerCategoryFictional ticker, always starting with SIM.
companyCategoryFictional company name.
sectorCategorySector the company is in.
openAmount (₹)Opening price in rupees.
highAmount (₹)Highest price of the day.
lowAmount (₹)Lowest price of the day.
closeAmount (₹)Closing price.
volumeWhole numberShares traded.

Preview: the first 8 rows

A sample with seed 2026. Your download will have different values but the same columns and patterns.

datetickercompanysectoropenhighlowclosevolume
2024-04-01SIMTECHSimtech SoftwareIT1451.721484.071449.751480.88363484
2024-04-01SIMBANKSimbank FinancialBanking819.32851.2819.27842.62378558
2024-04-02SIMTECHSimtech SoftwareIT1487.891498.911475.431493.51325354
2024-04-02SIMBANKSimbank FinancialBanking852.09859.02812.0830.72519781
2024-04-03SIMTECHSimtech SoftwareIT1481.781513.091478.451508.2246061
2024-04-03SIMBANKSimbank FinancialBanking827.38830.37807.29811.59799021
2024-04-04SIMTECHSimtech SoftwareIT1508.961527.071461.111470.82297340
2024-04-04SIMBANKSimbank FinancialBanking811.96833.89809.66826.51627956

Practice exercises

  1. Calculate daily percentage returns for each ticker, then the annualised volatility (std × √252).
  2. Add 20-day and 50-day moving averages to a price chart. Mark the days they cross.
  3. Build a correlation matrix of daily returns. Which two stocks move together most?
  4. Find the largest one-day rise and fall for each ticker.
  5. Check the file: confirm high ≥ max(open, close) and low ≤ min(open, close) on every row.

Stuck on one? Each exercise uses ideas from the lessons below, and trying it with the messy option on turns it into a cleaning exercise as well.

Load it straight into Python

You don't have to download first. Pandas can read the link directly, in Jupyter, Google Colab or a script. Keep the seed so you get the same data every time you run the notebook:

import pandas as pd

url = "https://beeprotonai.info/resources/datasets/stock-prices/download/?rows=1000&seed=42"
df = pd.read_csv(url, parse_dates=["date"])
df.head()

For SQL practice, download the SQL format and run it against an empty database, for example sqlite3 practice.db < stock-prices-1000-rows-seed42.sql or mysql -u root -p practice < stock-prices-1000-rows-seed42.sql (use your file's name). It creates a table called stock_prices and fills it.

About the data

Everything in this file is invented. Names are random pairings of common first names and surnames, email addresses use example.com (reserved for examples, so it can never reach anyone), and phone numbers start with +91 00, which no real Indian mobile number does. Any resemblance to a real person or business is coincidence. Dates run from 1 April 2024 to 31 March 2026 unless a column says otherwise. Use it freely for learning, teaching and projects, including commercial ones, with no attribution required (CC0).

Lessons that go with it

More datasets

See all 14 datasets →