From d273a89d42f81720073083b9e0e988c8584d84d2 Mon Sep 17 00:00:00 2001 From: Cat Tom Date: Tue, 9 Dec 2025 16:01:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=9F=E6=9C=AB-=E5=85=A8=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=89=BA=E6=9C=AF=E8=AF=84=E5=88=86=E7=B3=BB=E7=BB=9F-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Finnal/AutoArtRatingSystem.py | 213 ++++++++++++++++++ Finnal/Note.md | 5 + .../portfolio_analysis.py | 0 .../README.txt | 0 .../charts/01_price_trend.png | Bin .../charts/02_cumulative_returns.png | Bin .../charts/03_drawdown_analysis.png | Bin .../charts/04_returns_distribution.png | Bin .../charts/05_monthly_returns_heatmap.png | Bin .../charts/06_yearly_returns.png | Bin .../charts/07_rolling_returns.png | Bin .../charts/08_investment_growth.png | Bin .../charts/09_investment_returns.png | Bin .../charts/10_investment_progress.png | Bin .../data/exchange_rate.csv | 0 .../data/portfolio_performance.csv | 0 .../data/raw_prices.csv | 0 .../data/raw_returns.csv | 0 .../tables/correlation_matrix.csv | 0 .../tables/daily_returns.csv | 0 .../tables/drawdown_analysis.csv | 0 .../tables/investment_asset_details.csv | 0 .../tables/investment_recommendations.csv | 0 .../tables/investment_simulation_details.csv | 0 .../tables/investment_simulation_summary.csv | 0 .../tables/monthly_returns.csv | 0 .../tables/portfolio_configuration.csv | 0 .../tables/portfolio_performance.csv | 0 .../tables/returns_summary.csv | 0 .../tables/stock_prices_detailed.csv | 0 .../tables/stock_prices_summary.csv | 0 .../tables/yearly_returns.csv | 0 .../README.txt | 0 .../charts/01_price_trend.png | Bin .../charts/02_cumulative_returns.png | Bin .../charts/03_drawdown_analysis.png | Bin .../charts/04_returns_distribution.png | Bin .../charts/05_monthly_returns_heatmap.png | Bin .../charts/06_yearly_returns.png | Bin .../charts/07_rolling_returns.png | Bin .../charts/08_investment_growth.png | Bin .../charts/09_investment_returns.png | Bin .../charts/10_investment_progress.png | Bin .../data/exchange_rate.csv | 0 .../data/portfolio_performance.csv | 0 .../data/raw_prices.csv | 0 .../data/raw_returns.csv | 0 .../tables/correlation_matrix.csv | 0 .../tables/daily_returns.csv | 0 .../tables/drawdown_analysis.csv | 0 .../tables/investment_asset_details.csv | 0 .../tables/investment_recommendations.csv | 0 .../tables/investment_simulation_details.csv | 0 .../tables/investment_simulation_summary.csv | 0 .../tables/monthly_returns.csv | 0 .../tables/portfolio_configuration.csv | 0 .../tables/portfolio_performance.csv | 0 .../tables/returns_summary.csv | 0 .../tables/stock_prices_detailed.csv | 0 .../tables/stock_prices_summary.csv | 0 .../tables/yearly_returns.csv | 0 61 files changed, 218 insertions(+) create mode 100644 Finnal/AutoArtRatingSystem.py create mode 100644 Finnal/Note.md rename portfolio_analysis.py => Others/portfolio_analysis.py (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/README.txt (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/01_price_trend.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/02_cumulative_returns.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/03_drawdown_analysis.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/04_returns_distribution.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/05_monthly_returns_heatmap.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/06_yearly_returns.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/07_rolling_returns.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/08_investment_growth.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/09_investment_returns.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/charts/10_investment_progress.png (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/data/exchange_rate.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/data/portfolio_performance.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/data/raw_prices.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/data/raw_returns.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/correlation_matrix.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/daily_returns.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/drawdown_analysis.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/investment_asset_details.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/investment_recommendations.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/investment_simulation_details.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/investment_simulation_summary.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/monthly_returns.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/portfolio_configuration.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/portfolio_performance.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/returns_summary.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/stock_prices_detailed.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/stock_prices_summary.csv (100%) rename {portfolio_analysis_20251205_190343 => Others/portfolio_analysis_20251205_190343}/tables/yearly_returns.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/README.txt (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/01_price_trend.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/02_cumulative_returns.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/03_drawdown_analysis.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/04_returns_distribution.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/05_monthly_returns_heatmap.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/06_yearly_returns.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/07_rolling_returns.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/08_investment_growth.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/09_investment_returns.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/charts/10_investment_progress.png (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/data/exchange_rate.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/data/portfolio_performance.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/data/raw_prices.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/data/raw_returns.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/correlation_matrix.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/daily_returns.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/drawdown_analysis.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/investment_asset_details.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/investment_recommendations.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/investment_simulation_details.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/investment_simulation_summary.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/monthly_returns.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/portfolio_configuration.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/portfolio_performance.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/returns_summary.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/stock_prices_detailed.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/stock_prices_summary.csv (100%) rename {portfolio_analysis_20251205_190933 => Others/portfolio_analysis_20251205_190933}/tables/yearly_returns.csv (100%) diff --git a/Finnal/AutoArtRatingSystem.py b/Finnal/AutoArtRatingSystem.py new file mode 100644 index 0000000..972be09 --- /dev/null +++ b/Finnal/AutoArtRatingSystem.py @@ -0,0 +1,213 @@ +import tkinter as tk +from tkinter import ttk, messagebox, scrolledtext +import numpy as np +from collections import defaultdict + + +class AutoArtRatingSystem: + """全自动艺术评分系统核心逻辑""" + + def __init__(self): + self.scores = {} # {作品ID: [评分1, 评分2, ...]} + self.effective_scores = {} # {作品ID: 有效得分} + self.ranked_works = [] # [(作品ID, 得分), ...] 按得分降序排列 + self.judge_stats = {} # {评委ID: {'平均打分':..., '得分范围':..., '离散程度':..., '异常评分':...}} + + def auto_calculate(self): + """自动执行所有统计分析""" + if not self.scores: + return + + # 1. 计算有效得分(自动去掉最高最低分) + self.effective_scores = { + pid: round( + sum(sorted(score_list)[1:-1]) / max(1, len(score_list) - 2), + 2 + ) + for pid, score_list in self.scores.items() + } + + # 2. 自动生成作品排名 + self.ranked_works = sorted( + self.effective_scores.items(), + key=lambda x: x[1], + reverse=True + ) + + # 3. 自动分析评委打分 + judge_scores = defaultdict(list) + for pid, score_list in self.scores.items(): + for judge_idx, score in enumerate(score_list): + judge_id = f"评委{judge_idx + 1}" + judge_scores[judge_id].append(score) + + self.judge_stats = {} + for judge_id, score_list in judge_scores.items(): + avg = round(np.mean(score_list), 2) + score_range = f"{min(score_list)}-{max(score_list)}" + std_dev = round(np.std(score_list), 2) + + # 自动识别异常评分(超出均值±1.5标准差) + threshold = 1.5 * std_dev + outliers = [ + s for s in score_list + if not (avg - threshold <= s <= avg + threshold) + ] + self.judge_stats[judge_id] = { + '平均打分': avg, + '得分范围': score_range, + '离散程度': std_dev, + '异常评分': outliers if outliers else "无" + } + + def get_report(self): + """获取完整统计报告""" + self.auto_calculate() + report = "=== 自动艺术评分统计报告 ===\n\n" + + # 1. 有效得分详情 + report += "【有效得分计算】\n" + for pid, score in self.effective_scores.items(): + raw_scores = self.scores[pid] + report += f"作品 {pid}: 原始评分[{', '.join(map(str, raw_scores))}] " + report += f"→ 有效得分{score}\n" + report += "\n" + + # 2. 作品排名 + report += "【作品最终排名】\n" + for rank, (pid, score) in enumerate(self.ranked_works, 1): + report += f"第{rank}名: 作品{pid} ({score}分)\n" + report += "\n" + + # 3. 评委分析 + report += "【评委评分分析】\n" + for judge_id, stats in self.judge_stats.items(): + report += f"{judge_id}:\n" + report += f" • 平均打分: {stats['平均打分']}\n" + report += f" • 得分范围: {stats['得分范围']}\n" + report += f" • 离散程度: {stats['离散程度']}\n" + outliers = stats['异常评分'] + outliers_str = ', '.join(map(str, outliers)) if isinstance(outliers, list) else outliers + report += f" • 异常评分: {outliers_str}\n\n" + return report + + +class AutoRatingApp: + """全自动艺术评分系统GUI界面""" + + def __init__(self, root): + self.root = root + self.root.title("全自动艺术评分系统") + self.root.geometry("900x700") + + self.rating_system = AutoArtRatingSystem() + + # 输入区域 + input_frame = ttk.LabelFrame(root, text="评分数据输入") + input_frame.pack(fill="x", padx=10, pady=5) + + # 作品ID输入 + ttk.Label(input_frame, text="作品ID:").grid(row=0, column=0, padx=5, sticky="e") + self.piece_id = tk.StringVar() + ttk.Entry(input_frame, textvariable=self.piece_id, width=10).grid(row=0, column=1, padx=5) + + # 评委评分输入 + ttk.Label(input_frame, text="评委评分(空格分隔):").grid(row=0, column=2, padx=5, sticky="e") + self.scores_input = tk.StringVar() + ttk.Entry(input_frame, textvariable=self.scores_input, width=40).grid(row=0, column=3, padx=5) + + # 添加按钮 + ttk.Button(input_frame, text="添加评分", command=self.add_score).grid(row=0, column=4, padx=10) + + # 数据展示区 + data_frame = ttk.LabelFrame(root, text="当前评分数据") + data_frame.pack(fill="both", expand=True, padx=10, pady=5) + + # 数据表格 + columns = ("作品ID", "评委评分", "有效得分") + self.tree = ttk.Treeview(data_frame, columns=columns, show="headings") + for col in columns: + self.tree.heading(col, text=col) + self.tree.column(col, width=150 if col == "评委评分" else 100) + self.tree.pack(fill="both", expand=True) + + # 报告区域 + report_frame = ttk.LabelFrame(root, text="自动统计报告") + report_frame.pack(fill="both", expand=True, padx=10, pady=5) + + self.report_text = scrolledtext.ScrolledText(report_frame, wrap=tk.WORD, width=80, height=15) + self.report_text.pack(fill="both", expand=True) + + # 底部按钮 + btn_frame = tk.Frame(root) + btn_frame.pack(fill="x", padx=10, pady=5) + + ttk.Button(btn_frame, text="清除所有数据", command=self.clear_data).pack(side="left", padx=5) + ttk.Button(btn_frame, text="刷新报告", command=self.update_report).pack(side="right", padx=5) + + def validate_input(self): + """自动验证输入数据""" + piece_id = self.piece_id.get().strip() + score_str = self.scores_input.get().strip() + + if not piece_id: + messagebox.showerror("错误", "作品ID不能为空") + return None + if piece_id in self.rating_system.scores: + messagebox.showerror("错误", f"作品 {piece_id} 已存在") + return None + try: + scores = list(map(float, score_str.split())) + if len(scores) < 3: + messagebox.showerror("错误", "至少需要3个评委评分") + return None + if any(s < 0 or s > 100 for s in scores): + messagebox.showerror("错误", "评分必须在0-100之间") + return None + return piece_id, scores + except ValueError: + messagebox.showerror("错误", "评分必须是数字,用空格分隔") + return None + + def add_score(self): + """添加评分数据并自动更新统计""" + data = self.validate_input() + if not data: + return + piece_id, scores = data + self.rating_system.scores[piece_id] = scores + + # 更新表格显示 + self.tree.insert( + "", "end", + values=( + piece_id, + ", ".join(map(str, scores)), + self.rating_system.effective_scores.get(piece_id, "计算中...") + ) + ) + + # 清空输入框 + self.piece_id.set("") + self.scores_input.set("") + + # 自动更新报告 + self.update_report() + + def update_report(self): + """自动更新统计报告""" + self.report_text.delete(1.0, tk.END) + self.report_text.insert(tk.END, self.rating_system.get_report()) + + def clear_data(self): + """清除所有数据并重置界面""" + self.rating_system = AutoArtRatingSystem() + self.tree.delete(*self.tree.get_children()) + self.report_text.delete(1.0, tk.END) + messagebox.showinfo("提示", "所有数据已清除") + + +if __name__ == "__main__": + root = tk.Tk() + app = AutoRatingApp(root) + root.mainloop() diff --git a/Finnal/Note.md b/Finnal/Note.md new file mode 100644 index 0000000..34e7b8c --- /dev/null +++ b/Finnal/Note.md @@ -0,0 +1,5 @@ +## 全自动艺术评分系统 - AutoArtRatingSystem.py +```shell +pip install numpy pyinstaller +pyinstaller -F --windowed --hidden-import=tkinter --hidden-import=numpy "AutoArtRatingSystem.py" +``` diff --git a/portfolio_analysis.py b/Others/portfolio_analysis.py similarity index 100% rename from portfolio_analysis.py rename to Others/portfolio_analysis.py diff --git a/portfolio_analysis_20251205_190343/README.txt b/Others/portfolio_analysis_20251205_190343/README.txt similarity index 100% rename from portfolio_analysis_20251205_190343/README.txt rename to Others/portfolio_analysis_20251205_190343/README.txt diff --git a/portfolio_analysis_20251205_190343/charts/01_price_trend.png b/Others/portfolio_analysis_20251205_190343/charts/01_price_trend.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/01_price_trend.png rename to Others/portfolio_analysis_20251205_190343/charts/01_price_trend.png diff --git a/portfolio_analysis_20251205_190343/charts/02_cumulative_returns.png b/Others/portfolio_analysis_20251205_190343/charts/02_cumulative_returns.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/02_cumulative_returns.png rename to Others/portfolio_analysis_20251205_190343/charts/02_cumulative_returns.png diff --git a/portfolio_analysis_20251205_190343/charts/03_drawdown_analysis.png b/Others/portfolio_analysis_20251205_190343/charts/03_drawdown_analysis.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/03_drawdown_analysis.png rename to Others/portfolio_analysis_20251205_190343/charts/03_drawdown_analysis.png diff --git a/portfolio_analysis_20251205_190343/charts/04_returns_distribution.png b/Others/portfolio_analysis_20251205_190343/charts/04_returns_distribution.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/04_returns_distribution.png rename to Others/portfolio_analysis_20251205_190343/charts/04_returns_distribution.png diff --git a/portfolio_analysis_20251205_190343/charts/05_monthly_returns_heatmap.png b/Others/portfolio_analysis_20251205_190343/charts/05_monthly_returns_heatmap.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/05_monthly_returns_heatmap.png rename to Others/portfolio_analysis_20251205_190343/charts/05_monthly_returns_heatmap.png diff --git a/portfolio_analysis_20251205_190343/charts/06_yearly_returns.png b/Others/portfolio_analysis_20251205_190343/charts/06_yearly_returns.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/06_yearly_returns.png rename to Others/portfolio_analysis_20251205_190343/charts/06_yearly_returns.png diff --git a/portfolio_analysis_20251205_190343/charts/07_rolling_returns.png b/Others/portfolio_analysis_20251205_190343/charts/07_rolling_returns.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/07_rolling_returns.png rename to Others/portfolio_analysis_20251205_190343/charts/07_rolling_returns.png diff --git a/portfolio_analysis_20251205_190343/charts/08_investment_growth.png b/Others/portfolio_analysis_20251205_190343/charts/08_investment_growth.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/08_investment_growth.png rename to Others/portfolio_analysis_20251205_190343/charts/08_investment_growth.png diff --git a/portfolio_analysis_20251205_190343/charts/09_investment_returns.png b/Others/portfolio_analysis_20251205_190343/charts/09_investment_returns.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/09_investment_returns.png rename to Others/portfolio_analysis_20251205_190343/charts/09_investment_returns.png diff --git a/portfolio_analysis_20251205_190343/charts/10_investment_progress.png b/Others/portfolio_analysis_20251205_190343/charts/10_investment_progress.png similarity index 100% rename from portfolio_analysis_20251205_190343/charts/10_investment_progress.png rename to Others/portfolio_analysis_20251205_190343/charts/10_investment_progress.png diff --git a/portfolio_analysis_20251205_190343/data/exchange_rate.csv b/Others/portfolio_analysis_20251205_190343/data/exchange_rate.csv similarity index 100% rename from portfolio_analysis_20251205_190343/data/exchange_rate.csv rename to Others/portfolio_analysis_20251205_190343/data/exchange_rate.csv diff --git a/portfolio_analysis_20251205_190343/data/portfolio_performance.csv b/Others/portfolio_analysis_20251205_190343/data/portfolio_performance.csv similarity index 100% rename from portfolio_analysis_20251205_190343/data/portfolio_performance.csv rename to Others/portfolio_analysis_20251205_190343/data/portfolio_performance.csv diff --git a/portfolio_analysis_20251205_190343/data/raw_prices.csv b/Others/portfolio_analysis_20251205_190343/data/raw_prices.csv similarity index 100% rename from portfolio_analysis_20251205_190343/data/raw_prices.csv rename to Others/portfolio_analysis_20251205_190343/data/raw_prices.csv diff --git a/portfolio_analysis_20251205_190343/data/raw_returns.csv b/Others/portfolio_analysis_20251205_190343/data/raw_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190343/data/raw_returns.csv rename to Others/portfolio_analysis_20251205_190343/data/raw_returns.csv diff --git a/portfolio_analysis_20251205_190343/tables/correlation_matrix.csv b/Others/portfolio_analysis_20251205_190343/tables/correlation_matrix.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/correlation_matrix.csv rename to Others/portfolio_analysis_20251205_190343/tables/correlation_matrix.csv diff --git a/portfolio_analysis_20251205_190343/tables/daily_returns.csv b/Others/portfolio_analysis_20251205_190343/tables/daily_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/daily_returns.csv rename to Others/portfolio_analysis_20251205_190343/tables/daily_returns.csv diff --git a/portfolio_analysis_20251205_190343/tables/drawdown_analysis.csv b/Others/portfolio_analysis_20251205_190343/tables/drawdown_analysis.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/drawdown_analysis.csv rename to Others/portfolio_analysis_20251205_190343/tables/drawdown_analysis.csv diff --git a/portfolio_analysis_20251205_190343/tables/investment_asset_details.csv b/Others/portfolio_analysis_20251205_190343/tables/investment_asset_details.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/investment_asset_details.csv rename to Others/portfolio_analysis_20251205_190343/tables/investment_asset_details.csv diff --git a/portfolio_analysis_20251205_190343/tables/investment_recommendations.csv b/Others/portfolio_analysis_20251205_190343/tables/investment_recommendations.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/investment_recommendations.csv rename to Others/portfolio_analysis_20251205_190343/tables/investment_recommendations.csv diff --git a/portfolio_analysis_20251205_190343/tables/investment_simulation_details.csv b/Others/portfolio_analysis_20251205_190343/tables/investment_simulation_details.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/investment_simulation_details.csv rename to Others/portfolio_analysis_20251205_190343/tables/investment_simulation_details.csv diff --git a/portfolio_analysis_20251205_190343/tables/investment_simulation_summary.csv b/Others/portfolio_analysis_20251205_190343/tables/investment_simulation_summary.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/investment_simulation_summary.csv rename to Others/portfolio_analysis_20251205_190343/tables/investment_simulation_summary.csv diff --git a/portfolio_analysis_20251205_190343/tables/monthly_returns.csv b/Others/portfolio_analysis_20251205_190343/tables/monthly_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/monthly_returns.csv rename to Others/portfolio_analysis_20251205_190343/tables/monthly_returns.csv diff --git a/portfolio_analysis_20251205_190343/tables/portfolio_configuration.csv b/Others/portfolio_analysis_20251205_190343/tables/portfolio_configuration.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/portfolio_configuration.csv rename to Others/portfolio_analysis_20251205_190343/tables/portfolio_configuration.csv diff --git a/portfolio_analysis_20251205_190343/tables/portfolio_performance.csv b/Others/portfolio_analysis_20251205_190343/tables/portfolio_performance.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/portfolio_performance.csv rename to Others/portfolio_analysis_20251205_190343/tables/portfolio_performance.csv diff --git a/portfolio_analysis_20251205_190343/tables/returns_summary.csv b/Others/portfolio_analysis_20251205_190343/tables/returns_summary.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/returns_summary.csv rename to Others/portfolio_analysis_20251205_190343/tables/returns_summary.csv diff --git a/portfolio_analysis_20251205_190343/tables/stock_prices_detailed.csv b/Others/portfolio_analysis_20251205_190343/tables/stock_prices_detailed.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/stock_prices_detailed.csv rename to Others/portfolio_analysis_20251205_190343/tables/stock_prices_detailed.csv diff --git a/portfolio_analysis_20251205_190343/tables/stock_prices_summary.csv b/Others/portfolio_analysis_20251205_190343/tables/stock_prices_summary.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/stock_prices_summary.csv rename to Others/portfolio_analysis_20251205_190343/tables/stock_prices_summary.csv diff --git a/portfolio_analysis_20251205_190343/tables/yearly_returns.csv b/Others/portfolio_analysis_20251205_190343/tables/yearly_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190343/tables/yearly_returns.csv rename to Others/portfolio_analysis_20251205_190343/tables/yearly_returns.csv diff --git a/portfolio_analysis_20251205_190933/README.txt b/Others/portfolio_analysis_20251205_190933/README.txt similarity index 100% rename from portfolio_analysis_20251205_190933/README.txt rename to Others/portfolio_analysis_20251205_190933/README.txt diff --git a/portfolio_analysis_20251205_190933/charts/01_price_trend.png b/Others/portfolio_analysis_20251205_190933/charts/01_price_trend.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/01_price_trend.png rename to Others/portfolio_analysis_20251205_190933/charts/01_price_trend.png diff --git a/portfolio_analysis_20251205_190933/charts/02_cumulative_returns.png b/Others/portfolio_analysis_20251205_190933/charts/02_cumulative_returns.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/02_cumulative_returns.png rename to Others/portfolio_analysis_20251205_190933/charts/02_cumulative_returns.png diff --git a/portfolio_analysis_20251205_190933/charts/03_drawdown_analysis.png b/Others/portfolio_analysis_20251205_190933/charts/03_drawdown_analysis.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/03_drawdown_analysis.png rename to Others/portfolio_analysis_20251205_190933/charts/03_drawdown_analysis.png diff --git a/portfolio_analysis_20251205_190933/charts/04_returns_distribution.png b/Others/portfolio_analysis_20251205_190933/charts/04_returns_distribution.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/04_returns_distribution.png rename to Others/portfolio_analysis_20251205_190933/charts/04_returns_distribution.png diff --git a/portfolio_analysis_20251205_190933/charts/05_monthly_returns_heatmap.png b/Others/portfolio_analysis_20251205_190933/charts/05_monthly_returns_heatmap.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/05_monthly_returns_heatmap.png rename to Others/portfolio_analysis_20251205_190933/charts/05_monthly_returns_heatmap.png diff --git a/portfolio_analysis_20251205_190933/charts/06_yearly_returns.png b/Others/portfolio_analysis_20251205_190933/charts/06_yearly_returns.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/06_yearly_returns.png rename to Others/portfolio_analysis_20251205_190933/charts/06_yearly_returns.png diff --git a/portfolio_analysis_20251205_190933/charts/07_rolling_returns.png b/Others/portfolio_analysis_20251205_190933/charts/07_rolling_returns.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/07_rolling_returns.png rename to Others/portfolio_analysis_20251205_190933/charts/07_rolling_returns.png diff --git a/portfolio_analysis_20251205_190933/charts/08_investment_growth.png b/Others/portfolio_analysis_20251205_190933/charts/08_investment_growth.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/08_investment_growth.png rename to Others/portfolio_analysis_20251205_190933/charts/08_investment_growth.png diff --git a/portfolio_analysis_20251205_190933/charts/09_investment_returns.png b/Others/portfolio_analysis_20251205_190933/charts/09_investment_returns.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/09_investment_returns.png rename to Others/portfolio_analysis_20251205_190933/charts/09_investment_returns.png diff --git a/portfolio_analysis_20251205_190933/charts/10_investment_progress.png b/Others/portfolio_analysis_20251205_190933/charts/10_investment_progress.png similarity index 100% rename from portfolio_analysis_20251205_190933/charts/10_investment_progress.png rename to Others/portfolio_analysis_20251205_190933/charts/10_investment_progress.png diff --git a/portfolio_analysis_20251205_190933/data/exchange_rate.csv b/Others/portfolio_analysis_20251205_190933/data/exchange_rate.csv similarity index 100% rename from portfolio_analysis_20251205_190933/data/exchange_rate.csv rename to Others/portfolio_analysis_20251205_190933/data/exchange_rate.csv diff --git a/portfolio_analysis_20251205_190933/data/portfolio_performance.csv b/Others/portfolio_analysis_20251205_190933/data/portfolio_performance.csv similarity index 100% rename from portfolio_analysis_20251205_190933/data/portfolio_performance.csv rename to Others/portfolio_analysis_20251205_190933/data/portfolio_performance.csv diff --git a/portfolio_analysis_20251205_190933/data/raw_prices.csv b/Others/portfolio_analysis_20251205_190933/data/raw_prices.csv similarity index 100% rename from portfolio_analysis_20251205_190933/data/raw_prices.csv rename to Others/portfolio_analysis_20251205_190933/data/raw_prices.csv diff --git a/portfolio_analysis_20251205_190933/data/raw_returns.csv b/Others/portfolio_analysis_20251205_190933/data/raw_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190933/data/raw_returns.csv rename to Others/portfolio_analysis_20251205_190933/data/raw_returns.csv diff --git a/portfolio_analysis_20251205_190933/tables/correlation_matrix.csv b/Others/portfolio_analysis_20251205_190933/tables/correlation_matrix.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/correlation_matrix.csv rename to Others/portfolio_analysis_20251205_190933/tables/correlation_matrix.csv diff --git a/portfolio_analysis_20251205_190933/tables/daily_returns.csv b/Others/portfolio_analysis_20251205_190933/tables/daily_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/daily_returns.csv rename to Others/portfolio_analysis_20251205_190933/tables/daily_returns.csv diff --git a/portfolio_analysis_20251205_190933/tables/drawdown_analysis.csv b/Others/portfolio_analysis_20251205_190933/tables/drawdown_analysis.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/drawdown_analysis.csv rename to Others/portfolio_analysis_20251205_190933/tables/drawdown_analysis.csv diff --git a/portfolio_analysis_20251205_190933/tables/investment_asset_details.csv b/Others/portfolio_analysis_20251205_190933/tables/investment_asset_details.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/investment_asset_details.csv rename to Others/portfolio_analysis_20251205_190933/tables/investment_asset_details.csv diff --git a/portfolio_analysis_20251205_190933/tables/investment_recommendations.csv b/Others/portfolio_analysis_20251205_190933/tables/investment_recommendations.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/investment_recommendations.csv rename to Others/portfolio_analysis_20251205_190933/tables/investment_recommendations.csv diff --git a/portfolio_analysis_20251205_190933/tables/investment_simulation_details.csv b/Others/portfolio_analysis_20251205_190933/tables/investment_simulation_details.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/investment_simulation_details.csv rename to Others/portfolio_analysis_20251205_190933/tables/investment_simulation_details.csv diff --git a/portfolio_analysis_20251205_190933/tables/investment_simulation_summary.csv b/Others/portfolio_analysis_20251205_190933/tables/investment_simulation_summary.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/investment_simulation_summary.csv rename to Others/portfolio_analysis_20251205_190933/tables/investment_simulation_summary.csv diff --git a/portfolio_analysis_20251205_190933/tables/monthly_returns.csv b/Others/portfolio_analysis_20251205_190933/tables/monthly_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/monthly_returns.csv rename to Others/portfolio_analysis_20251205_190933/tables/monthly_returns.csv diff --git a/portfolio_analysis_20251205_190933/tables/portfolio_configuration.csv b/Others/portfolio_analysis_20251205_190933/tables/portfolio_configuration.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/portfolio_configuration.csv rename to Others/portfolio_analysis_20251205_190933/tables/portfolio_configuration.csv diff --git a/portfolio_analysis_20251205_190933/tables/portfolio_performance.csv b/Others/portfolio_analysis_20251205_190933/tables/portfolio_performance.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/portfolio_performance.csv rename to Others/portfolio_analysis_20251205_190933/tables/portfolio_performance.csv diff --git a/portfolio_analysis_20251205_190933/tables/returns_summary.csv b/Others/portfolio_analysis_20251205_190933/tables/returns_summary.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/returns_summary.csv rename to Others/portfolio_analysis_20251205_190933/tables/returns_summary.csv diff --git a/portfolio_analysis_20251205_190933/tables/stock_prices_detailed.csv b/Others/portfolio_analysis_20251205_190933/tables/stock_prices_detailed.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/stock_prices_detailed.csv rename to Others/portfolio_analysis_20251205_190933/tables/stock_prices_detailed.csv diff --git a/portfolio_analysis_20251205_190933/tables/stock_prices_summary.csv b/Others/portfolio_analysis_20251205_190933/tables/stock_prices_summary.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/stock_prices_summary.csv rename to Others/portfolio_analysis_20251205_190933/tables/stock_prices_summary.csv diff --git a/portfolio_analysis_20251205_190933/tables/yearly_returns.csv b/Others/portfolio_analysis_20251205_190933/tables/yearly_returns.csv similarity index 100% rename from portfolio_analysis_20251205_190933/tables/yearly_returns.csv rename to Others/portfolio_analysis_20251205_190933/tables/yearly_returns.csv