From 5a180b0783178717162bdb68c1ca16db2de45fe3 Mon Sep 17 00:00:00 2001 From: zukinshop Date: Fri, 27 Feb 2026 01:54:48 +0900 Subject: [PATCH 1/3] Stock-Analysis changes. When executing parallel processing, an error occurred that ran out of PC memory (or virtual memory), so the number of Pool() in app.py was limited. Improper data access improvements for tuples. The definition of the data type was different between the sending side (Stock-Analysis\fetch_stocks) and the receiving side (Stock-Analysis\app\data_processor), so it was changed and unified to the dictionary type. In Stock-Analysis\plot_stocks.py, changed the file save destination from an absolute path to a relative path. Stock-Analysis\load_stocks.py supported multiple character codes. It seems that many of the stocks in the Turkish market (.IS) are not provided with recommendationMean on Yahoo Finance. Therefore, I added Stock-Analysis\generate_japan_stocks_csv.py to generate a CSV that can reliably retrieve stock data. For some reason, it's the Tokyo Stock Exchange. If you request too much data from yfinance, it will often return empty data, so we limited it to topix_core30, which is Japan's large-cap stocks. Rate (recommendationMean) is also written in CSV. Modified Stock-Analysis\data_processor.py. Add requirements.txt. Try: Enter the filename containing the list of stocks: topix_core30 --- Stock-Analysis/.gitignore | 4 +- Stock-Analysis/app.py | 9 ++-- Stock-Analysis/data/aaa.csv | 31 +++++++++++++ Stock-Analysis/data/topix_core30.csv | 31 +++++++++++++ Stock-Analysis/data_processor.py | 30 ++++++++----- Stock-Analysis/fetch_stocks.py | 18 ++++++-- Stock-Analysis/generate_jpx_stocks_csv.py | 50 +++++++++++++++++++++ Stock-Analysis/load_stocks.py | 49 +++++++++++++++----- Stock-Analysis/plot_stocks.py | 8 +++- Stock-Analysis/requirements.txt | Bin 0 -> 1198 bytes Stock-Analysis/results/plot_27-02-2026.png | Bin 0 -> 151569 bytes 11 files changed, 200 insertions(+), 30 deletions(-) create mode 100644 Stock-Analysis/data/aaa.csv create mode 100644 Stock-Analysis/data/topix_core30.csv create mode 100644 Stock-Analysis/generate_jpx_stocks_csv.py create mode 100644 Stock-Analysis/requirements.txt create mode 100644 Stock-Analysis/results/plot_27-02-2026.png diff --git a/Stock-Analysis/.gitignore b/Stock-Analysis/.gitignore index 98a1238..7845c15 100644 --- a/Stock-Analysis/.gitignore +++ b/Stock-Analysis/.gitignore @@ -1,2 +1,4 @@ .stonks/ -myapp.log \ No newline at end of file +myapp.log +.venv +__pycache__ \ No newline at end of file diff --git a/Stock-Analysis/app.py b/Stock-Analysis/app.py index c4d8ec1..330c8ca 100644 --- a/Stock-Analysis/app.py +++ b/Stock-Analysis/app.py @@ -63,7 +63,9 @@ def main(self): self.logger.info("No stocks loaded.") return - with Pool() as pool: + # Limit the number of Pool() to reduce memory consumption. + # This is to avoid running out of PC memory (or virtual memory) when executing parallel processing. + with Pool(processes=2) as pool: data = pool.map(self.stock_fetcher.fetch_stock_data, stocks) data = [stock_info for stock_info in data if stock_info is not None] @@ -73,9 +75,10 @@ def main(self): self.logger.warning("No valid stock data was fetched.") return - successful_symbols = [stock_info["symbol"] for stock_info in data] - + successful_symbols = data # Keep all data + df = self.data_processor.display_data(data, sort=sort_data) + self.stock_plotter.plot_data( df, save_figure=True, diff --git a/Stock-Analysis/data/aaa.csv b/Stock-Analysis/data/aaa.csv new file mode 100644 index 0000000..5fee11c --- /dev/null +++ b/Stock-Analysis/data/aaa.csv @@ -0,0 +1,31 @@ +Rate,Symbol +2.16667,2914.T +2.28571,3382.T +1.64706,4063.T +2.13333,4502.T +1.375,4568.T +1.8125,6098.T +2.11765,6367.T +1.46154,6501.T +2.0,6503.T +1.36364,6758.T +1.95238,6857.T +1.76471,6861.T +1.5,7011.T +1.76471,7203.T +2.23529,7267.T +1.6,7741.T +1.96296,7974.T +1.53846,8001.T +2.23077,8031.T +1.86364,8035.T +2.92857,8058.T +2.08333,8306.T +1.66667,8316.T +2.08333,8411.T +2.375,8729.T +1.81818,8766.T +2.0,9432.T +2.46667,9433.T +1.92857,9983.T +1.75,9984.T diff --git a/Stock-Analysis/data/topix_core30.csv b/Stock-Analysis/data/topix_core30.csv new file mode 100644 index 0000000..05d9473 --- /dev/null +++ b/Stock-Analysis/data/topix_core30.csv @@ -0,0 +1,31 @@ +2914.T +3382.T +4063.T +4502.T +4568.T +6098.T +6367.T +6501.T +6503.T +6758.T +6857.T +6861.T +7011.T +7203.T +7267.T +7741.T +7974.T +8001.T +8031.T +8035.T +8058.T +8306.T +8316.T +8411.T +8729.T +8766.T +9432.T +9433.T +9434.T +9983.T +9984.T diff --git a/Stock-Analysis/data_processor.py b/Stock-Analysis/data_processor.py index aa255a5..22c0d5c 100644 --- a/Stock-Analysis/data_processor.py +++ b/Stock-Analysis/data_processor.py @@ -21,22 +21,30 @@ def display_data(data, sort=False): return df @staticmethod - def save_successful_symbols(filename, successful_symbols): + def save_successful_symbols(filename, results): """Save successfully fetched stock symbols to a CSV file.""" - if not successful_symbols: - logging.getLoger(__name__).info("No successful symbols to save.") + if not results: + logging.getLogger(__name__).info("No successful symbols to save.") return - + + directory = "data" + #Constructing the file path + # Eliminate the possibility of unbound in exception handling + path = os.path.join(directory, filename) + try: - directory = "data" if not os.path.exists(directory): os.makedirs(directory) - #Constructing the file path - path = os.path.join(directory, filename) - with open(path, 'w', newline='') as file: - writer = csv.writer(file) - for symbol in successful_symbols: - writer.writerow([symbol]) + with open(path, 'w', newline='', encoding='utf-8') as file: + # DictWriter allows you to neatly divide dictionary data into columns + fieldnames = ['Rate', 'Symbol'] + writer = csv.DictWriter(file, fieldnames=fieldnames) + + # Write header (column name) + writer.writeheader() + # write all lines of data + for row in results: + writer.writerow(row) logging.getLogger(__name__).info(f"Successful symbols saved to {path}.") except PermissionError: logging.getLogger(__name__).error(f"Permission denied: Unable to save symbols to {path}. Please check file permissions") diff --git a/Stock-Analysis/fetch_stocks.py b/Stock-Analysis/fetch_stocks.py index a24cb76..df5322a 100644 --- a/Stock-Analysis/fetch_stocks.py +++ b/Stock-Analysis/fetch_stocks.py @@ -17,10 +17,20 @@ def fetch_stock_data(stock): # Check if recommendation data exists if 'recommendationMean' not in info: - raise KeyError("recommendationMean field missing in API response") - - rate = info["recommendationMean"] - return (rate, stock) + # log and return None instead of throwing an error + logging.getLogger(__name__).warning(f"No recommendation data for {stock}. Skipping.") + return None + + # First find the analyst recommendation value (recommendationMean) + # If not available, substitute current stock price (currentPrice) + rate = info.get("recommendationMean") + if rate is None: + # Obtain prices for Japanese stocks etc. + rate = info.get("currentPrice") or info.get("regularMarketPrice") or 0 + logging.getLogger(__name__).debug(f"{stock}: Using price as fallback.") + + # Unify the return value into a dictionary (for consistency with app.py) + return {"Rate": rate, "Symbol": stock} except ValueError as e: logging.getLogger(__name__).error( diff --git a/Stock-Analysis/generate_jpx_stocks_csv.py b/Stock-Analysis/generate_jpx_stocks_csv.py new file mode 100644 index 0000000..290c1da --- /dev/null +++ b/Stock-Analysis/generate_jpx_stocks_csv.py @@ -0,0 +1,50 @@ +import pandas as pd +import os +import logging + +''' +This is an example. +This pulls data from the Tokyo Stock Exchange to obtain a CSV of stocks for which data is available. +Please try to acquire other stocks as well. +''' +def fetch_and_save_core30(): + # URL of list of listed stocks (Excel) from JPX official website + # Japanese listed stocks + # This file contains market segmentation and size segmentation for all listed stocks + jpx_url = "https://www.jpx.co.jp/markets/statistics-equities/misc/tvdivq0000001vg2-att/data_j.xls" + + print("Obtaining the latest stock list from JPX...") + try: + # Read the Excel file (using pandas read_excel) + # Extract stocks with 'TOPIX Core30' listed in '規模区分(Size category)' column + df = pd.read_excel(jpx_url) + + # Filter only those with size category TOPIX Core30 + core30_df = df[df['規模区分'] == 'TOPIX Core30'] + + if core30_df.empty: + print("TOPIX Core30 stocks were not found. Please check the URL and file format.") + return + + # Convert the stock code to a format that can be used by yfinance (e.g. 7203.T) + # Convert the number in the 'code' column to a string and add '.T' to the end + symbols = core30_df['コード'].astype(str).apply(lambda x: x + ".T").tolist() + + # Save as CSV + directory = "data" + if not os.path.exists(directory): + os.makedirs(directory) + + output_path = os.path.join(directory, "topix_core30.csv") + + # Save without index and header (to match existing load_stocks.py specifications) + pd.Series(symbols).to_csv(output_path, index=False, header=False) + + print(f"Success: {len(symbols)} stocks are saved on {output_path}") + print("stocks sample:", symbols[:5]) + + except Exception as e: + print(f"Error!!: {e}") + +if __name__ == "__main__": + fetch_and_save_core30() \ No newline at end of file diff --git a/Stock-Analysis/load_stocks.py b/Stock-Analysis/load_stocks.py index e3ba3c7..fa210fd 100644 --- a/Stock-Analysis/load_stocks.py +++ b/Stock-Analysis/load_stocks.py @@ -5,21 +5,50 @@ class StockLoader: @staticmethod def load_stocks(filename): - """Load stock symbols from a CSV file.""" + """Load stock symbols from CSV, trying multiple character codes.""" stocks = [] try: - with open(filename, 'r') as file: - reader = csv.reader(file) - for line in reader: - if line and len(line) >= 1: - symbol = line[0].strip() - if symbol: - stocks.append(symbol) + #List of encodings to try. + #utf-8-sig can preferentially process UTF-8 with BOM (for Excel) + encodings = ['utf-8-sig', 'utf-8', 'cp932', 'shift_jis', 'euc-jp'] + + selected_enc = None + + for enc in encodings: + try: + with open(filename, 'r', encoding=enc) as file: + # Try loading it once and check if there are any errors + reader = csv.reader(file) + # Keep data temporarily + temp_stocks = [] + for line in reader: + if line and len(line) >= 1: + symbol = line[0].strip() + if symbol: + temp_stocks.append(symbol) + + # If you get to this point, loading is successful + stocks = temp_stocks + selected_enc = enc + break + except (UnicodeDecodeError, csv.Error): + # If decoding fails, try the next character code + continue + except FileNotFoundError: + logging.getLogger(__name__).error(f"File {filename} not found.") + return [] + + if selected_enc: + logging.getLogger(__name__).info(f"Successfully loaded {filename} using {selected_enc}.") + else: + logging.getLogger(__name__).error(f"Failed to decode {filename} with available encodings.") + return [] + if not stocks: logging.getLogger(__name__).warning(f"No valid stock symbols found in file {filename}.") - else: - logging.getLogger(__name__).info('File loaded successfully.') + return stocks + except FileNotFoundError: logging.getLogger(__name__).error(f"File {filename} not found. Please provide a valid file path.") return [] diff --git a/Stock-Analysis/plot_stocks.py b/Stock-Analysis/plot_stocks.py index f1c3464..ec8fa36 100644 --- a/Stock-Analysis/plot_stocks.py +++ b/Stock-Analysis/plot_stocks.py @@ -1,6 +1,7 @@ import matplotlib.pyplot as plt import logging import datetime +import os class StockPlotter: @@ -23,8 +24,13 @@ def plot_data(df, save_figure=False, figure_filename="plot.png", bar_width=0.6, plt.xticks(rotation=45, ha='right', fontsize=font_size) plt.tight_layout() if save_figure: + # Change to relative path and create the folder if it doesn't exist + results_dir = "results" + if not os.path.exists(results_dir): + os.makedirs(results_dir) + current_time = datetime.datetime.now().strftime("%d-%m-%Y") - figure_filename = f"/workspaces/Python_Project/Stock-Analysis/results/plot_{current_time}.png" + figure_filename = f"results/plot_{current_time}.png" plt.savefig(figure_filename, dpi=dpi) # Save the figure to a file with higher resolution logging.getLogger(__name__).info(f"Figure saved as {figure_filename}.") # Log that the figure has been saved else: diff --git a/Stock-Analysis/requirements.txt b/Stock-Analysis/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..d5ecdeeeb8481682ff534541ab87fada93313325 GIT binary patch literal 1198 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 literal 0 HcmV?d00001 From 41eae9a50bd7311a2b061baaad6aa04eaabe44f6 Mon Sep 17 00:00:00 2001 From: zukinshop Date: Fri, 27 Feb 2026 01:59:28 +0900 Subject: [PATCH 2/3] fix README --- Stock-Analysis/README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Stock-Analysis/README.md b/Stock-Analysis/README.md index b727286..5d69feb 100644 --- a/Stock-Analysis/README.md +++ b/Stock-Analysis/README.md @@ -23,7 +23,7 @@ This Python script empowers you to effortlessly analyze and visualize stock rati ## Prerequisites - Python 3.x -- Required Python packages: `requests`, `csv`, `yfinance`, `pandas`, `matplotlib` +- Required Python packages: `requests`, `csv`, `yfinance`, `pandas`, `matplotlib`,`xlrd`,`openpyxl` - Internet connection to fetch stock data from Yahoo Finance ## Usage @@ -31,8 +31,12 @@ This Python script empowers you to effortlessly analyze and visualize stock rati ``` pip install requests yfinance pandas matplotlib ``` +or + ``` + pip install -r requirements.txt + ``` 2. **Prepare Stock List**: Create a CSV file containing a list of stock symbols, with one symbol per line. -3. **Run the Script**: Execute the script `main.py`. You'll be prompted to enter the filename of the CSV containing stock symbols and whether to sort the data. +3. **Run the Script**: Execute the script `app.py`. You'll be prompted to enter the filename of the CSV containing stock symbols and whether to sort the data. The recommended file name is "topix_core30". 4. **View Data**: After execution, the script will display the fetched stock data. If opted, it will also generate a bar plot for visualization. 5. **Save Successful Symbols**: Optionally, you can choose to save the symbols for which data was successfully fetched into another CSV file. From 35daf29069a79a62e787adec542b6808d4507696 Mon Sep 17 00:00:00 2001 From: zukinshop Date: Fri, 27 Feb 2026 02:00:36 +0900 Subject: [PATCH 3/3] fix README --- Stock-Analysis/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Stock-Analysis/README.md b/Stock-Analysis/README.md index 5d69feb..c30bcfc 100644 --- a/Stock-Analysis/README.md +++ b/Stock-Analysis/README.md @@ -29,7 +29,7 @@ This Python script empowers you to effortlessly analyze and visualize stock rati ## Usage 1. **Install Dependencies**: Ensure that all required Python packages are installed. You can install them via pip: ``` - pip install requests yfinance pandas matplotlib + pip install requests yfinance pandas matplotlib xlrd openpyxl ``` or ```