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.
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
| Column | Type | Description |
|---|---|---|
date | Date | Trading day (weekdays only). |
ticker | Category | Fictional ticker, always starting with SIM. |
company | Category | Fictional company name. |
sector | Category | Sector the company is in. |
open | Amount (₹) | Opening price in rupees. |
high | Amount (₹) | Highest price of the day. |
low | Amount (₹) | Lowest price of the day. |
close | Amount (₹) | Closing price. |
volume | Whole number | Shares traded. |
Preview: the first 8 rows
A sample with seed 2026. Your download will have different values but the same columns and patterns.
| date | ticker | company | sector | open | high | low | close | volume |
|---|---|---|---|---|---|---|---|---|
| 2024-04-01 | SIMTECH | Simtech Software | IT | 1451.72 | 1484.07 | 1449.75 | 1480.88 | 363484 |
| 2024-04-01 | SIMBANK | Simbank Financial | Banking | 819.32 | 851.2 | 819.27 | 842.62 | 378558 |
| 2024-04-02 | SIMTECH | Simtech Software | IT | 1487.89 | 1498.91 | 1475.43 | 1493.51 | 325354 |
| 2024-04-02 | SIMBANK | Simbank Financial | Banking | 852.09 | 859.02 | 812.0 | 830.72 | 519781 |
| 2024-04-03 | SIMTECH | Simtech Software | IT | 1481.78 | 1513.09 | 1478.45 | 1508.2 | 246061 |
| 2024-04-03 | SIMBANK | Simbank Financial | Banking | 827.38 | 830.37 | 807.29 | 811.59 | 799021 |
| 2024-04-04 | SIMTECH | Simtech Software | IT | 1508.96 | 1527.07 | 1461.11 | 1470.82 | 297340 |
| 2024-04-04 | SIMBANK | Simbank Financial | Banking | 811.96 | 833.89 | 809.66 | 826.51 | 627956 |
Practice exercises
- Calculate daily percentage returns for each ticker, then the annualised volatility (std × √252).
- Add 20-day and 50-day moving averages to a price chart. Mark the days they cross.
- Build a correlation matrix of daily returns. Which two stocks move together most?
- Find the largest one-day rise and fall for each ticker.
- 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
Two years of orders from a fictional chain of Indian sweet shops, with Diwali …
Employee & Attrition RecordsAn HR file of employees with salary, satisfaction, overtime and whether they left: built …
Student Exam ResultsMarks in five subjects with attendance and study hours, plus totals, percentage, result and …
Customer List (CRM)Customer records with contact details, segment, orders and spend: ideal for cleaning, deduplication and …
Stock Register (Inventory)Monthly stock register for five warehouses: opening, received, issued, closing, reorder level and value.
Website Traffic (Analytics)Daily sessions, users, bounce rate and conversions by page, traffic source and device.