成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

炒股利器!用Python大模型篩選低估值股票 原創

發布于 2024-6-6 07:57
瀏覽
0收藏

在股票投資中,尋找被低估的股票是實現高回報的重要途徑。傳統的分析方法需要大量手工處理數據,而Python數據科學和LLM大模型技術可以幫助我們更高效地完成這項工作。這個項目旨在利用Python編程語言和大模型來自動化篩選納斯達克市場中的低估值股票。本文所有代碼已打包,并配有詳細文檔,下載方法詳見文末,代碼文件結構如下:

炒股利器!用Python大模型篩選低估值股票 -AI.x社區

最后代碼執行后篩選結果如下:

炒股利器!用Python大模型篩選低估值股票 -AI.x社區

大模型給我們的財富密碼是:PDD(拼多多)、CSCO(思科)、AEP(美國電力公司)、MU(美光科技)、CDW。大模型對篩選出的這幾只股也作了解釋,還是值得我們參考的。

好了,現在從頭開始講解如何進行開發,我們的主要目標是開發一個自動化系統,通過結合關鍵財務指標和大模型的智能分析,篩選出被低估且具有潛在高回報的股票。

我們選擇了以下五個關鍵財務指標來評估股票的價值:市盈率 (PE Ratio)、市凈率 (PB Ratio)、負債股本比 (Debt/Equity Ratio)、股息收益率 (Dividend Yield)、每股收益 (EPS) 增長率。?

實現過程如下:

1、數據收集:

使用Python腳本從Yahoo Finance獲取納斯達克100指數成分股的歷史數據。從維基百科頁面獲取納斯達克100指數的成分股列表。

2、數據處理:

使用Pandas庫對收集到的數據進行處理和清洗。提取每只股票的關鍵財務指標,包括市盈率、市凈率、負債股本比、股息收益率和每股收益增長率。

3、智能分析:

使用Cohere API調用大模型對處理后的數據進行智能分析。基于大模型的分析結果,篩選出被低估且具有潛在高回報的股票。

4、結果輸出:

將篩選結果保存到CSV文件中,方便進一步的分析和決策支持。打印篩選結果,提供對每只被選中股票的理由解釋。

Cohere API 是一套應用程序接口,允許開發者訪問和使用其強大的大規模語言模型(LLMs)來執行各種自然語言處理任務。Cohere 的 API 旨在簡化機器學習模型的集成和使用,使得開發者無需深入了解復雜的機器學習算法和模型訓練過程,就可以利用大模型技術進行文本分析、情感分析等任務。我們可以直接注冊并獲取API key,如下所示。

炒股利器!用Python大模型篩選低估值股票 -AI.x社區

其中最關鍵的過程是數據處理和智能分析的部分,以下是關于這部分代碼的詳細技術分析,解釋其實現原理和流程。

導入庫和模塊

import os
import pandas as pd
import yfinance as yf
from datetime import datetime, timedelta
from cohere_interface import Cohere  # 確保導入Cohere類
from concurrent.futures import ThreadPoolExecutor

這些庫和模塊提供了基本的數據處理和并行處理功能:

  • ??os??:用于操作文件和目錄。
  • ??pandas??:強大的數據處理庫。
  • ??yfinance??:用于從Yahoo Finance獲取金融數據。
  • ??datetime??? 和??timedelta??:用于日期和時間操作。
  • ??Cohere??:自定義模塊,用于與Cohere API交互。
  • ??ThreadPoolExecutor??:用于并行處理,以提高數據處理速度。

Screener 類定義

class Screener:
    def __init__(self, folder):
        self.index = folder  # 設置索引為文件夾名稱
        self.folder = f'/data/historical/analysis/{folder}/'  # 設置數據文件夾路徑
        self.files = os.listdir(self.folder)  # 獲取文件夾中的所有文件
        self.df_all = pd.DataFrame()  # 初始化空的數據框,用于存儲最終數據

        # 創建數據文件夾
        if not os.path.exists(self.folder):
            os.makedirs(self.folder)
  • 初始化Screener類時,設置索引和數據文件夾路徑。
  • 獲取文件夾中的所有文件名。
  • 初始化一個空的DataFrame,用于存儲最終的數據。
  • 如果數據文件夾不存在,則創建該文件夾。

處理單個文件的方法

def process_file(self, filename):
        if (filename.endswith('xlsx') or filename.endswith('csv')) and not filename.startswith('~$'):
            file_path = os.path.join(self.folder, filename)
            print(f"Processing file: {file_path}")

            try:
                df = pd.read_csv(file_path)  # 讀取CSV文件
                df['Date'] = pd.to_datetime(df['Date'], utc=True)  # 轉換日期列為日期時間格式
                df['Date'] = df['Date'].dt.date  # 提取日期部分
                current_date = df.iloc[-1]['Date']  # 獲取最新日期
                symbol = filename.split()[0]  # 獲取股票符號
                info = yf.Ticker(symbol).info  # 獲取股票信息

                # 提取關鍵財務數據
                pe = info.get('trailingPE', None)
                pb = info.get('priceToBook', None)
                debtToEquity = round(info.get('debtToEquity', 0) / 100.0, 2)
                dividend_yield = info.get('dividendYield', None)
                eps_growth = info.get('earningsQuarterlyGrowth', None)
                close = df.iloc[-1]['Close']

                # 生成數據字典
                data = {
                    'date': [current_date],
                    'symbol': [symbol],
                    'pe': [pe],
                    'pb': [pb],
                    'debtToEquity': [debtToEquity],
                    'dividend_yield': [dividend_yield],
                    'eps_growth': [eps_growth],
                    'close': [close]
                }

                df_change = pd.DataFrame(data)  # 將數據字典轉換為數據框
                self.df_all = pd.concat([self.df_all], axis=0)  # 將新的數據框添加到總數據框中
            except Exception as e:
                print(f"Error processing file {file_path}: {e}")
  • 檢查文件是否是Excel或CSV格式且不是臨時文件。
  • 讀取CSV文件并轉換日期格式。
  • 獲取最新的日期和股票符號。
  • 使用??yfinance?? 獲取股票的財務信息。
  • 提取關鍵財務數據:市盈率、價格與賬面比、負債股本比、股息收益率、每股收益增長率和收盤價。
  • 生成包含這些數據的字典,并將其轉換為DataFrame。
  • 將新的DataFrame添加到總的DataFrame中。
  • 如果處理文件時出錯,捕獲異常并打印錯誤信息。

并行處理文件的方法

def run(self):
        with ThreadPoolExecutor(max_workers=4) as executor:  # 使用4個線程并行處理
            executor.map(self.process_file, self.files)
  • 使用??ThreadPoolExecutor?? 并行處理文件。
  • ??max_workers=4?? 指定使用4個線程并行處理文件。
  • ??executor.map(self.process_file, self.files)??? 依次將文件傳遞給??process_file?? 方法進行處理。

將結果存儲到CSV的方法

def store_in_csv(self):
        # 將最終數據存儲到CSV文件中
        folder = f'./data/historical/screener/'
        if not os.path.exists(folder):
            os.makedirs(folder)
        filename = f'{self.index}_{str(datetime.today()}.csv'
        path = os.path.join(folder, filename)
        self.df_all.to_csv(path, index=False)
  • 將最終的數據存儲到CSV文件中。
  • 檢查存儲文件夾是否存在,如果不存在則創建。
  • 生成包含當前日期的文件名。
  • 將DataFrame保存到CSV文件中,不包含索引。

使用Cohere進行AI篩選的方法

def ai_screening(self):
        # 使用Cohere進行AI篩選
        co = Cohere()
        message = f"""你將獲得一些股票的數據。請分析這些數據并篩選出2只被低估且未來有可能產生更高回報的股票。以下是數據 {self.df_all}"""
        preamble = """你是一名優秀的股市分析師,能夠很好地理解提供的數據并做出謹慎的決策。輸出應嚴格采用以下JSON格式:
        [
            {
                "stock": "股票名稱",
                "justification": "篩選或選擇該股票的理由"
            },
            {
                "stock": "股票名稱",
                "justification": "篩選或選擇該股票的理由"
            }
        ]"""
        result = co.chat_cohere(message=message, preamble=preamble)
        print(result)
  • 使用Cohere API進行AI篩選。
  • 創建Cohere對象。
  • 定義要發送給Cohere的消息,包含待分析的股票數據。
  • 定義消息的前言,設置任務和輸出格式的上下文。
  • 調用??chat_cohere?? 方法發送消息并接收結果。
  • 打印篩選結果。

通過以上步驟,我們就可以自動化地完成納斯達克100指數成分股的財務數據分析和智能篩選,幫助識別被低估且具有潛在高回報的股票。未來,可以進一步優化和擴展該項目,包括:

增加更多財務指標,動態調整和增加篩選財務指標。集成更多數據源,豐富數據維度,提高分析深度。模型優化與更新,比如選用BloomberGPT之類的一些金融行業的大模型,確保分析結果的前沿性和準確性。開發用戶友好的界面,提供可視化報告和實時篩選結果展示。


本文轉載自公眾號AIGC開發者,作者:阿橙AIGC

原文鏈接:??https://mp.weixin.qq.com/s/r121cSoE8zz1yBpiBn9zxQ??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 在线小视频 | 亚洲狠狠爱一区二区三区 | 亚洲精品视频免费 | 一区二区在线不卡 | 色噜噜狠狠色综合中国 | 少妇一级淫片aaaaaaaaa | 国产一区久久 | 超碰在线免费公开 | 国产精品日韩在线 | 日本黄色免费视频 | 国产高清视频 | 久久亚洲国产精品 | 久久精品国产免费 | 一级黄色录像片子 | 91精品国产一区二区三区 | 欧美成人精品激情在线观看 | 国产精品视屏 | 成在线人视频免费视频 | 中文字幕精品一区 | 日韩免费网站 | 欧美在线精品一区 | 国产精品色 | 国内久久| 欧美日韩不卡合集视频 | 国产精品一区二区三区在线 | 欧美精品一区二区三区在线 | 国产做a爱片久久毛片 | 国产精品成人一区二区三区 | 一区二区久久 | 自拍偷拍中文字幕 | 美女人人操 | 91精品国产乱码久久久久久久 | 在线视频日韩 | 国产伦一区二区三区久久 | 91av在线免费看 | 久久在线 | 9久9久 | 亚洲一区二区视频在线播放 | 日韩精品在线网站 | 中文字幕视频在线看 | 最新中文字幕在线 |