⭐️ Sign up for Timescale right now: https://tsdb.co/justin
Build a Stock Trading Bot with Python
Learn how to use time series data with Django by building a powerful stock trading bot. You’ll learn how to extract stock market data via two API services, analyze that data, and get buy/sell/hold recommendations through logic or an AI system. Using TimescaleDB (enhanced PostgreSQL), we supercharge Django’s capabilities to handle larges amounts of data that changes rapidly over time — like the stock market. This new found ability for Django to handle time series data unlocks a whole suite of potential from sensors to analytics to level up any app you need to build.
We’ll start by creating our own custom API clients to extract data from stock market API providers Polygon.io and Alpha Vantage. Building a custom API client in Python helps us master each API service our application relies on while transforming the data into a format we need.
After we build the API client, we integrate a background worker process called Celery to run along side Django and Jupyter. Celery is a python package that can run any mission-critical functions asynchronously to Django or Jupyter standard processes. This means they can run now, or sometime in the future based on your design. Celery *could* run this whole system but it lacks Django’s powerful database ORM, admin, built-in users, and entire ecosystem.
After we automate the stock market data extraction, we move into performing advanced database queries directly in Django to help us perform analysis on the stock data. These database queries are incredibly useful outside the scope of stock market analysis. Once we have some of the analysis complete, we move into automated recommendations to buy/sell/hold any public company’s stock. Watch the demo (00:02:59) to see how it’s all done.
Topics:
✅ Django for Time Series Data
✅ TimescaleDB Integration with Django via Docker Compose
✅ Django & Timescale Cloud Integration
✅ Connect to Polygon.io and Alpha Vantage APIs
✅ Use Jupyter to rapidly prototype Python and Django Code
✅ Transform timestamps and date strings into timezone aware data
✅ Integrate Django & Jupyter
✅ Process near real-time market data
✅ Store time series data at rapid speed with TimescaleDB
✅ Calculate key technical indicators via Django ORM and Database Queries
✅ Build and schedule automated async functions with Celery worker and beat server processes
✅ Create trading signals and recommendations
✅ Leverage AI/LLMs for market analysis
✅ And much more
⭐️ Thanks to Timescale for sponsoring this course: https://tsdb.co/justin-homepage
💻 Code: https://github.com/codingforentrepreneurs/Stock-Trading-Bot
📺 In-depth Python environment setup: https://youtu.be/aApDye1TWJ4
👨🏻💻 Tech Stack
☑︎ Python 3.12
☑︎ Django 5.1
☑︎ TimescaleDB Cloud (or Docker version)
☑︎ Django Timescaledb (pip install django-timescaledb)
☑︎ Celery worker and beat server (pip install celery)
☑︎ Python Requests (pip install requests)
☑︎ Jupyter (pip install jupyter)
☑︎ Psycopg Binary (pip install psycopg[binary])
☑︎ Python Decouple (pip install python-decouple) to load environment variables (e.g. .env)
☑︎ Stock Market data from Polygon.io and Alpha Vantage
☑︎ OpenAI
🚀 Chapters:
00:00:00 Welcome
00:02:59 Demo
00:09:45 Requirements
00:14:18 Setup Python Environment
00:18:31 Picking Data Source and Loading API Keys
00:23:52 Your First Polygon Rest API Request
00:32:36 Your First Alpha Vantage Rest API Request
00:38:47 Transform Polygon Response
00:45:25 Transform Alpha Vantage Response
00:58:40 Custom Polygon API Client
01:13:34 Custom Alpha Vantage API Client
01:25:41 Integrate Django and Jupyter
01:33:00 Handling Time Series Data
01:37:57 Django & Timescale with Docker Compose
01:49:20 Django & TimescaleDB with Timescale Cloud
01:55:40 Django Model for Time Series Data
02:09:16 API Clients as Helper Functions
02:14:41 Load Stock Quotes into Django
02:24:34 Batch and Bulk Load Stock Quotes
02:30:35 Sync Stock Data Functions
02:43:33 Verify The Stock Sync Functions
02:53:02 Integrate Celery and Django
03:04:58 Django Functions as Celery Tasks
03:14:11 Verify Stock Quotes in the Django Admin
03:22:10 Scheduled Daily Sync
03:32:17 Sync Historical Stock Data
03:41:08 Display Time and Range Filter in Django Admin
03:54:37 Storing the Raw Timestamp
04:04:22 Moving Averages Part 1
04:12:42 Moving Averages Part 2
04:22:59 Daily Moving Averages
04:33:04 Volume Trend and Price Target
04:41:39 Relative Strength Index and Stock Services
04:50:36 Logic-based Recommendation
04:55:25 LLM-based Recommendation
05:02:09 Thank you and next steps
https://www.youtube.com/watch?v=O3O1z5hTdUM
#financialfreedomllc #businesstips #business #entrepreneur #businessowner #entrepreneurship #marketing #smallbusiness #businesscoach #digitalmarketing #success #entrepreneurlife #motivation #businessideas #businessgrowth #businesswoman #businessman #businessquotes #businessowners #businessstrategy #startup #businesslife #businessmindset #businessminded #entrepreneurs #businessadvice #entrepreneurmindset #marketingtips #onlinebusiness #branding