🚀 金融建模指南
本項目提供了金融建模所需的工具和服務,涵蓋數據獲取、處理、測試等多個方面,幫助開發者更高效地進行金融建模工作。
🚀 快速開始
本項目提供了兩種安裝方式,分別是使用 Docker 和虛擬環境,你可以根據自己的需求選擇合適的方式進行安裝。
📦 安裝指南
使用 Docker
- 拉取鏡像:
docker pull ghcr.io/cdtait/fmp-mcp-server:latest
- 運行容器:
docker run -it --rm \
-p 8000:8000 \
-v "$PWD:/app" \
ghcr.io/cdtait/fmp-mcp-server:latest
- 參數說明:
-it
:保持交互模式並分配終端。
--rm
:容器退出後自動刪除。
-p 8000:8000
:映射端口,使容器內的服務可在主機上訪問。
-v "$PWD:/app"
:將當前目錄掛載到容器的 /app
路徑。
使用虛擬環境
- 克隆倉庫:
git clone https://github.com/cdtait/fmp-mcp-server.git
cd fmp-mcp-server
- 創建並激活虛擬環境(推薦使用 Python 3.8+):
- 安裝依賴項:
pip install -r requirements.txt
- 啟動服務:
python main.py
✨ 主要特性
數據獲取
from fmpsdk import get_stock_data
data = get_stock_data(symbol="AAPL", api_key=api_key)
print(data.head())
from fmpsdk import get_fx_rate
rate = get_fx_rate(cross="EURUSD", api_key=api_key)
print(rate)
數據處理
from utils.data_cleaning import clean_stock_data
cleaned_data = clean_stock_data(data, fillna=True)
📚 詳細文檔
配置指南
環境變量配置
建議在項目根目錄下創建一個 .env
文件,用於存儲敏感信息和自定義設置。例如:
FMP_API_KEY=your_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
PORT=9000
TEST_MODE=true
啟動參數
可以通過命令行參數覆蓋 .env
文件中的默認值:
python main.py --port 8001 --test_mode false
測試與驗證
單元測試
運行單元測試:
pytest tests/unit_tests/ --cov --report=
集成測試
運行集成測試:
pytest tests/integration_tests/ --cov --report=
性能測試
使用 benchmark
庫進行性能測試:
import pytest_benchmark
from fmpsdk import get_stock_data
@pytest.mark.benchmark
def test_get_stock_data(benchmark):
benchmark(get_stock_data, symbol="AAPL", api_key=api_key)
CI/CD 流程
自動化測試
- 單元測試:
pytest tests/unit_tests/ --cov --report=
- 集成測試:
pytest tests/integration_tests/ --cov --report=
- 代碼覆蓋率報告:
coverage run -m pytest tests/ && coverage report
自動化構建與發佈
- 構建 Docker 鏡像:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "main.py"]
- 發佈到 Docker Hub:
docker build -t cdtait/fmp-mcp-server:latest .
docker push cdtait/fmp-mcp-server:latest
貢獻指南
提交代碼
- 創建功能分支:
git checkout -b feature/new-feature
- 提交更改:
git add .
git commit -m "Add new feature"
- 推送到遠程倉庫:
git push origin feature/new-feature
- 創建 Pull Request 到主分支。
容器 registry
Docker Hub 倉庫
docker pull ghcr.io/cdtait/fmp-mcp-server:latest
本地構建與測試
- 構建鏡像:
docker build -t local/fmp-mcp-server .
- 運行容器:
docker run -it --rm -p 8000:8000 local/fmp-mcp-server
開發規範
代碼風格
遵循 PEP 8 編碼規範。
版本控制
使用 semver
進行版本管理:
- 主版本號:重大功能更新或不兼容更改。
- 次版本號:新增功能或改進。
- 修正版本號:修復錯誤或漏洞。
文檔編寫
用戶指南
- 安裝
- 使用步驟
- 配置選項
開發文檔
- 代碼結構
- 接口定義
- 測試用例
疑問與支持
提問題
在 github
倉庫頁面提交 Issues:
https://github.com/cdtait/fmp-mcp-server/issues
聯繫我們
- 郵箱:support@fmp-mcp-server.com
- 社交媒體鏈接
💻 使用示例
基礎用法
示例1:獲取並清洗股票數據
from fmpsdk import get_stock_data
from utils.data_cleaning import clean_stock_data
data = get_stock_data(symbol="AAPL", api_key=api_key)
cleaned_data = clean_stock_data(data, fillna=True)
print(cleaned_data.head())
示例2:計算技術指標
from utils.technical_indicators import calculate_moving_average
sma_50 = calculate_moving_average(close_prices, window=50)
print(sma_50.tail())
高級用法
暫未提供高級用法示例,可根據項目的具體需求進行拓展。
項目結構
fmp-mcp-server/
├── main.py # 主程序入口
├── config/ # 配置文件和環境變量管理
│ └── settings.py
├── data/ # 數據存儲和處理邏輯
│ ├── raw_data/
│ └── processed_data/
├── fmpsdk/ # 第三方庫接口封裝
│ ├── __init__.py
│ └── api.py # API 請求處理
└── tests/ # 測試用例
├── unit_tests/
│ └── test_api.py
└── integration_tests/
└── test_data_cleaning.py