Table of contents
Workshop1
Workshop1 is an AlgoÉTS notebook-based Python workshop. The sequence moves from setup through API calls, pandas and visualisation, and ends with an Apple-price EMA exercise. Facts below come from the repository as read for the companion article.
1. Overview
Why it exists. A beginner workshop where each new concept has somewhere to go: a request becomes a table, the table becomes a chart.
Best fit. First contact with Python for finance students, before moving to a batch experiment such as BatchBacktesting.
2. Use cases
AlgoÉTS French workshop: Jupyter notebooks from Python basics to APIs, pandas, charts and a 20-day EMA on Apple stock.
- Set up a Python environment
- Workshop participantJupyter or Colab
0.1_python_environement covers virtualenv, Anaconda and Jupyter Lab; 0.2_jupyter_cloud shows DeepNote and Google Colab, and the README links a Colab copy of the first notebook.
- Learn Python basics
- Workshop participantJupyter or Colab
1.1_python_basic and 1.2_python_advanced cover variables, control flow, file I/O on monfichier.txt and a small SQLite database (ma_base.db).
- Call a web API
- Workshop participantJupyter or Colab
2.1_python_api explains REST verbs, status codes, Bearer tokens, API keys and OAuth, with requests and async httpx examples.
- Clean data with pandas
- Workshop participant
3.1_python_panda walks through DataFrames, filtering with loc and iloc, missing values, merges, pandas_ta indicators and a polars comparison.
- Plot an EMA on Apple stock
- Workshop participantFMP price API
5.1_project_ema fetches AAPL daily prices from FMP historical-price-full, computes a 20-day EMA with pandas ewm and plots it against the close with Matplotlib; 4.2 adds SMA, RSI and MACD charts.
2.1. Scenario: Follow the workshop up to the EMA project
- Clone https://github.com/AlgoETS/Workshop1.git and run pip install -r requirements.txt.
- Start jupyter notebook, or open 1.0-basic/1.1_python_basic.ipynb in Google Colab from the README link.
- Work through 1.0-basic, 2.0-api and 3.0-data in order.
- Open 5.0-project/5.1_project_ema.ipynb and replace YOUR_API_KEY with a Financial Modeling Prep key.
- Run the cells to load AAPL prices into a DataFrame, add EMA_20 and plot the close price with the 20-day EMA.
Files readREADME.mdrequirements.txt0.0-install/0.1_python_environement.md0.0-install/0.2_jupyter_cloud.md1.0-basic/1.2_python_advanced.md2.0-api/2.1_python_api.md3.0-data/3.1_python_panda.ipynb4.0-visualisation/4.2_visualisation_analyse.ipynb5.0-project/5.1_project_ema.md5.0-project/5.1_project_ema.ipynb
3. Getting started
- Open the first notebook in Colab: 1.1_python_basic.ipynb (linked from the README).
- Or clone the repository and run local Jupyter; the setup notebooks cover the environment.
API availability, keys and package versions can change since the original workshop. The notebooks are teaching material to inspect and adapt.
4. Features and components
Nine Jupyter notebooks across six numbered directories:
| Stage | Notebooks |
|---|---|
| Environment and cloud setup | 2 |
| Python basics and advanced concepts | 2 |
| Reading API responses | 1 |
| Cleaning and exploring with pandas | 1 |
| Visualisation | 2 |
| Final project | 1 — 5.1_project_ema.ipynb plots Apple closing prices with 12-, 26-, 50-, 100- and 200-day EMA curves |
These are counts of checked-in material, not attendance or completion statistics.
5. Architecture
flowchart TD
S["Environment and cloud notebooks"] --> P["Python basics and advanced concepts"]
P --> A["Read API responses"]
A --> D["Clean and explore with pandas"]
D --> V["Visualize the data"]
V --> E["Apple prices and EMA project"]
6. Constraints and checks
- The final exercise connects a request, tabular data, indicator columns and a labelled chart. It does not establish that any crossover is profitable.
- Classroom checks worth keeping: ordered dates, intentional handling of missing values, why a longer EMA responds more slowly, and whether every curve uses the same observations.
7. Links
8. CI/CD pipeline
No CI/CD pipeline in the repository. The code is built and run by hand, as described above.
Generated from the source at commit 7858d0e.
9. Deployment diagram
Mermaid Deployment diagram
flowchart LR
repo[("GitHub repository")]
local["Local machine<br/>Python"]
repo -->|"clone and run"| local
The repository has no Dockerfile, Compose file or hosting configuration, so the code runs on the machine that clones it.
10. External dependencies
17 declared packages (17 runtime, 0 development) in requirements.txt.
Package table 17
| Package | Version | Scope | Purpose | Registry |
|---|---|---|---|---|
requests | — | runtime | HTTP client | pypi.org |
beautifulsoup4 | — | runtime | Scraping and parsing | pypi.org |
lxml | — | runtime | Scraping and parsing | pypi.org |
finnhub-python | — | runtime | Finnhub API | pypi.org |
binance | — | runtime | binance crypto exchange api client | pypi.org |
python-binance | — | runtime | Binance REST API python implementation | pypi.org |
pandas | — | runtime | Data analysis | pypi.org |
pandas_ta | — | runtime | Data analysis | pypi.org |
pandasai | — | runtime | Data analysis | pypi.org |
polars | — | runtime | Data analysis | pypi.org |
matplotlib | — | runtime | Charts | pypi.org |
seaborn | — | runtime | Charts | pypi.org |
plotly | — | runtime | Charts | pypi.org |
scikit-learn | — | runtime | Data analysis | pypi.org |
numpy | — | runtime | Data analysis | pypi.org |
mplfinance | — | runtime | Charts | pypi.org |
rich | — | runtime | Command line | pypi.org |
11. Glossary
Repository
The versioned source files, configuration, and history of a project.
README
The repository’s entry document, usually covering its purpose and initial setup.
Dependency
A library, tool, or service that another component needs to build or run.
API
An interface through which software components exchange requests and results. An API does not have to use HTTP.
HTTP
A request-and-response protocol used by browsers and web services. A method, path, headers, and optional body describe a request.
Mermaid
A text-based diagram language. Nodes and connections describe a model; the diagram itself does not execute the project.
12. References
- AlgoÉTS. (2026, November 5). [Web page] github.com.
- 1.1_python_basic.ipynb. (2026, November 5). [Web page] colab.research.google.com.
- AlgoETS. (2026, November 5). 5.1_project_ema.ipynb. [Source file or documentation] github.com.
- AlgoETS. (2026, November 5). Workshop1. [Software repository] github.com.
- AlgoETS. (2026, November 5). Python basics notebook. [Source file or documentation] github.com.
Sources without a publication date show the date they were last checked, November 5, 2026. File links retain the inspected revision where available.