投資組合大擂台 Ver. 2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
5.5 KiB

"""
投資建議相關的Prompt模板
包含
- 基本投資建議模板
- 進階分析模板
- 不同市場環境的模板
"""
from typing import Dict, Any
def get_basic_investment_prompt(strategy_data: Dict[str, Any]) -> str:
"""基本投資建議Prompt"""
return f"""
請基於以下投資策略數據提供專業的投資建議
策略概況
- 年化報酬率{strategy_data.get('annual_ret', 0):.2%}
- 年化波動率{strategy_data.get('vol', 0):.2%}
- 夏普比率{strategy_data.get('annual_sr', 0):.2f}
- 最大回落{strategy_data.get('mdd', 0):.2%}
- 投資目標{strategy_data.get('role', 'N/A')}
投資組合包含{', '.join(strategy_data.get('assets', []))}
請提供
1. 整體表現評估
2. 風險收益分析
3. 改進建議
"""
def get_comprehensive_analysis_prompt(strategy_data: Dict[str, Any]) -> str:
"""全面分析Prompt - 現代化結構"""
return f"""
作為專業投資顧問請對以下投資策略進行全面分析並提供建議
策略基本資訊
- 策略名稱{strategy_data.get('name', 'N/A')}
- 投資目標{strategy_data.get('role', 'N/A')}
- 市場類型{'台灣市場' if strategy_data.get('tw', True) else '美國市場'}
關鍵績效指標
- 年化報酬率{strategy_data.get('annual_ret', 0):.2%}
- 年化波動率{strategy_data.get('vol', 0):.2%}
- 年化夏普比率{strategy_data.get('annual_sr', 0):.2f}
- 最大回落MDD{strategy_data.get('mdd', 0):.2%}
- Alpha值{strategy_data.get('alpha', 0):.4f}
- Beta值{strategy_data.get('beta', 0):.4f}
- VaR (95%){strategy_data.get('var10', 0):.2%}
- R-squared{strategy_data.get('r2', 0):.4f}
投資組合配置
持有資產{', '.join(strategy_data.get('assets', []))}
請使用以下結構提供分析確保格式清晰易讀
## 📊 策略總評
*用2-3句話總結這個策略的核心特點與績效等級直接點出它適合哪一種類型的投資者*
## 📈 關鍵指標深度解析
### 💰 報酬表現
- **年化報酬率**{strategy_data.get('annual_ret', 0):.2%} - *用生動比喻解釋此表現*
- **風險調整報酬**{strategy_data.get('annual_sr', 0):.2f} - *解釋夏普比率的意義*
### ⚠ 風險評估
- **波動率**{strategy_data.get('vol', 0):.2%} - *評估風險水平*
- **最大回落**{strategy_data.get('mdd', 0):.2%} - *解釋最大虧損風險*
## 🎯 策略優劣分析
### 👍 亮點優勢
- [列出至少2個優點例如特定市場環境表現優異風險控制得當等]
### 🤔 潛在風險
- [列出至少2個風險點例如資產過於集中對利率變化敏感等]
## 💡 具體投資建議
### 1. 核心觀點
**建議**[明確指出繼續持有考慮調整尋找替代方案]
### 2. 優化方向
- [提出1-2項具體優化建議例如可考慮納入 OOO 類型資產以分散風險]
### 3. 風險管理
- [提醒投資者應該注意的市場訊號或事件]
## 🔮 未來展望
*提供前瞻性總結並附上簡短的免責聲明*
---
請用繁體中文回答確保報告結構完整語氣專業且易於理解使用適當的emoji和格式化讓內容更生動
"""
def get_risk_focused_prompt(strategy_data: Dict[str, Any]) -> str:
"""風險導向分析Prompt"""
return f"""
請重點分析以下投資策略的風險特性並提供風險管理建議
風險指標
- 年化波動率{strategy_data.get('vol', 0):.2%}
- 最大回落{strategy_data.get('mdd', 0):.2%}
- Beta值{strategy_data.get('beta', 0):.4f}
- VaR (10%){strategy_data.get('var10', 0):.2%}
- 夏普比率{strategy_data.get('annual_sr', 0):.2f}
風險分析要求
1. 評估當前風險水平//
2. 識別主要風險來源
3. 分析風險與報酬的配比
4. 提供風險降低策略
5. 建議風險監控指標
請提供具體可操作的風險管理建議
"""
def get_market_context_prompt(strategy_data: Dict[str, Any], market_condition: str = "normal") -> str:
"""市場環境特定Prompt"""
market_contexts = {
"bull": "目前市場處於牛市環境",
"bear": "目前市場處於熊市環境",
"volatile": "目前市場波動劇烈",
"normal": "目前市場環境正常"
}
context = market_contexts.get(market_condition, market_contexts["normal"])
return f"""
{context}請針對以下投資策略提供相應的投資建議
策略資訊
- 年化報酬率{strategy_data.get('annual_ret', 0):.2%}
- 年化波動率{strategy_data.get('vol', 0):.2%}
- 投資目標{strategy_data.get('role', 'N/A')}
市場適配建議
根據當前市場環境請分析
1. 該策略在當前環境下的適配程度
2. 可能的調整建議
3. 風險控制措施
4. 時機選擇建議
請提供針對當前市場環境的具體操作建議
"""
def build_custom_prompt(strategy_data: Dict[str, Any], analysis_type: str, **kwargs) -> str:
"""自訂Prompt生成器
Args:
strategy_data: 策略資料
analysis_type: 分析類型 ('basic', 'comprehensive', 'risk', 'market')
**kwargs: 額外參數
"""
templates = {
'basic': get_basic_investment_prompt,
'comprehensive': get_comprehensive_analysis_prompt,
'risk': get_risk_focused_prompt,
'market': lambda data: get_market_context_prompt(data, kwargs.get('condition', 'normal'))
}
template_func = templates.get(analysis_type, get_basic_investment_prompt)
return template_func(strategy_data)