最近AI Agent非常的熱門, 尤其是Copilot Agent, 讓AI幫忙寫UT或Script真的超方便, 這邊就想說能不能用AI Agent也幫忙做一些投資工具, 之前也有整open ai api做了這兩個小project:
* [網站開發] 新增GPT投資助手美股公司分析頁面 (Norn-StockScreener投資網站開發)
* [網站開發] 新增GPT投資助手美股選擇權估值分析頁面 (Norn-StockScreener投資網站開發)
不過上面做的就是把我爬蟲的資料餵給GPT幫忙生分析報告, 這次想做的不只是產生分析報告, 而是有沒有辦法更進一步用AI Agent幫忙自動做更進一步的研究及優化, 減少更多手動人力的參與。
目前第一個想到能做的, 就是資產配置的再平衡, 以及除了再平衡後怎麼再更進一步找出更好的資產配置, 想到的步驟如下:
1. 從劵商下載自己的portfolio data
2. 跑一些formula / rule base的資產配置優化演算法
3. 透過AI model根據原始的portfolio data以及(2) 計算後的基本分析報告, 以及AI model本身的knowledge, 產生完整的資產配置建議報告
4. 可以基於目前的資產配置建議報告, 再度調整portfolio data, 繼續跑(2)~(3), 迭代比較找出更佳的資產配置建議報告 (手動或AI Agent自動運行)
目前先寫出一版的程式如下:
https://github.com/zmcx16/investment-think-tank/blob/master/portfolio_analysis/README.md
要用這個Tool首先得先準備自己的portfolio data, 我自己美股劵商是用IB盈透, portfolio data可以透過Performance & Report的Flex Queries手動下載取得, 或是生成一個token打API直接下載:
https://github.com/zmcx16/investment-think-tank/blob/master/portfolio_analysis/data/interactivebrokers/download_flex_query_reports.py
之後把下載的xml檔案轉成JSON檔, AI model處理XML檔案很容易壞檔, 轉成JSON或CSV對AI model之後要處理出錯的機率會比較低。
https://github.com/zmcx16/investment-think-tank/blob/master/portfolio_analysis/data/interactivebrokers/convert_flex_query_reports.py
之後就可以執行main.py開始跑資產配置分析, 程式會下載portfolio內的個股歷史資料, 並根據過去歷史資料跑蒙地卡羅模擬, 計算最佳的資產配置比例。 程式跑完會產生最佳的個股權重:
跑完後程式會呼叫Gemini CLI, 讓Gemini根據原始的portfolio data以及上面的蒙地卡羅模擬後的資料, 產生全面性的資產配置報告:
"麻煩根據剛剛portfolio_analysis main.py執行後產生的portfolio_data.json以及base_report data, 提供資產配置分析報告並輸出至summary_report.md"
之後再輸入下一個Command:
"將現金部位全數投入QQQ並update portfolio_data.json, 運行portfolio_analysis main.py並重新評估投資組合是否優於之前的資產配置並輸出至summary_report.md"
執行結果:
可以看到加入QQQ之後, 預期年化報酬增加從13.50%增加至16.80%, 且夏普比率從 0.456 提升至 0.582, 不過基於QQQ在投資組合的占比過高, 所以AI的分析報告還是建議減少QQQ的資產占比, 降低過度集中的風險。 算是同時基於公式的計算以及普遍知識上的建議提供全面性分析報告。 之後也可以繼續透過下Command給AI Agent的方式繼續優化資產配置。
這次side project大概就先做到這, 再來還有不少課題, 像是透過Interactive mode跑Gemini CLI感覺很不穩定, 可能是我沒有做data clean的關係所以portfolio data有一堆沒用的data造成, 另外如何讓Non-Interactive mode有能力自動做更多task自動迭代優化分析報告也得研究一下, 這些就放到backlog有空再慢慢做吧...。
沒有留言:
張貼留言