This commit is contained in:
MarkLo 2025-12-15 03:48:13 +08:00
parent 3568ff5b33
commit b47e79f44a
1 changed files with 393 additions and 332 deletions

View File

@ -17,7 +17,7 @@ export default function HomePage() {
{/* Hero Section */} {/* Hero Section */}
<div className="text-center mb-16 animate-fade-in relative py-8"> <div className="text-center mb-16 animate-fade-in relative py-8">
<div className="absolute inset-0 gradient-bg-radial -z-10" /> <div className="absolute inset-0 gradient-bg-radial -z-10" />
<h1 className="text-5xl md:text-6xl font-bold mb-6 gradient-text-primary leading-tight"> <h1 className="text-4xl sm:text-5xl md:text-6xl font-bold mb-6 gradient-text-primary leading-tight">
TradingAgentsX TradingAgentsX
</h1> </h1>
<p className="text-xl text-gray-600 dark:text-gray-400 mb-8 max-w-2xl mx-auto"> <p className="text-xl text-gray-600 dark:text-gray-400 mb-8 max-w-2xl mx-auto">
@ -92,7 +92,9 @@ export default function HomePage() {
{/* 12 Professional Agents Section */} {/* 12 Professional Agents Section */}
<div className="mb-16"> <div className="mb-16">
<h2 className="text-3xl font-bold text-center mb-4">👥 12 </h2> <h2 className="text-3xl font-bold text-center mb-4">
👥 12
</h2>
<p className="text-center text-gray-600 dark:text-gray-400 mb-8 max-w-3xl mx-auto"> <p className="text-center text-gray-600 dark:text-gray-400 mb-8 max-w-3xl mx-auto">
</p> </p>
@ -107,22 +109,38 @@ export default function HomePage() {
<AgentCard <AgentCard
name="市場分析師" name="市場分析師"
role="技術分析" role="技術分析"
responsibilities={["技術指標分析 (RSI, MACD, 布林通道)", "價格走勢研判", "支撐阻力位識別"]} responsibilities={[
"技術指標分析 (RSI, MACD, 布林通道)",
"價格走勢研判",
"支撐阻力位識別",
]}
/> />
<AgentCard <AgentCard
name="社群媒體分析師" name="社群媒體分析師"
role="情緒評估" role="情緒評估"
responsibilities={["Reddit/Twitter 情緒指標", "熱度趨勢分析", "投資者信心指數"]} responsibilities={[
"Reddit/Twitter 情緒指標",
"熱度趨勢分析",
"投資者信心指數",
]}
/> />
<AgentCard <AgentCard
name="新聞分析師" name="新聞分析師"
role="新聞分析" role="新聞分析"
responsibilities={["最新新聞摘要", "事件影響評估", "市場反應預測"]} responsibilities={[
"最新新聞摘要",
"事件影響評估",
"市場反應預測",
]}
/> />
<AgentCard <AgentCard
name="基本面分析師" name="基本面分析師"
role="財務分析" role="財務分析"
responsibilities={["財報數據解析", "估值指標 (P/E, P/B)", "盈利能力評估"]} responsibilities={[
"財報數據解析",
"估值指標 (P/E, P/B)",
"盈利能力評估",
]}
/> />
</div> </div>
</div> </div>
@ -137,17 +155,29 @@ export default function HomePage() {
<AgentCard <AgentCard
name="看漲研究員" name="看漲研究員"
role="多頭論證" role="多頭論證"
responsibilities={["看漲理由分析", "上漲催化劑識別", "目標價位預測"]} responsibilities={[
"看漲理由分析",
"上漲催化劑識別",
"目標價位預測",
]}
/> />
<AgentCard <AgentCard
name="看跌研究員" name="看跌研究員"
role="空頭論證" role="空頭論證"
responsibilities={["看跌理由分析", "下跌風險警告", "防守策略建議"]} responsibilities={[
"看跌理由分析",
"下跌風險警告",
"防守策略建議",
]}
/> />
<AgentCard <AgentCard
name="研究經理" name="研究經理"
role="綜合研判" role="綜合研判"
responsibilities={["綜合雙方觀點", "研究團隊決策", "投資建議產出"]} responsibilities={[
"綜合雙方觀點",
"研究團隊決策",
"投資建議產出",
]}
/> />
</div> </div>
</div> </div>
@ -162,7 +192,11 @@ export default function HomePage() {
<AgentCard <AgentCard
name="交易員" name="交易員"
role="決策整合" role="決策整合"
responsibilities={["整合所有報告", "制定交易計劃", "執行策略設計"]} responsibilities={[
"整合所有報告",
"制定交易計劃",
"執行策略設計",
]}
/> />
</div> </div>
</div> </div>
@ -177,17 +211,29 @@ export default function HomePage() {
<AgentCard <AgentCard
name="激進分析師" name="激進分析師"
role="高風險高回報" role="高風險高回報"
responsibilities={["激進策略評估", "最大收益潛力", "風險容忍度高"]} responsibilities={[
"激進策略評估",
"最大收益潛力",
"風險容忍度高",
]}
/> />
<AgentCard <AgentCard
name="保守分析師" name="保守分析師"
role="穩健保守" role="穩健保守"
responsibilities={["資本保全優先", "風險嚴格控制", "穩健策略建議"]} responsibilities={[
"資本保全優先",
"風險嚴格控制",
"穩健策略建議",
]}
/> />
<AgentCard <AgentCard
name="中立分析師" name="中立分析師"
role="平衡策略" role="平衡策略"
responsibilities={["風險收益平衡", "中立客觀評估", "折衷方案設計"]} responsibilities={[
"風險收益平衡",
"中立客觀評估",
"折衷方案設計",
]}
/> />
<AgentCard <AgentCard
name="風險經理" name="風險經理"
@ -200,7 +246,9 @@ export default function HomePage() {
{/* Agent Flow Diagram Section */} {/* Agent Flow Diagram Section */}
<div className="mb-16"> <div className="mb-16">
<h2 className="text-3xl font-bold text-center mb-4">🔄 </h2> <h2 className="text-3xl font-bold text-center mb-4">
🔄
</h2>
<p className="text-center text-gray-600 dark:text-gray-400 mb-8 max-w-3xl mx-auto"> <p className="text-center text-gray-600 dark:text-gray-400 mb-8 max-w-3xl mx-auto">
</p> </p>
@ -211,17 +259,27 @@ export default function HomePage() {
<div className="mb-16"> <div className="mb-16">
<h2 className="text-3xl font-bold text-center mb-4">🌍 </h2> <h2 className="text-3xl font-bold text-center mb-4">🌍 </h2>
<p className="text-center text-gray-600 dark:text-gray-400 mb-8 max-w-3xl mx-auto"> <p className="text-center text-gray-600 dark:text-gray-400 mb-8 max-w-3xl mx-auto">
LLM API Key Base URL LLM API Key Base
URL
</p> </p>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<LLMProviderCard <LLMProviderCard
name="OpenAI" name="OpenAI"
models={["GPT-5.1", "GPT-5 Mini/Nano", "GPT-4.1 Mini/Nano", "o4-mini"]} models={[
"GPT-5.1",
"GPT-5 Mini/Nano",
"GPT-4.1 Mini/Nano",
"o4-mini",
]}
icon="🟢" icon="🟢"
/> />
<LLMProviderCard <LLMProviderCard
name="Anthropic" name="Anthropic"
models={["Claude Haiku 4.5", "Claude Sonnet 4.5/4.0", "Claude 3.5 Haiku"]} models={[
"Claude Haiku 4.5",
"Claude Sonnet 4.5/4.0",
"Claude 3.5 Haiku",
]}
icon="🟣" icon="🟣"
/> />
<LLMProviderCard <LLMProviderCard
@ -247,7 +305,8 @@ export default function HomePage() {
</div> </div>
<div className="mt-6 text-center"> <div className="mt-6 text-center">
<p className="text-sm text-gray-600 dark:text-gray-400"> <p className="text-sm text-gray-600 dark:text-gray-400">
| // | BYOK | // |
BYOK
</p> </p>
</div> </div>
</div> </div>
@ -305,7 +364,7 @@ export default function HomePage() {
features={[ features={[
"淺層 (Shallow): 1 輪快速分析", "淺層 (Shallow): 1 輪快速分析",
"中等 (Medium): 2 輪平衡分析", "中等 (Medium): 2 輪平衡分析",
"深層 (Deep): 3+ 輪全面分析" "深層 (Deep): 3+ 輪全面分析",
]} ]}
/> />
<TechnicalCard <TechnicalCard
@ -313,7 +372,7 @@ export default function HomePage() {
features={[ features={[
"ChromaDB 向量資料庫", "ChromaDB 向量資料庫",
"歷史決策持久化", "歷史決策持久化",
"持續學習與改進" "持續學習與改進",
]} ]}
/> />
<TechnicalCard <TechnicalCard
@ -321,7 +380,7 @@ export default function HomePage() {
features={[ features={[
"yfinance: 即時股價數據", "yfinance: 即時股價數據",
"Reddit API: 社群情緒", "Reddit API: 社群情緒",
"Alpha Vantage: 財務資料" "Alpha Vantage: 財務資料",
]} ]}
/> />
<TechnicalCard <TechnicalCard
@ -329,7 +388,7 @@ export default function HomePage() {
features={[ features={[
"RESTful API 架構", "RESTful API 架構",
"異步任務處理", "異步任務處理",
"Swagger 互動文檔" "Swagger 互動文檔",
]} ]}
/> />
</div> </div>
@ -338,7 +397,9 @@ export default function HomePage() {
{/* Call to Action Section */} {/* Call to Action Section */}
<div className="text-center py-16 relative"> <div className="text-center py-16 relative">
<div className="absolute inset-0 gradient-bg-radial opacity-60 -z-10" /> <div className="absolute inset-0 gradient-bg-radial opacity-60 -z-10" />
<h2 className="text-3xl font-bold mb-4 gradient-text-primary"></h2> <h2 className="text-3xl font-bold mb-4 gradient-text-primary">
</h2>
<p className="text-lg text-gray-600 dark:text-gray-400 mb-8 max-w-2xl mx-auto"> <p className="text-lg text-gray-600 dark:text-gray-400 mb-8 max-w-2xl mx-auto">
12 AI 12 AI
</p> </p>
@ -420,11 +481,11 @@ function LLMProviderCard({
}) { }) {
// Map provider names to logo filenames // Map provider names to logo filenames
const logoMap: Record<string, string> = { const logoMap: Record<string, string> = {
"OpenAI": "/logos/openai.svg", OpenAI: "/logos/openai.svg",
"Anthropic": "/logos/claude-color.svg", Anthropic: "/logos/claude-color.svg",
"Google Gemini": "/logos/gemini-color.svg", "Google Gemini": "/logos/gemini-color.svg",
"Grok (xAI)": "/logos/grok.svg", "Grok (xAI)": "/logos/grok.svg",
"DeepSeek": "/logos/deepseek-color.svg", DeepSeek: "/logos/deepseek-color.svg",
"Qwen (Alibaba)": "/logos/qwen-color.svg", "Qwen (Alibaba)": "/logos/qwen-color.svg",
}; };