Today, one simple script tool for market. this allow to set one portofolio and use with simulations.
Let'see some screenshots:

The basic intro source code ...
import datetime
import json
import threading
import urllib.request
import tkinter as tk
from tkinter import ttk, messagebox
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
def fetch_yahoo_history(symbol, period_years=1):
"""Descarcă istoricul zilnic de pe Yahoo Finance."""
end_date = int(datetime.datetime.now().timestamp())
start_date = int((datetime.datetime.now() - datetime.timedelta(days=365 * period_years)).timestamp())
url = f"https://query1.finance.yahoo.com/v8/finance/chart/{symbol}?period1={start_date}&period2={end_date}&interval=1d"
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
try:
with urllib.request.urlopen(req, timeout=10) as resp:
data = json.loads(resp.read().decode("utf-8"))
result = data["chart"]["result"][0]
timestamps = result["timestamp"]
closes = result["indicators"]["quote"][0]["close"]
history = []
for ts, cl in zip(timestamps, closes):
if cl is not None:
dt = datetime.datetime.fromtimestamp(ts)
history.append((dt, float(cl)))
return history
except Exception as e:
print(f"Eroare la descărcare {symbol}: {e}")
return []
...