diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..09817b6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Report a reproducible QuantBase issue +title: "[Bug]: " +labels: bug +assignees: "" +--- + +## What happened? + + +## Expected behavior + + +## Steps to reproduce + +1. +2. +3. + +## Environment + +- OS: +- Python: +- Node: +- Browser: + +## Verification tried + +- [ ] `./scripts/check.sh` +- [ ] Targeted test: +- [ ] Frontend build: + +## Open-source safety check + +- [ ] I removed API keys, exchange credentials, webhook URLs, production hosts, private databases, logs, screenshots, and account data. +- [ ] This report does not request investment advice or claim guaranteed returns. +- [ ] If real-account behavior is involved, I understand QuantBase is paper/simulation first by default. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..cd43714 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Security-sensitive reports + url: https://github.com/ + about: Use a private maintainer channel or GitHub private vulnerability reporting if available. Do not post secrets in public issues. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..c7120c3 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,20 @@ +## Summary + +- + +## Verification + +- [ ] `./scripts/check.sh` +- [ ] Targeted backend tests: +- [ ] Targeted frontend build or static checks: + +## Open-Source Boundary + +- [ ] This keeps QuantBase paper/simulation first by default. +- [ ] This does not add real API keys, exchange credentials, webhook URLs, production hosts, private databases, logs, screenshots, or account data. +- [ ] This does not describe demo strategies, backtests, AI outputs, or screenshots as investment advice or return promises. +- [ ] Docs were updated when product behavior, API contracts, page workflows, or risk boundaries changed. + +## Notes + +- diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 94d8363..9597c94 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -31,5 +31,8 @@ jobs: - name: Install backend dependencies run: python -m pip install -r backend/requirements.txt + - name: Install backend dev dependencies + run: python -m pip install -r backend/requirements-dev.txt + - name: Run checks run: ./scripts/check.sh diff --git a/.gitignore b/.gitignore index 50f1d0c..b087e7c 100644 --- a/.gitignore +++ b/.gitignore @@ -48,8 +48,14 @@ logs/ # === 数据库 === *.db +*.db-shm +*.db-wal *.sqlite +*.sqlite-shm +*.sqlite-wal *.sqlite3 +*.sqlite3-shm +*.sqlite3-wal # === 保留种子数据 === data/klines/ @@ -58,6 +64,7 @@ data/ai_lab_model_config.json # === 测试 === test-results/ +tests/test_report.txt .pytest_cache/ htmlcov/ .coverage diff --git a/AGENTS.md b/AGENTS.md index da1e169..55c1814 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,7 +10,7 @@ Before substantial work, read: 1. `README.md` 2. `docs/spec.md` -3. `docs/OPEN_SOURCE_SCOPE.md` +3. `docs/open-source-scope.md` 4. the directly relevant page or module documentation ## Operating Rules diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5e41aa8 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,23 @@ +# Code of Conduct + +QuantBase is an open-source research and engineering project for paper/simulation workflows. We want discussion to stay useful, respectful, and grounded in reproducible work. + +## Expected Behavior + +- Be respectful and constructive when discussing bugs, designs, tests, and docs. +- Keep feedback focused on the project and the evidence. +- Share enough context for others to reproduce issues without exposing private data. +- Respect the project boundary: QuantBase is not investment advice, a managed account service, or a copy-trading service. + +## Not Acceptable + +- Harassment, personal attacks, discriminatory language, or threats. +- Posting private credentials, API keys, webhook URLs, account screenshots, production hosts, private logs, or private research records. +- Promising returns, soliciting copy trading, or presenting demo strategies as proven profitable systems. +- Encouraging users to bypass paper/simulation checks, risk controls, or local compliance review. + +## Reporting + +If you see conduct concerns, open a maintainer-visible GitHub discussion or issue with the minimum necessary context. Do not include secrets or private account data in public reports. + +Maintainers may edit, hide, lock, or remove content that violates these expectations. diff --git a/Crypto_Quant_Guide.md b/Crypto_Quant_Guide.md deleted file mode 100644 index aa077d4..0000000 --- a/Crypto_Quant_Guide.md +++ /dev/null @@ -1,1857 +0,0 @@ -# QuantBase - 加密货币量化交易完整指南 - -> 从股票量化到 Crypto 量化:一站式学习与开发手册 -> 版本:1.0 -> 更新日期:2026-01-24 - ---- - -## 目录 - -1. [项目概述](#1-项目概述) -2. [核心差异:股市 vs B圈](#2-核心差异股市-vs-b圈) -3. [B圈核心术语详解](#3-b圈核心术语详解) -4. [交易所选择与账户准备](#4-交易所选择与账户准备) -5. [工具链与数据源](#5-工具链与数据源) -6. [策略开发路径](#6-策略开发路径) -7. [QuantBase 系统架构设计](#7-quantbase-系统架构设计) -8. [数据库设计](#8-数据库设计) -9. [API 接口设计](#9-api-接口设计) -10. [开发计划与里程碑](#10-开发计划与里程碑) -11. [避坑指南与风险控制](#11-避坑指南与风险控制) -12. [附录](#附录) - ---- - -## 1. 项目概述 - -### 1.1 项目背景 - -QuantBase 是一个面向加密货币市场的量化交易工具平台,参考 StockPro(A股量化工具)的设计理念,提供: - -- **实时行情监控**:主流交易对的价格、深度、资金费率 -- **策略开发与回测**:支持 Python 策略编写、历史回测 -- **多交易所支持**:Binance、OKX、Bybit 统一接口 -- **智能盯盘**:异动监控、资金费率套利机会、巨鲸追踪 -- **AI 辅助分析**:利用大模型分析市场情绪、链上数据 - -### 1.2 目标用户 - -- 具有股票量化经验,想进入 Crypto 领域的开发者 -- 希望建立自己量化系统的加密货币交易者 -- 对区块链和金融科技感兴趣的技术人员 - -### 1.3 与 StockPro 的对比 - -| 维度 | StockPro (股票) | QuantBase (Crypto) | -|------|-----------------|-----------------| -| 数据源 | AkShare (东财/同花顺) | CCXT (Binance/OKX/Bybit) | -| 交易时间 | 9:30-15:00 周一至周五 | 7×24 小时全年无休 | -| 数据库 | SQLite (本地缓存) | SQLite + Redis (实时缓存) | -| 核心指标 | 涨停板、连板、封板率 | 资金费率、持仓量、爆仓数据 | -| 策略类型 | 打板、低吸、板块轮动 | 期现套利、网格、趋势跟踪 | - ---- - -## 2. 核心差异:股市 vs B圈 - -### 2.1 交易机制对比 - -| 特性 | 股票市场 (A股/美股) | Crypto 市场 (B圈) | 策略影响 | -|------|---------------------|-------------------|----------| -| **交易时间** | 每天4-6小时,周末休市 | **7×24小时,全年无休** | 策略需全天候运行,服务器运维要求高 | -| **涨跌幅限制** | 10%/20% (A股有限制) | **无限制** | 极端行情可瞬间±50%,风控要求极高 | -| **交易机制** | T+1 (A股) / T+0 (美股) | **T+0** | 高频交易可行,日内反复交易 | -| **最小交易单位** | 100股 (1手) | **0.0001** (可拆分) | 资金门槛极低,10U 也能跑策略 | -| **做空机制** | 融券 (门槛高、成本高) | **合约做空 (便捷)** | 双向交易机会多 | -| **手续费** | 万1-万3 + 印花税 | **Maker 0.02% / Taker 0.05%** | 高频成本可控,Maker 有返佣 | -| **结算周期** | T+1 资金到账 | **实时结算** | 资金利用率极高 | - -### 2.2 衍生品对比 - -| 特性 | 股票期货 (IF/IC) | Crypto 永续合约 | -|------|------------------|-----------------| -| **到期日** | 有交割日 (当月/次月/季) | **无到期日** | -| **锚定机制** | 基差收敛 | **资金费率** | -| **杠杆倍数** | 10-20倍 | **1-125倍** | -| **保证金** | 10%-15% | **0.8%-100%** | -| **强平机制** | 追加保证金 | **自动减仓 (ADL)** | - -### 2.3 数据获取对比 - -``` -股票数据流: -交易所 → Wind/万得 → 券商 → 你的系统 -(延迟大、成本高、限制多) - -Crypto 数据流: -交易所 → API → 你的系统 -(直连、实时、免费) -``` - ---- - -## 3. B圈核心术语详解 - -### 3.1 交易品种 - -#### 现货 (Spot) -- **定义**:币币交易,如 BTC/USDT -- **特点**:持有实际的币,可提现到钱包 -- **适用策略**:长线持有、现货网格、跨所搬砖 - -#### 合约 (Futures) - -| 类型 | 英文 | 特点 | 适用场景 | -|------|------|------|----------| -| **交割合约** | Delivery | 有到期日,到期自动结算 | 对冲、套期保值 | -| **永续合约** | Perpetual | 无到期日,资金费率锚定 | **主流交易品种** | -| **U本位** | USDT-M | 用 USDT 作保证金,盈亏以 USDT 计 | 新手推荐 | -| **币本位** | Coin-M | 用 BTC/ETH 作保证金 | 矿工、囤币党 | - -### 3.2 资金费率 (Funding Rate) - 核心机制 - -#### 什么是资金费率? -永续合约没有到期日,通过资金费率让合约价格锚定现货价格。 - -``` -每8小时结算一次(UTC 0:00, 8:00, 16:00) - -如果 资金费率 > 0(正费率): - → 多头付钱给空头 - → 说明做多的人多,市场偏多 - -如果 资金费率 < 0(负费率): - → 空头付钱给多头 - → 说明做空的人多,市场偏空 -``` - -#### 费率计算示例 -```python -# 假设你持有 1 BTC 的多头仓位 -# BTC 价格 = 50000 USDT -# 资金费率 = 0.01% (正费率) - -仓位价值 = 1 * 50000 = 50000 USDT -费率支出 = 50000 * 0.01% = 5 USDT - -# 如果你是多头,需支付 5 USDT 给空头 -# 如果你是空头,会收到 5 USDT -``` - -#### 费率套利策略 (期现套利) -```python -# 经典套利:买现货 + 空永续 -# 赚取资金费率,几乎无风险 - -# 示例: -buy_spot(symbol="BTC", amount=1) # 买入 1 BTC 现货 -open_short(symbol="BTCUSDT", amount=1) # 做空 1 BTC 永续 - -# 年化收益 = 费率 * 3次/天 * 365天 -# 假设平均费率 0.01% -# 年化 = 0.01% * 3 * 365 = 10.95% -``` - -### 3.3 订单类型 - -| 订单类型 | 说明 | Maker/Taker | -|----------|------|-------------| -| **限价单 (Limit)** | 指定价格挂单,等待成交 | Maker (手续费低) | -| **市价单 (Market)** | 立即以当前价成交 | Taker (手续费高) | -| **止损单 (Stop Loss)** | 价格触发后自动下单 | 取决于触发后订单类型 | -| **止盈单 (Take Profit)** | 达到目标价自动平仓 | 取决于触发后订单类型 | -| **跟踪止损 (Trailing Stop)** | 随价格移动的动态止损 | Taker | -| **冰山单 (Iceberg)** | 大单拆分隐藏 | Maker | -| **时间加权 (TWAP)** | 按时间均匀下单 | 混合 | - -### 3.4 保证金与杠杆 - -#### 全仓 vs 逐仓 - -| 模式 | 英文 | 特点 | 风险 | -|------|------|------|------| -| **全仓** | Cross | 所有仓位共享保证金 | 单个仓位亏损可能连累其他仓位 | -| **逐仓** | Isolated | 每个仓位独立保证金 | 单仓爆仓不影响其他,但资金利用率低 | - -#### 杠杆计算 - -```python -# 开仓保证金 = 仓位价值 / 杠杆倍数 -# 示例:50000 USDT 仓位,20倍杠杆 - -initial_margin = 50000 / 20 = 2500 USDT - -# 强平价格计算(简化版,实际更复杂) -# 逐仓模式下,亏损 = 保证金时强平 -# 20倍杠杆,约 5% 波动即强平 -``` - -### 3.5 关键指标 - -| 指标 | 英文 | 说明 | 监控意义 | -|------|------|------|----------| -| **持仓量** | Open Interest | 未平仓合约总量 | 市场参与度、趋势强度 | -| **多空比** | Long/Short Ratio | 多头/空头账户比例 | 市场情绪、反向指标 | -| **爆仓数据** | Liquidation | 被强平的仓位 | 市场波动程度 | -| **资金流向** | Fund Flow | 大资金进出 | 主力动向 | -| **恐惧贪婪指数** | Fear & Greed Index | 市场情绪综合指标 | 逆向操作参考 | - -### 3.6 稳定币 - -| 稳定币 | 发行方 | 锚定 | 特点 | -|--------|--------|------|------| -| **USDT** | Tether | 美元 | 流动性最好,但透明度争议 | -| **USDC** | Circle | 美元 | 合规性好,机构首选 | -| **BUSD** | Binance | 美元 | 币安生态内使用 | -| **DAI** | MakerDAO | 美元 | 去中心化,链上抵押 | - ---- - -## 4. 交易所选择与账户准备 - -### 4.1 主流交易所对比 - -| 交易所 | 优势 | 劣势 | 适合人群 | API 特点 | -|--------|------|------|----------|----------| -| **Binance 币安** | 流动性最好、深度最大、交易对最多 | 部分地区受限 | 所有人首选 | 文档完善、限频清晰 | -| **OKX 欧易** | Web3 钱包好、统一账户资金利用率高 | 深度略逊币安 | 华人用户、DeFi 玩家 | v5 API 设计现代 | -| **Bybit** | 衍生品强、撮合引擎快 | 现货交易对少 | 合约交易者 | 延迟低 | -| **Bitget** | 跟单功能强 | 流动性一般 | 跟单用户 | - | -| **Gate.io** | 小币种多 | 深度一般 | 山寨币玩家 | - | - -### 4.2 账户注册与安全设置 - -#### 注册流程 -1. 准备:海外邮箱、护照/身份证 -2. 注册:使用邀请链接获得手续费折扣 -3. KYC:完成身份验证(大部分功能需要) -4. 安全设置: - - 开启 Google 2FA - - 设置防钓鱼码 - - 绑定提现白名单 - -#### API Key 安全配置 - -```bash -# API Key 权限设置原则 -✅ 读取权限 (Read) - 获取行情、账户信息 -✅ 交易权限 (Trade) - 下单、撤单 -❌ 提现权限 (Withdraw) - 绝对不要开启! - -# 必须设置 IP 白名单 -# 只允许你的服务器 IP 访问 -``` - -### 4.3 测试环境 (Testnet) - -| 交易所 | 测试网地址 | 说明 | -|--------|------------|------| -| Binance | testnet.binancefuture.com | 模拟资金,API 相同 | -| OKX | www.okx.com (Demo Trading) | 需在 APP 中切换 | -| Bybit | testnet.bybit.com | 完整测试环境 | - -**强烈建议**:所有策略先在测试网跑通,再用小资金实盘验证! - ---- - -## 5. 工具链与数据源 - -### 5.1 核心库:CCXT - -CCXT 是 Crypto 量化的瑞士军刀,封装了 100+ 交易所的 API。 - -#### 安装 -```bash -pip install ccxt -``` - -#### 基础用法 -```python -import ccxt - -# 创建交易所实例(公开接口,无需 API Key) -exchange = ccxt.binance() - -# 获取 BTC/USDT 行情 -ticker = exchange.fetch_ticker('BTC/USDT') -print(f"价格: {ticker['last']}") -print(f"24h成交量: {ticker['baseVolume']}") -print(f"24h涨跌幅: {ticker['percentage']}%") - -# 获取 K 线数据 -ohlcv = exchange.fetch_ohlcv('BTC/USDT', timeframe='1h', limit=100) -# 返回: [[timestamp, open, high, low, close, volume], ...] - -# 获取深度数据 -orderbook = exchange.fetch_order_book('BTC/USDT', limit=20) -print(f"买一: {orderbook['bids'][0]}") # [price, amount] -print(f"卖一: {orderbook['asks'][0]}") -``` - -#### 私有接口(需要 API Key) -```python -import ccxt - -exchange = ccxt.binance({ - 'apiKey': 'YOUR_API_KEY', - 'secret': 'YOUR_SECRET', - 'options': { - 'defaultType': 'future' # 永续合约 - } -}) - -# 获取账户余额 -balance = exchange.fetch_balance() -print(f"USDT 余额: {balance['USDT']['free']}") - -# 下单 -order = exchange.create_order( - symbol='BTC/USDT', - type='limit', - side='buy', - amount=0.001, - price=40000 -) - -# 获取持仓 -positions = exchange.fetch_positions(['BTC/USDT']) -``` - -### 5.2 数据源汇总 - -| 数据类型 | 免费数据源 | 付费数据源 | 说明 | -|----------|------------|------------|------| -| **实时行情** | CCXT + 交易所 API | - | 足够用 | -| **历史 K 线** | CCXT / Binance Public Data | Tardis.dev | 币安历史数据免费下载 | -| **Tick 数据** | 交易所 WebSocket | Tardis.dev, Kaiko | 高频策略需要 | -| **深度快照** | 交易所 WebSocket | Tardis.dev | 做市策略需要 | -| **链上数据** | Dune Analytics, Glassnode Free | Glassnode Pro, Nansen | 巨鲸追踪、DeFi 分析 | -| **情绪数据** | Fear & Greed Index | Santiment | 市场情绪 | -| **资金费率** | 交易所 API | Coinglass | 套利机会 | - -### 5.3 Binance Public Data - -币安官方提供的历史数据下载中心,包含: -- 所有交易对的 K 线数据(1m 到 1M) -- 逐笔成交数据(Trades) -- 聚合交易数据(AggTrades) -- 深度快照 - -```bash -# 下载示例 -# https://data.binance.vision/ -# 目录结构: /data/spot/daily/klines/BTCUSDT/1h/ - -wget https://data.binance.vision/data/spot/daily/klines/BTCUSDT/1h/BTCUSDT-1h-2025-01-01.zip -``` - -### 5.4 实时数据 WebSocket - -```python -import ccxt.pro as ccxtpro -import asyncio - -async def watch_ticker(): - exchange = ccxtpro.binance() - while True: - ticker = await exchange.watch_ticker('BTC/USDT') - print(f"{ticker['datetime']} | Price: {ticker['last']}") - -asyncio.run(watch_ticker()) -``` - -### 5.5 量化框架对比 - -| 框架 | 语言 | 特点 | 适用场景 | -|------|------|------|----------| -| **CCXT** | Python/JS/PHP | 交易所 API 封装 | 所有场景 | -| **VeighNa (vn.py)** | Python | 国产老牌、事件驱动 | CTA、套利 | -| **Hummingbot** | Python | 做市机器人 | 高频做市 | -| **Freqtrade** | Python | 开源、社区活跃 | 入门回测 | -| **Backtrader** | Python | 通用回测框架 | 策略回测 | -| **FMZ (发明者)** | Python/JS | 网页版、托管运行 | 快速验证 | -| **QuantConnect** | Python/C# | 云端回测 | 专业回测 | - ---- - -## 6. 策略开发路径 - -### 6.1 第一阶段:无风险/低风险套利 (入门推荐) - -#### 6.1.1 资金费率套利 (Funding Rate Arbitrage) - -**原理**: -- 买入 1 BTC 现货 + 做空 1 BTC 永续合约 -- Delta 中性,价格涨跌对你没影响 -- 赚取资金费率(正费率时) - -**代码框架**: -```python -class FundingArbitrage: - """资金费率套利策略""" - - def __init__(self, exchange, symbol='BTC/USDT'): - self.exchange = exchange - self.symbol = symbol - self.position_size = 0 - - def get_funding_rate(self): - """获取当前资金费率""" - funding = self.exchange.fetch_funding_rate(self.symbol) - return funding['fundingRate'] - - def open_arbitrage(self, size): - """开仓套利""" - # 1. 买入现货 - self.exchange.create_market_buy_order( - self.symbol, size, params={'type': 'spot'} - ) - - # 2. 做空永续 - self.exchange.create_market_sell_order( - self.symbol, size, params={'type': 'future'} - ) - - self.position_size = size - - def close_arbitrage(self): - """平仓""" - if self.position_size > 0: - # 卖出现货 - self.exchange.create_market_sell_order( - self.symbol, self.position_size, params={'type': 'spot'} - ) - # 平空永续 - self.exchange.create_market_buy_order( - self.symbol, self.position_size, params={'type': 'future'} - ) - self.position_size = 0 - - def run(self): - """运行策略""" - funding_rate = self.get_funding_rate() - - # 费率 > 0.01% 时开仓 - if funding_rate > 0.0001 and self.position_size == 0: - self.open_arbitrage(size=0.01) - - # 费率转负时平仓 - elif funding_rate < 0 and self.position_size > 0: - self.close_arbitrage() -``` - -**收益预期**: -- 年化 10%-30%(牛市费率高时更多) -- 几乎无风险(需注意交易所风险) - -#### 6.1.2 跨交易所搬砖 (Cross-Exchange Arbitrage) - -**原理**: -- A 交易所 BTC = 50000 USDT -- B 交易所 BTC = 50050 USDT -- 在 A 买入,在 B 卖出,赚取 50 USDT 价差 - -**现状**: -- 大币种价差很小(0.01%-0.05%) -- 需要极快的执行速度 -- 需要两边都有资金 - -### 6.2 第二阶段:CTA 趋势策略 (中等风险) - -#### 6.2.1 双均线策略 - -```python -import pandas as pd - -class DualMA: - """双均线策略""" - - def __init__(self, fast_period=5, slow_period=20): - self.fast_period = fast_period - self.slow_period = slow_period - - def generate_signal(self, df: pd.DataFrame) -> str: - """ - 生成交易信号 - df 需要包含 'close' 列 - """ - df['ma_fast'] = df['close'].rolling(self.fast_period).mean() - df['ma_slow'] = df['close'].rolling(self.slow_period).mean() - - # 金叉做多 - if df['ma_fast'].iloc[-1] > df['ma_slow'].iloc[-1] and \ - df['ma_fast'].iloc[-2] <= df['ma_slow'].iloc[-2]: - return 'BUY' - - # 死叉做空 - if df['ma_fast'].iloc[-1] < df['ma_slow'].iloc[-1] and \ - df['ma_fast'].iloc[-2] >= df['ma_slow'].iloc[-2]: - return 'SELL' - - return 'HOLD' -``` - -#### 6.2.2 网格交易 (Grid Trading) - -**原理**:在价格区间内设置多个买卖点,跌买涨卖 - -```python -class GridTrading: - """网格交易策略""" - - def __init__(self, price_low, price_high, grid_num=10, total_amount=1000): - self.price_low = price_low - self.price_high = price_high - self.grid_num = grid_num - self.total_amount = total_amount - - # 计算网格 - self.grid_prices = self._calculate_grids() - self.order_amount = total_amount / grid_num - self.orders = {} # 记录订单 - - def _calculate_grids(self): - """计算网格价格""" - step = (self.price_high - self.price_low) / self.grid_num - return [self.price_low + i * step for i in range(self.grid_num + 1)] - - def place_orders(self, exchange, symbol): - """挂网格订单""" - current_price = exchange.fetch_ticker(symbol)['last'] - - for price in self.grid_prices: - if price < current_price: - # 低于当前价的挂买单 - order = exchange.create_limit_buy_order( - symbol, self.order_amount / price, price - ) - else: - # 高于当前价的挂卖单 - order = exchange.create_limit_sell_order( - symbol, self.order_amount / price, price - ) - self.orders[price] = order -``` - -### 6.3 第三阶段:高频与做市 (高难度) - -#### 做市策略 (Market Making) - -**原理**: -- 在买一和卖一之间挂单 -- 赚取 Bid-Ask Spread + 交易所 Maker 返佣 - -**要求**: -- 延迟 < 10ms(服务器部署在交易所同机房) -- 高性能代码(C++/Rust) -- 风控极其严格 - ---- - -## 7. QuantBase 系统架构设计 - -### 7.1 整体架构图 - -``` -┌─────────────────────────────────────────────────────────────────────────────┐ -│ 用户浏览器 / Electron │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ React 前端应用 (Vite + TypeScript) │ │ -│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │ -│ │ │ Home │ │ Market │ │Strategy │ │Backtest │ │ Monitor │ │ │ -│ │ │ 首页看板│ │ 行情页 │ │ 策略开发│ │ 回测 │ │ 盯盘监控 │ │ │ -│ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └──────┬──────┘ │ │ -│ └───────┼───────────┼───────────┼───────────┼───────────────┼──────────┘ │ -│ │ │ │ │ │ │ -└──────────┼───────────┼───────────┼───────────┼───────────────┼─────────────┘ - │ │ │ │ │ - ▼ ▼ ▼ ▼ ▼ -┌─────────────────────────────────────────────────────────────────────────────┐ -│ FastAPI 后端服务 (Python 3.11) │ -│ ┌──────────────────────────────────────────────────────────────────────┐ │ -│ │ API 路由层 (/api/v1) │ │ -│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │ -│ │ │market │ │trading │ │strategy│ │backtest│ │monitor │ │ ai │ │ │ -│ │ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ │ -│ └──────┼──────────┼──────────┼──────────┼──────────┼──────────┼────────┘ │ -│ │ │ │ │ │ │ │ -│ ┌──────▼──────────▼──────────▼──────────▼──────────▼──────────▼────────┐ │ -│ │ 业务服务层 (Services) │ │ -│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ -│ │ │MarketService│ │TradingServic│ │StrategyServ │ │ BacktestService │ │ │ -│ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └────────┬────────┘ │ │ -│ │ ┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐ ┌────────┴────────┐ │ │ -│ │ │MonitorServic│ │FundingServic│ │DataSyncServi│ │ AIService │ │ │ -│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────────┘ │ │ -│ └──────────────────────────────────────────────────────────────────────┘ │ -│ │ │ │ │ -└─────────┼────────────────────┼────────────────────┼─────────────────────────┘ - │ │ │ - ▼ ▼ ▼ -┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────────────┐ -│ SQLite 数据库 │ │ Redis 缓存 │ │ 外部数据源 │ -│ (历史数据) │ │ (实时数据) │ │ ┌─────────────────────────────┐ │ -└─────────────────┘ └─────────────────┘ │ │ CCXT (Binance/OKX/Bybit) │ │ - │ │ Coinglass (费率/持仓) │ │ - │ │ Dune (链上数据) │ │ - │ │ 千问大模型 (AI分析) │ │ - │ └─────────────────────────────┘ │ - └─────────────────────────────────┘ -``` - -### 7.2 技术栈 - -#### 后端技术 - -| 技术 | 版本 | 用途 | -|------|------|------| -| Python | 3.11+ | 运行时 | -| FastAPI | 0.104+ | Web 框架 | -| CCXT | latest | 交易所 API | -| SQLite | 3.x | 本地历史数据 | -| Redis | 7.x | 实时数据缓存 | -| APScheduler | 3.x | 定时任务 | -| Pandas | 2.x | 数据处理 | -| NumPy | 1.x | 数值计算 | - -#### 前端技术 - -| 技术 | 版本 | 用途 | -|------|------|------| -| React | 18.x | UI 框架 | -| TypeScript | 5.x | 类型安全 | -| Vite | 5.x | 构建工具 | -| Tailwind CSS | 3.x | 样式框架 | -| Zustand | 4.x | 状态管理 | -| Apache ECharts | 5.x | 图表 (K线、深度图) | -| TradingView | - | 专业图表 (可选) | - -### 7.3 目录结构 - -``` -QuantBase/ -├── backend/ # 后端服务 -│ ├── app/ -│ │ ├── api/endpoints/ # API 端点 -│ │ │ ├── market.py # 行情数据 API -│ │ │ ├── trading.py # 交易相关 API -│ │ │ ├── strategy.py # 策略管理 API -│ │ │ ├── backtest.py # 回测 API -│ │ │ ├── monitor.py # 监控告警 API -│ │ │ └── ai.py # AI 分析 API -│ │ ├── services/ # 业务服务 -│ │ │ ├── market_service.py # 行情服务 -│ │ │ ├── trading_service.py # 交易服务 -│ │ │ ├── strategy_service.py # 策略服务 -│ │ │ ├── backtest_service.py # 回测服务 -│ │ │ ├── monitor_service.py # 监控服务 -│ │ │ ├── funding_service.py # 资金费率服务 -│ │ │ ├── data_sync_service.py # 数据同步服务 -│ │ │ └── ai_service.py # AI 服务 -│ │ ├── db/ -│ │ │ └── local_db.py # 本地数据库 -│ │ ├── exchange/ -│ │ │ ├── base.py # 交易所基类 -│ │ │ ├── binance.py # Binance 封装 -│ │ │ ├── okx.py # OKX 封装 -│ │ │ └── bybit.py # Bybit 封装 -│ │ ├── strategies/ # 策略模板 -│ │ │ ├── contract_common.py -│ │ │ ├── cta_trend_following_strategy.py -│ │ │ ├── grid_trading_strategy.py -│ │ │ └── okx_funding_arbitrage_strategy.py -│ │ ├── core/ -│ │ │ └── config.py # 配置管理 -│ │ ├── models/ -│ │ │ └── schemas.py # Pydantic 模型 -│ │ └── main.py # 应用入口 -│ └── requirements.txt -│ -├── frontend/ # 前端应用 -│ ├── src/ -│ │ ├── pages/ # 页面组件 -│ │ │ ├── Home.tsx # 首页看板 -│ │ │ ├── Market.tsx # 行情页面 -│ │ │ ├── Strategy.tsx # 策略开发 -│ │ │ ├── Backtest.tsx # 回测页面 -│ │ │ └── Monitor.tsx # 监控页面 -│ │ ├── components/ # 通用组件 -│ │ │ ├── KlineChart.tsx # K线图 -│ │ │ ├── DepthChart.tsx # 深度图 -│ │ │ ├── OrderBook.tsx # 订单簿 -│ │ │ ├── FundingRate.tsx # 资金费率 -│ │ │ └── ... -│ │ ├── api/ # API 客户端 -│ │ ├── stores/ # 状态管理 -│ │ └── types/ # 类型定义 -│ └── package.json -│ -├── docs/ # 文档 -│ ├── api.md # API 文档 -│ ├── strategy_guide.md # 策略开发指南 -│ └── deployment.md # 部署文档 -│ -├── scripts/ # 脚本工具 -│ ├── download_history.py # 下载历史数据 -│ ├── init_db.py # 初始化数据库 -│ └── sync_funding.py # 同步资金费率 -│ -├── strategies/ # 用户策略目录 -│ └── my_strategy.py # 用户自定义策略 -│ -├── data/ # 数据目录 -│ ├── klines/ # K线数据 -│ └── trades/ # 成交数据 -│ -├── Crypto_Quant_Guide.md # 本文档 -└── README.md -``` - -### 7.4 页面功能设计 - -#### 首页看板 (Home) - -``` -┌─────────────────────────────────────────────────────────────────────────────┐ -│ QuantBase - 首页看板 │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ BTC: $50,123 +2.5% | ETH: $3,456 +3.2% | BTC.D: 52.3% | 恐惧贪婪: 65 │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │ -│ │ 资金费率套利机会 │ │ 24H 爆仓数据 │ │ -│ │ ┌─────────────────────┐ │ │ │ │ -│ │ │ Symbol | Rate │ │ │ 多头爆仓: $125M │ │ -│ │ │ BTC | 0.015% │ │ │ 空头爆仓: $89M │ │ -│ │ │ ETH | 0.012% │ │ │ 最大单笔: $5.2M (BTC) │ │ -│ │ │ SOL | 0.025% │ │ │ │ │ -│ │ └─────────────────────┘ │ └─────────────────────────────┘ │ -│ └─────────────────────────────┘ │ -│ │ -│ ┌─────────────────────────────────────────────────────────────────────┐ │ -│ │ BTC/USDT K线图 │ │ -│ │ ┌───────────────────────────────────────────────────────────────┐ │ │ -│ │ │ │ │ │ -│ │ │ [TradingView Chart] │ │ │ -│ │ │ │ │ │ -│ │ └───────────────────────────────────────────────────────────────┘ │ │ -│ └─────────────────────────────────────────────────────────────────────┘ │ -│ │ -│ ┌─────────────────────────────┐ ┌─────────────────────────────────────┐ │ -│ │ 持仓量变化 │ │ 多空比 │ │ -│ │ [Open Interest Chart] │ │ [Long/Short Ratio Chart] │ │ -│ └─────────────────────────────┘ └─────────────────────────────────────┘ │ -│ │ -└─────────────────────────────────────────────────────────────────────────────┘ -``` - -#### 行情页面 (Market) - -``` -┌─────────────────────────────────────────────────────────────────────────────┐ -│ 搜索: [BTC/USDT ▼] 交易所: [Binance ▼] 类型: [永续合约 ▼] │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ K线图 + 技术指标 │ │ -│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ -│ │ │ │ │ │ -│ │ │ [TradingView/ECharts] │ │ │ -│ │ │ │ │ │ -│ │ └─────────────────────────────────────────────────────────────────┘ │ │ -│ │ 指标: [MA] [MACD] [RSI] [BOLL] [Volume] │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -├───────────────────────────────────┬─────────────────────────────────────────┤ -│ 订单簿 (Order Book) │ 成交记录 │ -│ ┌─────────────────────────────┐ │ ┌─────────────────────────────────────┐ │ -│ │ Price | Amount | Total │ │ │ Time | Price | Amount | Side │ │ -│ │ 50,125 | 1.23 | ... │ │ │ 12:01 | 50120 | 0.5 | Buy │ │ -│ │ 50,120 | 2.56 | ... │ │ │ 12:01 | 50118 | 0.3 | Sell │ │ -│ │ ────────────────────────── │ │ │ ... │ │ -│ │ 50,115 | 3.45 | ... │ │ └─────────────────────────────────────┘ │ -│ │ 50,110 | 1.89 | ... │ │ │ -│ └─────────────────────────────┘ │ 深度图 (Depth Chart) │ -│ │ ┌─────────────────────────────────────┐ │ -│ │ │ [Bid/Ask Depth Chart] │ │ -│ │ └─────────────────────────────────────┘ │ -└───────────────────────────────────┴─────────────────────────────────────────┘ -``` - -#### 策略开发页面 (Strategy) - -``` -┌─────────────────────────────────────────────────────────────────────────────┐ -│ 策略列表 [+ 新建策略] │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ 📁 我的策略 │ │ -│ │ ├── 资金费率套利 (运行中 🟢) │ │ -│ │ ├── BTC网格交易 (已停止 🔴) │ │ -│ │ └── 双均线策略 (回测中 🟡) │ │ -│ │ │ │ -│ │ 📁 策略模板 │ │ -│ │ ├── okx_funding_arbitrage_strategy.py │ │ -│ │ ├── grid_trading_strategy.py │ │ -│ │ └── cta_trend_following_strategy.py │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ 策略编辑器 │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ # 资金费率套利策略 │ │ -│ │ class FundingArbitrage(BaseStrategy): │ │ -│ │ def __init__(self, config): │ │ -│ │ self.min_rate = config.get('min_rate', 0.0001) │ │ -│ │ self.position_size = config.get('size', 0.01) │ │ -│ │ │ │ -│ │ def on_funding_rate(self, rate): │ │ -│ │ if rate > self.min_rate: │ │ -│ │ self.open_arbitrage() │ │ -│ │ ... │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -│ [保存] [运行] [回测] [停止] │ -└─────────────────────────────────────────────────────────────────────────────┘ -``` - -#### 回测页面 (Backtest) - -``` -┌─────────────────────────────────────────────────────────────────────────────┐ -│ 回测配置 │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ 策略: [双均线策略 ▼] 交易对: [BTC/USDT ▼] 交易所: [Binance ▼] │ -│ 开始日期: [2025-01-01] 结束日期: [2025-12-31] 初始资金: [10000 USDT] │ -│ 手续费: [0.04%] 滑点: [0.01%] [开始回测] │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ 回测结果 │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ 总收益: +32.5% | 年化: +35.2% | 最大回撤: -12.3% | 夏普: 1.85 │ │ -│ │ 交易次数: 156 | 胜率: 58.3% | 盈亏比: 1.42 │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ 净值曲线 │ │ -│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ -│ │ │ [Equity Curve Chart] │ │ │ -│ │ └─────────────────────────────────────────────────────────────────┘ │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ 交易记录 │ │ -│ │ Time | Side | Price | Amount | PnL | 累计收益 │ │ -│ │ 01-15 10:00| Buy | 45000 | 0.1 | - | - │ │ -│ │ 01-20 14:30| Sell | 46500 | 0.1 | +150 | +150 │ │ -│ │ ... │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -└─────────────────────────────────────────────────────────────────────────────┘ -``` - -#### 监控盯盘页面 (Monitor) - -``` -┌─────────────────────────────────────────────────────────────────────────────┐ -│ 监控面板 [+ 添加监控] │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ ┌────────────────────────────────────┬────────────────────────────────────┐│ -│ │ 运行中的策略 │ 账户概览 ││ -│ │ ┌────────────────────────────────┐ │ 总资产: $25,680.50 ││ -│ │ │ 🟢 资金费率套利 │ │ 可用: $15,230.20 ││ -│ │ │ 收益: +$230.50 (+0.92%) │ │ 持仓: $10,450.30 ││ -│ │ │ 持仓: BTC +1 / -1 │ │ ││ -│ │ │ 运行时间: 3天 12小时 │ │ 今日 PnL: +$156.80 (+0.61%) ││ -│ │ └────────────────────────────────┘ │ ││ -│ │ ┌────────────────────────────────┐ │ ││ -│ │ │ 🟢 BTC 网格交易 │ │ ││ -│ │ │ 收益: +$89.20 (+0.35%) │ │ ││ -│ │ │ 成交: 23笔 │ │ ││ -│ │ └────────────────────────────────┘ │ ││ -│ └────────────────────────────────────┴────────────────────────────────────┘│ -├─────────────────────────────────────────────────────────────────────────────┤ -│ 告警设置 │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ ⚠️ 价格告警: BTC > $55,000 或 < $45,000 │ │ -│ │ ⚠️ 资金费率告警: BTC 费率 > 0.03% │ │ -│ │ ⚠️ 持仓告警: 单仓位亏损 > 5% │ │ -│ │ ⚠️ 爆仓预警: 保证金率 < 50% │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -├─────────────────────────────────────────────────────────────────────────────┤ -│ 实时日志 │ -│ ┌───────────────────────────────────────────────────────────────────────┐ │ -│ │ [12:30:05] ✅ 资金费率结算: BTC 收取 +$15.50 │ │ -│ │ [12:28:33] 📊 网格成交: BTC 买入 0.01 @ $50,100 │ │ -│ │ [12:25:10] ⚠️ 告警触发: BTC 资金费率达到 0.025% │ │ -│ │ [12:20:00] 📈 行情更新: BTC $50,150 (+1.2%) │ │ -│ └───────────────────────────────────────────────────────────────────────┘ │ -└─────────────────────────────────────────────────────────────────────────────┘ -``` - ---- - -## 8. 数据库设计 - -### 8.1 数据库概览 - -**数据库类型**:SQLite (本地) + Redis (实时缓存) - -**文件位置**: -- macOS: `~/Library/Application Support/QuantBase/crypto_data.db` -- Windows: `~/AppData/Roaming/QuantBase/crypto_data.db` -- Linux: `~/.local/share/QuantBase/crypto_data.db` - -### 8.2 表结构详解 - -#### 8.2.1 kline_history - K线历史数据表 - -```sql -CREATE TABLE IF NOT EXISTS kline_history ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL, -- 交易所 (binance/okx/bybit) - symbol TEXT NOT NULL, -- 交易对 (BTC/USDT) - timeframe TEXT NOT NULL, -- 周期 (1m/5m/15m/1h/4h/1d) - timestamp INTEGER NOT NULL, -- Unix 时间戳 (毫秒) - open REAL NOT NULL, -- 开盘价 - high REAL NOT NULL, -- 最高价 - low REAL NOT NULL, -- 最低价 - close REAL NOT NULL, -- 收盘价 - volume REAL NOT NULL, -- 成交量 (Base) - quote_volume REAL, -- 成交额 (Quote) - trades_count INTEGER, -- 成交笔数 - UNIQUE(exchange, symbol, timeframe, timestamp) -); - --- 索引 -CREATE INDEX idx_kline_symbol_time ON kline_history(exchange, symbol, timeframe, timestamp); -``` - -#### 8.2.2 funding_rate_history - 资金费率历史表 - -```sql -CREATE TABLE IF NOT EXISTS funding_rate_history ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL, -- 交易所 - symbol TEXT NOT NULL, -- 交易对 (BTCUSDT) - timestamp INTEGER NOT NULL, -- 结算时间 - funding_rate REAL NOT NULL, -- 资金费率 - mark_price REAL, -- 标记价格 - UNIQUE(exchange, symbol, timestamp) -); - -CREATE INDEX idx_funding_symbol_time ON funding_rate_history(exchange, symbol, timestamp); -``` - -#### 8.2.3 funding_rate_realtime - 资金费率实时表 - -```sql -CREATE TABLE IF NOT EXISTS funding_rate_realtime ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL, - symbol TEXT NOT NULL UNIQUE, - current_rate REAL, -- 当前费率 - predicted_rate REAL, -- 预测费率 - next_funding_time INTEGER, -- 下次结算时间 - mark_price REAL, - index_price REAL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); -``` - -#### 8.2.4 open_interest_history - 持仓量历史表 - -```sql -CREATE TABLE IF NOT EXISTS open_interest_history ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL, - symbol TEXT NOT NULL, - timestamp INTEGER NOT NULL, - open_interest REAL NOT NULL, -- 持仓量 (张/币) - open_interest_value REAL, -- 持仓价值 (USDT) - UNIQUE(exchange, symbol, timestamp) -); -``` - -#### 8.2.5 liquidation_history - 爆仓历史表 - -```sql -CREATE TABLE IF NOT EXISTS liquidation_history ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL, - symbol TEXT NOT NULL, - timestamp INTEGER NOT NULL, - side TEXT NOT NULL, -- LONG/SHORT - price REAL NOT NULL, - quantity REAL NOT NULL, - value REAL NOT NULL -- 爆仓价值 (USDT) -); - -CREATE INDEX idx_liq_time ON liquidation_history(timestamp); -``` - -#### 8.2.6 trades_history - 成交历史表 - -```sql -CREATE TABLE IF NOT EXISTS trades_history ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL, - symbol TEXT NOT NULL, - trade_id TEXT NOT NULL, - timestamp INTEGER NOT NULL, - side TEXT NOT NULL, -- BUY/SELL - price REAL NOT NULL, - quantity REAL NOT NULL, - quote_quantity REAL, - is_maker BOOLEAN, - UNIQUE(exchange, symbol, trade_id) -); -``` - -#### 8.2.7 strategies - 策略表 - -```sql -CREATE TABLE IF NOT EXISTS strategies ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL UNIQUE, - description TEXT, - script_content TEXT NOT NULL, -- Python 策略代码 - config TEXT, -- JSON 配置 - status TEXT DEFAULT 'stopped', -- running/stopped/error - exchange TEXT, - symbols TEXT, -- JSON 数组 - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); -``` - -#### 8.2.8 strategy_trades - 策略交易记录表 - -```sql -CREATE TABLE IF NOT EXISTS strategy_trades ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - strategy_id INTEGER NOT NULL, - exchange TEXT NOT NULL, - symbol TEXT NOT NULL, - order_id TEXT, - timestamp INTEGER NOT NULL, - side TEXT NOT NULL, -- BUY/SELL - type TEXT NOT NULL, -- MARKET/LIMIT - price REAL NOT NULL, - quantity REAL NOT NULL, - fee REAL, - fee_asset TEXT, - pnl REAL, -- 平仓盈亏 - FOREIGN KEY (strategy_id) REFERENCES strategies(id) -); -``` - -#### 8.2.9 backtest_results - 回测结果表 - -```sql -CREATE TABLE IF NOT EXISTS backtest_results ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - strategy_id INTEGER NOT NULL, - start_date TEXT NOT NULL, - end_date TEXT NOT NULL, - initial_capital REAL NOT NULL, - final_capital REAL NOT NULL, - total_return REAL, -- 总收益率 - annual_return REAL, -- 年化收益率 - max_drawdown REAL, -- 最大回撤 - sharpe_ratio REAL, -- 夏普比率 - win_rate REAL, -- 胜率 - profit_factor REAL, -- 盈亏比 - total_trades INTEGER, - trades_detail TEXT, -- JSON 交易明细 - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (strategy_id) REFERENCES strategies(id) -); -``` - -#### 8.2.10 alerts - 告警配置表 - -```sql -CREATE TABLE IF NOT EXISTS alerts ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - type TEXT NOT NULL, -- price/funding/position/liquidation - symbol TEXT, - condition TEXT NOT NULL, -- JSON 条件 - notification TEXT, -- JSON 通知方式 (telegram/email/webhook) - enabled BOOLEAN DEFAULT 1, - last_triggered_at TIMESTAMP, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); -``` - -#### 8.2.11 exchange_configs - 交易所配置表 - -```sql -CREATE TABLE IF NOT EXISTS exchange_configs ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - exchange TEXT NOT NULL UNIQUE, - api_key TEXT, -- 加密存储 - api_secret TEXT, -- 加密存储 - passphrase TEXT, -- OKX 需要 - testnet BOOLEAN DEFAULT 0, - enabled BOOLEAN DEFAULT 1, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); -``` - -### 8.3 Redis 缓存设计 - -```python -# Redis Key 设计 - -# 实时行情 (Hash) -"ticker:{exchange}:{symbol}" -# 例: "ticker:binance:BTCUSDT" -# 字段: last, bid, ask, volume, change_percent, ... - -# 订单簿 (Sorted Set) -"orderbook:{exchange}:{symbol}:bids" -"orderbook:{exchange}:{symbol}:asks" -# Score: 价格, Member: 数量 - -# 资金费率 (Hash) -"funding:{exchange}:{symbol}" -# 字段: current_rate, predicted_rate, next_time, mark_price - -# 持仓量 (String) -"oi:{exchange}:{symbol}" - -# 策略状态 (Hash) -"strategy:{id}:status" -# 字段: status, pnl, positions, last_update - -# 告警状态 (String) -"alert:{id}:triggered" -``` - -### 8.4 表关系图 - -``` -┌─────────────────────┐ -│ exchange_configs │ -│ (交易所配置) │ -└─────────────────────┘ - │ - ▼ -┌─────────────────────┐ ┌─────────────────────┐ -│ kline_history │ │ funding_rate_history│ -│ (K线历史) │ │ (资金费率历史) │ -└─────────────────────┘ └─────────────────────┘ - │ -┌─────────────────────┐ ▼ -│ open_interest_hist │ ┌─────────────────────┐ -│ (持仓量历史) │ │funding_rate_realtime│ -└─────────────────────┘ │ (资金费率实时) │ - └─────────────────────┘ -┌─────────────────────┐ -│ liquidation_history │ -│ (爆仓历史) │ -└─────────────────────┘ - -┌─────────────────────┐ -│ strategies │ -│ (策略表) │ -└──────────┬──────────┘ - │ - ┌─────┴─────┐ - ▼ ▼ -┌─────────────┐ ┌─────────────────┐ -│strategy_trad│ │ backtest_results│ -│(策略交易记录)│ │ (回测结果) │ -└─────────────┘ └─────────────────┘ - -┌─────────────────────┐ -│ alerts │ -│ (告警配置) │ -└─────────────────────┘ -``` - ---- - -## 9. API 接口设计 - -### 9.1 Market 模块 - 行情数据 - -#### GET /api/v1/market/ticker -**功能**:获取单个交易对行情 - -**请求参数**: -| 参数 | 类型 | 必填 | 说明 | -|------|------|------|------| -| exchange | string | 是 | 交易所 (binance/okx/bybit) | -| symbol | string | 是 | 交易对 (BTC/USDT) | - -**响应示例**: -```json -{ - "exchange": "binance", - "symbol": "BTC/USDT", - "last": 50123.45, - "bid": 50122.00, - "ask": 50124.00, - "volume": 12345.67, - "quoteVolume": 618765432.10, - "change": 1250.45, - "changePercent": 2.56, - "high": 51000.00, - "low": 48500.00, - "timestamp": 1706140800000 -} -``` - -#### GET /api/v1/market/tickers -**功能**:获取多个交易对行情 - -**请求参数**: -| 参数 | 类型 | 必填 | 说明 | -|------|------|------|------| -| exchange | string | 是 | 交易所 | -| symbols | string | 否 | 交易对列表,逗号分隔 | - -#### GET /api/v1/market/klines -**功能**:获取 K 线数据 - -**请求参数**: -| 参数 | 类型 | 必填 | 默认值 | 说明 | -|------|------|------|--------|------| -| exchange | string | 是 | - | 交易所 | -| symbol | string | 是 | - | 交易对 | -| timeframe | string | 否 | 1h | 周期 (1m/5m/15m/1h/4h/1d) | -| limit | int | 否 | 100 | 数量限制 (1-1000) | -| start | int | 否 | - | 开始时间戳 (毫秒) | -| end | int | 否 | - | 结束时间戳 (毫秒) | - -**响应示例**: -```json -[ - { - "timestamp": 1706140800000, - "open": 50000.00, - "high": 50500.00, - "low": 49800.00, - "close": 50123.45, - "volume": 1234.56 - } -] -``` - -#### GET /api/v1/market/orderbook -**功能**:获取订单簿深度 - -**请求参数**: -| 参数 | 类型 | 必填 | 默认值 | -|------|------|------|--------| -| exchange | string | 是 | - | -| symbol | string | 是 | - | -| limit | int | 否 | 20 | - -**响应示例**: -```json -{ - "bids": [[50100.00, 1.5], [50095.00, 2.3], ...], - "asks": [[50105.00, 1.2], [50110.00, 3.1], ...], - "timestamp": 1706140800000 -} -``` - -#### GET /api/v1/market/trades -**功能**:获取最近成交 - -### 9.2 Funding 模块 - 资金费率 - -#### GET /api/v1/funding/rates -**功能**:获取所有交易对当前资金费率 - -**响应示例**: -```json -[ - { - "exchange": "binance", - "symbol": "BTCUSDT", - "currentRate": 0.0001, - "predictedRate": 0.00012, - "nextFundingTime": 1706140800000, - "markPrice": 50123.45, - "indexPrice": 50120.00 - } -] -``` - -#### GET /api/v1/funding/rate/{symbol} -**功能**:获取单个交易对资金费率详情 - -#### GET /api/v1/funding/history -**功能**:获取资金费率历史 - -**请求参数**: -| 参数 | 类型 | 必填 | 说明 | -|------|------|------|------| -| exchange | string | 是 | 交易所 | -| symbol | string | 是 | 交易对 | -| limit | int | 否 | 数量 (默认100) | - -#### GET /api/v1/funding/opportunities -**功能**:获取套利机会(费率排行) - -**响应示例**: -```json -[ - { - "symbol": "SOLUSDT", - "rate": 0.00025, - "annualized": 27.375, - "nextFundingTime": 1706140800000 - }, - { - "symbol": "BTCUSDT", - "rate": 0.0001, - "annualized": 10.95, - "nextFundingTime": 1706140800000 - } -] -``` - -### 9.3 Trading 模块 - 交易 - -#### POST /api/v1/trading/order -**功能**:下单 - -**请求体**: -```json -{ - "exchange": "binance", - "symbol": "BTC/USDT", - "side": "buy", - "type": "limit", - "amount": 0.01, - "price": 50000, - "params": { - "leverage": 10, - "marginMode": "isolated" - } -} -``` - -#### DELETE /api/v1/trading/order/{orderId} -**功能**:撤单 - -#### GET /api/v1/trading/orders -**功能**:获取订单列表 - -#### GET /api/v1/trading/positions -**功能**:获取持仓 - -**响应示例**: -```json -[ - { - "symbol": "BTC/USDT", - "side": "long", - "amount": 0.1, - "entryPrice": 50000, - "markPrice": 50500, - "liquidationPrice": 45000, - "unrealizedPnl": 50.00, - "leverage": 10, - "marginMode": "isolated" - } -] -``` - -#### GET /api/v1/trading/balance -**功能**:获取账户余额 - -### 9.4 Strategy 模块 - 策略 - -#### GET /api/v1/strategy/list -**功能**:获取策略列表 - -#### POST /api/v1/strategy/create -**功能**:创建策略 - -**请求体**: -```json -{ - "name": "BTC 资金费率套利", - "description": "当费率 > 0.01% 时开仓", - "scriptContent": "class MyStrategy(BaseStrategy): ...", - "config": { - "minRate": 0.0001, - "positionSize": 0.1 - }, - "exchange": "binance", - "symbols": ["BTC/USDT"] -} -``` - -#### POST /api/v1/strategy/{id}/start -**功能**:启动策略 - -#### POST /api/v1/strategy/{id}/stop -**功能**:停止策略 - -#### GET /api/v1/strategy/{id}/trades -**功能**:获取策略交易记录 - -### 9.5 Backtest 模块 - 回测 - -#### POST /api/v1/backtest/run -**功能**:运行回测 - -**请求体**: -```json -{ - "strategyId": 1, - "exchange": "binance", - "symbol": "BTC/USDT", - "timeframe": "1h", - "startDate": "2025-01-01", - "endDate": "2025-12-31", - "initialCapital": 10000, - "commission": 0.0004, - "slippage": 0.0001 -} -``` - -**响应示例**: -```json -{ - "id": 1, - "status": "completed", - "result": { - "totalReturn": 0.325, - "annualReturn": 0.352, - "maxDrawdown": -0.123, - "sharpeRatio": 1.85, - "winRate": 0.583, - "profitFactor": 1.42, - "totalTrades": 156, - "trades": [...] - } -} -``` - -#### GET /api/v1/backtest/results -**功能**:获取回测结果列表 - -### 9.6 Monitor 模块 - 监控告警 - -#### GET /api/v1/monitor/alerts -**功能**:获取告警列表 - -#### POST /api/v1/monitor/alert/create -**功能**:创建告警 - -**请求体**: -```json -{ - "name": "BTC 价格告警", - "type": "price", - "symbol": "BTC/USDT", - "condition": { - "operator": ">", - "value": 55000 - }, - "notification": { - "telegram": true, - "webhook": "https://your-webhook.com" - } -} -``` - -#### GET /api/v1/monitor/liquidations -**功能**:获取爆仓数据 - -#### GET /api/v1/monitor/long-short-ratio -**功能**:获取多空比 - ---- - -## 10. 开发计划与里程碑 - -### 10.1 Phase 1: 基础架构 (Week 1-2) - -| 任务 | 优先级 | 状态 | 说明 | -|------|--------|------|------| -| 项目初始化 | P0 | 待开始 | 创建目录结构、配置文件 | -| 数据库设计实现 | P0 | 待开始 | SQLite 表创建、初始化 | -| CCXT 交易所封装 | P0 | 待开始 | Binance/OKX/Bybit 统一接口 | -| 后端 FastAPI 框架 | P0 | 待开始 | API 路由、中间件 | -| 前端 React 框架 | P0 | 待开始 | 页面路由、布局 | - -### 10.2 Phase 2: 行情模块 (Week 3-4) - -| 任务 | 优先级 | 状态 | 说明 | -|------|--------|------|------| -| 实时行情 API | P0 | 待开始 | ticker、orderbook、trades | -| K线数据 API | P0 | 待开始 | 历史 K线获取与存储 | -| WebSocket 实时推送 | P1 | 待开始 | 行情实时更新 | -| K线图组件 | P0 | 待开始 | ECharts/TradingView | -| 深度图组件 | P1 | 待开始 | 买卖盘可视化 | -| 资金费率模块 | P0 | 待开始 | 费率获取、套利机会 | - -### 10.3 Phase 3: 策略模块 (Week 5-6) - -| 任务 | 优先级 | 状态 | 说明 | -|------|--------|------|------| -| 策略基类设计 | P0 | 待开始 | BaseStrategy 抽象类 | -| 策略管理 API | P0 | 待开始 | CRUD、启停 | -| 策略编辑器 | P1 | 待开始 | Monaco Editor | -| 内置策略模板 | P1 | 待开始 | 费率套利、网格、均线 | -| 回测引擎 | P0 | 待开始 | 历史数据回测 | -| 回测结果可视化 | P1 | 待开始 | 净值曲线、交易记录 | - -### 10.4 Phase 4: 交易与监控 (Week 7-8) - -| 任务 | 优先级 | 状态 | 说明 | -|------|--------|------|------| -| 交易 API | P0 | 待开始 | 下单、撤单、查询 | -| 持仓管理 | P0 | 待开始 | 持仓展示、风控 | -| 告警系统 | P1 | 待开始 | 价格/费率/持仓告警 | -| Telegram 通知 | P2 | 待开始 | 消息推送 | -| 监控面板 | P1 | 待开始 | 策略运行状态 | - -### 10.5 Phase 5: 优化与扩展 (Week 9+) - -| 任务 | 优先级 | 状态 | 说明 | -|------|--------|------|------| -| AI 分析模块 | P2 | 待开始 | 大模型市场分析 | -| 链上数据集成 | P2 | 待开始 | 巨鲸追踪、DeFi 数据 | -| 多账户管理 | P2 | 待开始 | 支持多个 API Key | -| 移动端适配 | P3 | 待开始 | 响应式设计 | -| Electron 打包 | P3 | 待开始 | 桌面应用 | - ---- - -## 11. 避坑指南与风险控制 - -### 11.1 技术风险 - -#### API 限频 (Rate Limit) - -```python -# 各交易所限频规则(大致) -RATE_LIMITS = { - 'binance': { - 'requests_per_minute': 1200, - 'orders_per_second': 10, - 'orders_per_day': 200000 - }, - 'okx': { - 'requests_per_second': 20, - 'orders_per_second': 60 - }, - 'bybit': { - 'requests_per_minute': 120, - 'orders_per_minute': 100 - } -} - -# 解决方案: -# 1. 使用 WebSocket 代替轮询 -# 2. 实现请求队列和限速器 -# 3. 缓存不频繁变化的数据 -``` - -#### 网络延迟 - -```python -# 延迟优化 -# 1. 服务器部署在交易所附近 -# - Binance: AWS 东京 (ap-northeast-1) -# - OKX: AWS 东京 -# - Bybit: AWS 新加坡 - -# 2. 使用 WebSocket 保持长连接 -# 3. 预热连接,避免冷启动 -``` - -#### 代码安全 - -```python -# ❌ 错误做法:API Key 硬编码 -api_key = "sk-xxxx" # 千万不要这样! - -# ✅ 正确做法:环境变量 + 加密存储 -import os -from cryptography.fernet import Fernet - -api_key = os.environ.get('BINANCE_API_KEY') - -# 或者从加密配置文件读取 -cipher = Fernet(encryption_key) -api_key = cipher.decrypt(encrypted_api_key) -``` - -### 11.2 交易风险 - -#### 杠杆风险 - -```python -# 杠杆使用建议 -LEVERAGE_GUIDELINES = { - '新手': '1-3倍,或不使用杠杆', - '有经验': '5-10倍,严格止损', - '高频/套利': '可以更高,但必须有对冲' -} - -# 强平价格计算(简化) -def calculate_liquidation_price(entry_price, leverage, side): - """ - 逐仓模式下的强平价格估算 - """ - maintenance_margin_rate = 0.005 # 维持保证金率 0.5% - - if side == 'long': - # 多头强平价 = 入场价 * (1 - 1/杠杆 + 维持保证金率) - return entry_price * (1 - 1/leverage + maintenance_margin_rate) - else: - # 空头强平价 = 入场价 * (1 + 1/杠杆 - 维持保证金率) - return entry_price * (1 + 1/leverage - maintenance_margin_rate) - -# 示例 -entry = 50000 -leverage = 20 -liq_price = calculate_liquidation_price(entry, leverage, 'long') -print(f"20倍多头,50000入场,强平价约: {liq_price}") # 约 47750 -``` - -#### 滑点控制 - -```python -# 滑点来源 -# 1. 市价单与当前价格的差异 -# 2. 大单冲击成本 - -# 解决方案 -# 1. 使用限价单 -# 2. 大单拆分(TWAP/冰山单) -# 3. 选择流动性好的交易对 - -def estimate_slippage(orderbook, amount, side): - """估算滑点""" - if side == 'buy': - orders = orderbook['asks'] - else: - orders = orderbook['bids'] - - total_amount = 0 - total_cost = 0 - - for price, qty in orders: - fill = min(qty, amount - total_amount) - total_amount += fill - total_cost += fill * price - - if total_amount >= amount: - break - - avg_price = total_cost / total_amount - best_price = orders[0][0] - slippage = abs(avg_price - best_price) / best_price - - return slippage -``` - -### 11.3 交易所风险 - -#### 历史事件 - -| 事件 | 时间 | 影响 | 教训 | -|------|------|------|------| -| Mt.Gox 破产 | 2014 | 85万 BTC 被盗 | 不要把币放交易所 | -| FTX 暴雷 | 2022 | 数十亿美元损失 | 分散存放、定期提现 | -| Binance 被黑 | 2019 | 7000 BTC 被盗 | 交易所也有风险 | - -#### 风险控制 - -```python -# 资金分散原则 -FUND_ALLOCATION = { - 'binance': 0.4, # 40% - 流动性最好 - 'okx': 0.3, # 30% - 备用 - 'cold_wallet': 0.3 # 30% - 冷钱包保管 -} - -# 单交易所最大仓位 -MAX_SINGLE_EXCHANGE_POSITION = 0.5 # 不超过总资金的 50% -``` - -### 11.4 回测陷阱 - -#### 常见问题 - -```python -# 1. 未来函数 -# ❌ 错误:使用未来数据 -signal = df['close'].shift(-1) > df['close'] # 使用了明天的数据 - -# ✅ 正确:只使用历史数据 -signal = df['close'] > df['close'].shift(1) - -# 2. 幸存者偏差 -# ❌ 错误:只回测目前还存在的币种 -# ✅ 正确:包含已退市的币种 - -# 3. 忽略滑点和手续费 -# ❌ 错误:理想化的回测 -backtest_return = (exit_price - entry_price) / entry_price - -# ✅ 正确:考虑真实成本 -commission = 0.0004 # 0.04% 手续费 -slippage = 0.0001 # 0.01% 滑点 -real_return = (exit_price * (1 - commission - slippage) - - entry_price * (1 + commission + slippage)) / entry_price -``` - ---- - -## 附录 - -### A. CCXT 常用接口速查 - -```python -import ccxt - -# 创建交易所实例 -exchange = ccxt.binance({ - 'apiKey': 'YOUR_API_KEY', - 'secret': 'YOUR_SECRET', - 'options': {'defaultType': 'future'} # 永续合约 -}) - -# 公共接口(无需 API Key) -exchange.fetch_ticker('BTC/USDT') # 行情 -exchange.fetch_order_book('BTC/USDT') # 深度 -exchange.fetch_trades('BTC/USDT') # 成交 -exchange.fetch_ohlcv('BTC/USDT', '1h') # K线 -exchange.fetch_funding_rate('BTC/USDT') # 资金费率 - -# 私有接口(需要 API Key) -exchange.fetch_balance() # 余额 -exchange.fetch_positions() # 持仓 -exchange.fetch_open_orders('BTC/USDT') # 未成交订单 -exchange.fetch_my_trades('BTC/USDT') # 成交记录 - -# 下单 -exchange.create_order( - symbol='BTC/USDT', - type='limit', # limit/market - side='buy', # buy/sell - amount=0.01, - price=50000, - params={ - 'leverage': 10, - 'marginMode': 'isolated' - } -) - -# 撤单 -exchange.cancel_order(order_id, 'BTC/USDT') -``` - -### B. 环境配置模板 - -#### backend/.env - -```bash -# 交易所 API 配置 -BINANCE_API_KEY=your_binance_api_key -BINANCE_API_SECRET=your_binance_secret -BINANCE_TESTNET=false - -OKX_API_KEY=your_okx_api_key -OKX_API_SECRET=your_okx_secret -OKX_PASSPHRASE=your_okx_passphrase -OKX_TESTNET=false - -BYBIT_API_KEY=your_bybit_api_key -BYBIT_API_SECRET=your_bybit_secret -BYBIT_TESTNET=false - -# AI 服务配置 -QWEN_API_KEY=your_qwen_api_key - -# Redis 配置 -REDIS_URL=redis://localhost:6379/0 - -# 应用配置 -BACKEND_CORS_ORIGINS=["http://localhost:5173"] -LOG_LEVEL=INFO -``` - -#### frontend/.env - -```bash -VITE_API_URL=/api/v1 -VITE_WS_URL=ws://localhost:8000/ws -``` - -### C. 快速启动脚本 - -#### start.sh - -```bash -#!/bin/bash - -# 启动后端 -echo "Starting backend..." -cd backend -source venv/bin/activate -uvicorn app.main:app --host 0.0.0.0 --port 8000 & -BACKEND_PID=$! - -# 启动前端 -echo "Starting frontend..." -cd ../frontend -npm run dev & -FRONTEND_PID=$! - -echo "Backend PID: $BACKEND_PID" -echo "Frontend PID: $FRONTEND_PID" - -# 等待退出信号 -trap "kill $BACKEND_PID $FRONTEND_PID" EXIT -wait -``` - -### D. 常用数据源链接 - -| 数据源 | 链接 | 说明 | -|--------|------|------| -| Binance Public Data | https://data.binance.vision/ | 免费历史数据 | -| Coinglass | https://www.coinglass.com/ | 资金费率、持仓、爆仓 | -| Glassnode | https://glassnode.com/ | 链上数据 | -| Dune Analytics | https://dune.com/ | 链上数据分析 | -| Fear & Greed Index | https://alternative.me/crypto/fear-and-greed-index/ | 市场情绪 | -| CoinMarketCap | https://coinmarketcap.com/ | 市值排名 | -| TradingView | https://www.tradingview.com/ | 图表工具 | - -### E. 学习资源 - -| 资源 | 链接 | 说明 | -|------|------|------| -| CCXT 文档 | https://docs.ccxt.com/ | 交易所 API 封装库 | -| Binance API 文档 | https://binance-docs.github.io/apidocs/ | 币安官方 API | -| OKX API 文档 | https://www.okx.com/docs-v5/ | OKX v5 API | -| Bybit API 文档 | https://bybit-exchange.github.io/docs/ | Bybit API | -| VeighNa 文档 | https://www.vnpy.com/ | 量化交易框架 | -| Freqtrade 文档 | https://www.freqtrade.io/ | 开源交易机器人 | - ---- - -## 更新日志 - -### v1.0 (2026-01-24) -- 初始版本 -- 完整的 B 圈量化入门指南 -- QuantBase 系统架构设计 -- 数据库设计 -- API 接口设计 -- 开发计划 - ---- - -> 文档维护:个人项目 -> 最后更新:2026-01-24 -> -> **免责声明**:本文档仅供学习交流,不构成任何投资建议。加密货币市场风险极高,请谨慎投资。 diff --git a/README.md b/README.md index 28a47e5..89da34a 100644 --- a/README.md +++ b/README.md @@ -8,46 +8,43 @@ [English](README_EN.md) | 简体中文 -QuantBase 是一个开源量化研究底座,面向真实行情同步、策略回测、paper/simulation 执行、信号审计和风险复盘。它保留工程闭环,默认不连接真实资金,不提供收益承诺,也不把任何示例策略视为投资建议。 +QuantBase 是一个开源量化研究工作台,用于真实行情同步、策略回测、paper/simulation 执行、信号审计和风险复盘。它保留从数据、策略、回测到模拟执行的工程闭环,但默认不连接真实资金,不提供收益承诺,也不把任何示例策略视为投资建议。 -> 风险声明:QuantBase 仅用于技术研究、工程验证、回测和模拟盘演练。任何策略、信号、AI 输出、回测结果、示例配置和界面展示都不构成投资建议、收益承诺或风险承诺。真实交易、杠杆、衍生品和自动化下单都可能造成重大损失;请只在充分理解风险并自行承担责任时使用相关能力。完整说明见 [docs/DISCLAIMER.md](docs/DISCLAIMER.md)。 +> 风险声明:QuantBase 仅用于技术研究、工程验证、回测和模拟盘演练。任何策略、信号、AI 输出、示例配置、界面展示或回测结果都不构成投资建议、收益承诺或风险承诺。真实交易、杠杆、衍生品和自动化下单都可能造成重大损失。完整说明见 [docs/disclaimer.md](docs/disclaimer.md)。 ## 项目定位 -QuantBase 不是一个单独的交易脚本,而是一套可扩展的量化研究工作台: +QuantBase 不是单个交易脚本,而是一套可扩展、可审计、可二次开发的研究基础设施。 | 维度 | 说明 | | --- | --- | | 工程类型 | 全栈量化研究、回测、模拟执行和审计系统 | | 主要技术 | Python 3.11、FastAPI、SQLite、React 18、TypeScript、Vite、Backtrader、CCXT | -| 默认边界 | paper/simulation only;真实账户和实盘执行默认关闭 | +| 默认边界 | paper/simulation first;真实账户读取和实盘执行默认关闭 | | 数据原则 | 优先使用真实公开行情;缺数据应显式失败,不用 mock K 线伪装成功 | -| 开源范围 | 工程框架、策略接口、回测路径、模拟撮合、审计记录、页面工作台和示例 seed | +| 开源范围 | 工程框架、策略接口、回测路径、模拟撮合、审计记录、页面工作台和公开 demo seed | ## 核心能力 -- **行情与 K 线同步**:从公开交易所接口同步行情,维护本地文件 K 线缓存和同步状态。 -- **策略注册框架**:通过统一 `BaseStrategy` 合约接入现货、合约、套利、AI 辅助等策略类型。 +- **行情与 K 线同步**:从公开交易所接口同步行情,并维护本地文件 K 线缓存和同步状态。 +- **策略注册框架**:通过统一 `BaseStrategy` 合同接入现货、合约、套利、AI 辅助等策略类型。 - **Backtrader 回测**:使用真实历史 K 线和明确手续费/滑点配置生成可复查结果。 -- **paper broker**:模拟账户、持仓、成交、权益曲线、手续费、资金费和风险事件。 -- **信号审计**:记录策略信号、投递状态和操作日志,帮助复盘策略行为。 +- **paper broker**:记录模拟账户、持仓、成交、权益曲线、手续费、资金费和风险事件。 +- **信号与事件审计**:保留策略信号、投递状态、执行事件和操作日志,便于复盘。 - **前端工作台**:提供市场、策略、回测、模拟盘、监控、数据中心和 AI 研发页面。 -## 架构概览 +## 安全默认值 -```mermaid -flowchart TB - Frontend["React / TypeScript 工作台"] --> API["FastAPI API 层"] - API --> Runtime["策略运行时 / Backtrader / paper broker"] - Runtime --> Storage["SQLite / 文件 K线 / seed 配置"] - Runtime --> Audit["成交 / 事件 / 权益 / 信号审计"] - API --> External["公开行情 / 可选 AI / 可选通知通道"] -``` - -更完整的分层说明见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。 +- 本仓库默认面向研究、回测和模拟执行。 +- 真实账户读取与实盘执行需要显式设置 `QUANTBASE_LIVE_TRADING_ENABLED=1`。 +- MCP 实盘变更工具还需要单独设置 `QUANTBASE_MCP_ENABLE_LIVE_TRADING=1`。 +- 前端社区版不提供登录页面;如需访问控制,请在二次开发或部署层自行接入。 +- `.env`、API keys、webhook、生产数据库、日志和私有账户截图不得提交到仓库。 ## 快速开始 +需要本机具备 Python 3.11+、Node.js 18+ 和 npm。 + ```bash git clone https://github.com/Shadowell/QuantBase.git cd QuantBase @@ -59,7 +56,14 @@ cd QuantBase ```bash ./start.sh # Frontend: http://localhost:8888 -# Backend: http://localhost:8889/api/v2 +# Backend: http://localhost:8889 +``` + +查看状态和停止服务: + +```bash +./status.sh +./stop.sh ``` 不启动长服务的基础检查: @@ -68,6 +72,8 @@ cd QuantBase ./scripts/check.sh ``` +更完整的本地运行说明见 [docs/local-deployment.md](docs/local-deployment.md)。 + ## 环境变量 复制后端环境模板: @@ -76,7 +82,7 @@ cd QuantBase cp backend/.env.example backend/.env ``` -默认情况下可以只运行前端构建、Python 编译和部分公开行情路径。涉及交易所私有 API、通知 webhook、AI provider key 或任何真实账户能力时,请只写入本地 `.env` 或部署密钥,不要提交到仓库。 +默认模板只包含占位符和安全关闭状态。涉及交易所私有 API、通知 webhook、AI provider key 或任何真实账户能力时,请只写入本地 `.env` 或部署密钥,不要提交到仓库。 Kairos/SuperPnL 这类本地模型能力是可选重依赖。基础安装不会拉取 torch 或模型仓库;需要本地模型推理时再安装: @@ -88,21 +94,35 @@ pip install -r backend/requirements-ai.txt `data/seed/strategies.json` 内置 10 个社区版 demo seed,用于展示策略配置结构和 paper/simulation 启动方式。它们覆盖现货 CTA、合约 CTA、Donchian、网格、马丁、做市、市场中性、跨所资金费率和低杠杆趋势等样例;这些不是实盘建议,也不是经过收益目标筛选的交易资产。 +## 项目结构 + +```text +backend/ FastAPI 应用、策略运行时、回测、paper broker 和持久化 +frontend/ React/Vite 工作台 +data/seed/ 社区版 demo 策略 seed +docs/ 产品规格、架构、页面和本地运行文档 +scripts/ 检查、种子导入和辅助脚本 +tests/ 风险边界、静态合同和核心服务测试 +``` + ## 文档入口 | 文档 | 内容 | | --- | --- | | [docs/README.md](docs/README.md) | 文档总导航 | -| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 技术架构和数据流 | -| [docs/spec.md](docs/spec.md) | 长期产品规格和行为边界 | +| [docs/local-deployment.md](docs/local-deployment.md) | 本地部署和运行手册 | +| [docs/architecture.md](docs/architecture.md) | 技术架构和数据流 | +| [docs/spec.md](docs/spec.md) | 产品规格和行为边界 | | [docs/pages/](docs/pages/) | 页面级设计文档 | -| [docs/OPEN_SOURCE_SCOPE.md](docs/OPEN_SOURCE_SCOPE.md) | 开源社区版保留与剥离范围 | -| [docs/DISCLAIMER.md](docs/DISCLAIMER.md) | 免责声明 | +| [docs/open-source-scope.md](docs/open-source-scope.md) | 开源社区版保留与剥离范围 | +| [docs/disclaimer.md](docs/disclaimer.md) | 免责声明 | +| [docs/okx-signal-bot-json-format.md](docs/okx-signal-bot-json-format.md) | OKX Signal Bot 自定义 JSON payload 参考 | ## 开源治理 - License: Apache-2.0,见 [LICENSE](LICENSE)。 - 贡献说明见 [CONTRIBUTING.md](CONTRIBUTING.md)。 - 安全问题请按 [SECURITY.md](SECURITY.md) 报告。 +- 发布前请使用 [docs/open-source-release-checklist.md](docs/open-source-release-checklist.md) 做公开边界检查。 -QuantBase 的目标是提供一套可靠、可审计、可扩展的量化研究基础设施。请先研究、再模拟,最后再由你自己判断是否需要任何真实执行。 +QuantBase 的目标是提供一套可靠、可审计、可扩展的量化研究基础设施。请先研究,再模拟,最后再由你自己判断是否需要任何真实执行。 diff --git a/README_EN.md b/README_EN.md index 543a5bf..bd2c88b 100644 --- a/README_EN.md +++ b/README_EN.md @@ -8,33 +8,43 @@ English | [简体中文](README.md) -QuantBase is an open-source quantitative research base for real market-data sync, backtesting, paper/simulation execution, signal audit, and risk review. It keeps the engineering loop while defaulting away from real funds, return promises, and investment advice. +QuantBase is an open-source quantitative research workbench for real market-data sync, backtesting, paper/simulation execution, signal audit, and risk review. It keeps the engineering loop from data to strategy to simulated execution while defaulting away from real funds, return promises, and investment advice. -> Risk notice: QuantBase is for technical research, engineering validation, backtesting, and paper simulation. Strategies, signals, AI output, examples, dashboards, and backtest results are not investment advice, return guarantees, or risk guarantees. Real trading, leverage, derivatives, and automated order placement can cause material losses. See [docs/DISCLAIMER.md](docs/DISCLAIMER.md). +> Risk notice: QuantBase is for technical research, engineering validation, backtesting, and paper simulation. Strategies, signals, AI output, examples, dashboards, and backtest results are not investment advice, return guarantees, or risk guarantees. Real trading, leverage, derivatives, and automated order placement can cause material losses. See [docs/disclaimer.md](docs/disclaimer.md). ## What It Is -QuantBase is not a single trading script. It is a full-stack research workbench: +QuantBase is not a single trading script. It is an extensible, inspectable research infrastructure stack. | Area | Description | | --- | --- | -| System type | Quant research, backtesting, paper execution, and audit stack | +| System type | Full-stack quant research, backtesting, paper execution, and audit system | | Stack | Python 3.11, FastAPI, SQLite, React 18, TypeScript, Vite, Backtrader, CCXT | -| Default boundary | Paper/simulation only; real-account execution is disabled by default | +| Default boundary | Paper/simulation first; real-account reads and live execution are disabled by default | | Data principle | Prefer real public market data and explicit failures over fabricated candles | -| Open-source scope | Framework, strategy interface, backtest path, paper broker, audit records, UI workbench, and demo seeds | +| Open-source scope | Framework, strategy interface, backtest path, paper broker, audit records, UI workbench, and public demo seeds | ## Core Capabilities - Public market-data and K-line synchronization. -- Unified `BaseStrategy` interface for strategy registration. -- Backtrader-based historical validation. +- Unified `BaseStrategy` contract for strategy registration. +- Backtrader-based historical validation using explicit fee and slippage assumptions. - Paper broker for simulated accounts, positions, trades, equity, fees, funding, and risk events. -- Signal audit records for strategy behavior review. +- Signal and event audit records for strategy behavior review. - React workbench for market, strategy, backtest, simulation, monitor, data, and AI research pages. +## Safety Defaults + +- The repository defaults to research, backtesting, and paper simulation. +- Real-account reads and live execution require `QUANTBASE_LIVE_TRADING_ENABLED=1`. +- MCP live mutation tools also require `QUANTBASE_MCP_ENABLE_LIVE_TRADING=1`. +- The community frontend does not ship a login page; add access control in your own fork or deployment layer if needed. +- Do not commit `.env` files, API keys, webhooks, production databases, logs, or screenshots with private account data. + ## Quick Start +Install Python 3.11+, Node.js 18+, and npm first. + ```bash git clone https://github.com/Shadowell/QuantBase.git cd QuantBase @@ -46,7 +56,14 @@ Run locally: ```bash ./start.sh # Frontend: http://localhost:8888 -# Backend: http://localhost:8889/api/v2 +# Backend: http://localhost:8889 +``` + +Check status and stop services: + +```bash +./status.sh +./stop.sh ``` Run non-service checks: @@ -55,13 +72,15 @@ Run non-service checks: ./scripts/check.sh ``` +See [docs/local-deployment.md](docs/local-deployment.md) for the full local operations guide. + ## Configuration ```bash cp backend/.env.example backend/.env ``` -Keep exchange private keys, notification webhooks, AI provider keys, and deployment secrets out of git. The 10 demo seeds in `data/seed/strategies.json` cover spot CTA, contract CTA, Donchian, grid, martingale, market making, market neutral, cross-exchange funding, and low-leverage trend examples. They are examples only, not trading recommendations. +The default template contains placeholders and safe disabled states only. Keep exchange private keys, notification webhooks, AI provider keys, and deployment secrets out of git. Kairos/SuperPnL local model inference is optional. The base install does not pull torch or model repositories. Install the optional stack only when needed: @@ -69,21 +88,39 @@ Kairos/SuperPnL local model inference is optional. The base install does not pul pip install -r backend/requirements-ai.txt ``` +## Demo Strategies + +`data/seed/strategies.json` contains 10 demo seeds for the community edition. They illustrate strategy configuration and paper/simulation startup paths across spot CTA, contract CTA, Donchian, grid, martingale, market making, market neutral, cross-exchange funding, and low-leverage trend examples. They are examples only, not trading recommendations. + +## Project Layout + +```text +backend/ FastAPI app, strategy runtime, backtesting, paper broker, persistence +frontend/ React/Vite workbench +data/seed/ Community demo strategy seeds +docs/ Product, architecture, page, and local operations docs +scripts/ Checks, seed import, and helper scripts +tests/ Risk-boundary, static-contract, and service tests +``` + ## Documentation | Document | Purpose | | --- | --- | | [docs/README.md](docs/README.md) | Documentation map | -| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | Architecture and data flow | +| [docs/local-deployment.md](docs/local-deployment.md) | Local deployment and operations guide | +| [docs/architecture.md](docs/architecture.md) | Architecture and data flow | | [docs/spec.md](docs/spec.md) | Product behavior and boundaries | | [docs/pages/](docs/pages/) | Page-level design docs | -| [docs/OPEN_SOURCE_SCOPE.md](docs/OPEN_SOURCE_SCOPE.md) | Community-edition scope | -| [docs/DISCLAIMER.md](docs/DISCLAIMER.md) | Risk disclaimer | +| [docs/open-source-scope.md](docs/open-source-scope.md) | Community-edition scope | +| [docs/disclaimer.md](docs/disclaimer.md) | Risk disclaimer | +| [docs/okx-signal-bot-json-format.md](docs/okx-signal-bot-json-format.md) | OKX Signal Bot custom JSON payload reference | ## Governance - License: Apache-2.0, see [LICENSE](LICENSE). - Contribution guide: [CONTRIBUTING.md](CONTRIBUTING.md). - Security reporting: [SECURITY.md](SECURITY.md). +- Before publishing, run through [docs/open-source-release-checklist.md](docs/open-source-release-checklist.md). QuantBase exists to make quant research infrastructure easier to inspect, reuse, and extend. Research first, simulate second, and treat any live execution as your own responsibility. diff --git a/backend/.env.example b/backend/.env.example index fd36905..afd2305 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -13,6 +13,9 @@ OKX_API_KEY= OKX_API_SECRET= OKX_PASSPHRASE= OKX_TESTNET=true +BINANCE_API_KEY= +BINANCE_API_SECRET= +BINANCE_TESTNET=false # Optional AI research provider configuration. DASHSCOPE_API_KEY= @@ -24,6 +27,25 @@ DASHSCOPE_API_KEY= # AI_AGENT_REQUEST_TIMEOUT=180 AGENT_MAX_ITERATIONS=10 AGENT_CODE_TIMEOUT=120 +HERMES_AGENT_ENABLED=false +HERMES_AGENT_COMMAND=hermes +HERMES_AGENT_TIMEOUT=240 + +# Optional API session access control for forks or deployment-layer integrations. +# The community frontend does not ship a login page. Keep this false unless +# you provide your own auth flow or API-only access path. +QUANTBASE_AUTH_ENABLED=false +QUANTBASE_ADMIN_USERNAME= +QUANTBASE_ADMIN_PASSWORD_HASH= +QUANTBASE_AUTH_COOKIE_NAME=quantbase_session +QUANTBASE_AUTH_COOKIE_SECURE=false +QUANTBASE_ADMIN_SESSION_HOURS=87600 + +# Real-account read and live-execution switches. Keep disabled for public demos. +QUANTBASE_LIVE_TRADING_ENABLED=false +QUANTBASE_MCP_ENABLE_LIVE_TRADING=0 +# QUANTBASE_MCP_API_BASE=http://127.0.0.1:8889 +# QUANTBASE_MCP_AUDIT_PATH=logs/mcp_live_audit.jsonl # Optional Redis configuration # REDIS_URL=redis://localhost:6379/0 diff --git a/backend/app/api/v2/endpoints/live.py b/backend/app/api/v2/endpoints/live.py index 70f110f..e3af6b0 100644 --- a/backend/app/api/v2/endpoints/live.py +++ b/backend/app/api/v2/endpoints/live.py @@ -76,6 +76,15 @@ _live_private_read_inflight: Dict[tuple[Any, ...], asyncio.Task[Any]] = {} +def _require_live_trading_enabled(action: str = "实盘功能") -> None: + if bool(getattr(settings, "QUANTBASE_LIVE_TRADING_ENABLED", False)): + return + raise BadRequestError( + f"{action} 默认关闭;如需使用真实账户读取或实盘执行,请在服务端设置 " + "QUANTBASE_LIVE_TRADING_ENABLED=1,并自行承担真实资金风险。" + ) + + def _clone_live_private_read(value: Any) -> Any: return copy.deepcopy(value) @@ -2434,6 +2443,8 @@ def _build_dashboard(strategy_id: int) -> Dict[str, Any]: @router.post("/configure") async def live_configure(body: LiveConfigureBody): global _active_strategy_id + if not body.dry_run: + _require_live_trading_enabled("实盘配置") sid = _parse_strategy_id(body.strategy_type) existing = db.get_strategy_by_id(sid) if not existing: @@ -2766,6 +2777,7 @@ def _require_live_subscription_control( @router.post("/strategies/{strategy_id}/preflight") async def preflight_live_execution_strategy(strategy_id: int, body: LiveStrategyPreflightBody): + _require_live_trading_enabled("实盘预检") account_id = live_account_service.validate_live_deployable_account_id(body.account_id or "default") row = _require_added_live_strategy(int(strategy_id), account_id) promote_body = _live_execution_body_to_promote(int(strategy_id), body) @@ -2789,6 +2801,7 @@ async def preflight_live_execution_strategy(strategy_id: int, body: LiveStrategy @router.post("/strategies/{strategy_id}/deploy") async def deploy_live_execution_strategy(strategy_id: int, body: LiveStrategyDeployBody): + _require_live_trading_enabled("实盘部署") if not body.confirm_paper_reviewed or not body.confirm_live_risk: raise BadRequestError("部署实盘需要确认已复核模拟盘表现,并确认真实资金风险") @@ -2917,6 +2930,7 @@ async def pause_live_strategy_subscription(strategy_id: int, body: LiveStrategyS @router.post("/strategies/{strategy_id}/resume") async def resume_live_strategy_subscription(strategy_id: int, body: LiveStrategySubscriptionControlBody): + _require_live_trading_enabled("恢复实盘订阅") account_id = live_account_service.validate_account_id(body.account_id or "default") row, _ = _require_live_subscription_control(int(strategy_id), account_id) subscription = live_signal_execution_service.set_subscription_status( @@ -3002,6 +3016,7 @@ async def list_live_accounts(): @router.post("/accounts") async def create_live_account(body: LiveAccountCreateBody): + _require_live_trading_enabled("新增实盘账户") account = live_account_service.create_account( name=body.name, api_key=body.api_key, @@ -3013,6 +3028,7 @@ async def create_live_account(body: LiveAccountCreateBody): def _live_account_exchange_alias(account_id: str) -> tuple[str, str]: + _require_live_trading_enabled("真实账户读取") normalized = live_account_service.validate_live_deployable_account_id(account_id) return normalized, live_account_service.exchange_alias_for_account(normalized) @@ -3463,6 +3479,7 @@ async def live_account_positions( @router.post("/accounts/{account_id}/positions/close") async def live_account_close_position(account_id: str, body: LivePositionCloseBody): + _require_live_trading_enabled("真实账户平仓") if not body.confirm_live_risk: raise BadRequestError("平仓需要二次确认 confirm_live_risk=true") normalized, exchange = _live_account_exchange_alias(account_id) @@ -3792,6 +3809,8 @@ async def _run_preflight_checks( @router.post("/pre_flight") async def live_pre_flight(body: PreFlightBody): + if not body.dry_run: + _require_live_trading_enabled("实盘飞行检查") sid = _parse_strategy_id(body.strategy) row = db.get_strategy_by_id(sid) timeframe = _strategy_defined_timeframe(row) @@ -3809,11 +3828,13 @@ async def live_pre_flight(body: PreFlightBody): @router.post("/promote/preflight") async def promote_to_live_preflight(body: PromoteToLiveBody): + _require_live_trading_enabled("实盘预检") return ok(await _run_promote_preflight(body)) @router.post("/promote") async def promote_to_live(body: PromoteToLiveBody): + _require_live_trading_enabled("实盘部署") if not body.confirm_paper_reviewed or not body.confirm_live_risk: raise BadRequestError("部署实盘需要确认已复核模拟盘表现,并确认真实资金风险") diff --git a/backend/app/core/config.py b/backend/app/core/config.py index 9eb4c0c..1b81cfe 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -74,6 +74,9 @@ def assemble_cors_origins(cls, v): QUANTBASE_AUTH_COOKIE_SECURE: bool = False QUANTBASE_ADMIN_SESSION_HOURS: int = 24 * 365 * 10 + # 真实账户与实盘执行总开关。社区版默认关闭。 + QUANTBASE_LIVE_TRADING_ENABLED: bool = False + # Redis 配置 (可选) REDIS_URL: Optional[str] = None diff --git a/backend/app/services/auth_service.py b/backend/app/services/auth_service.py index a15c7de..458582f 100644 --- a/backend/app/services/auth_service.py +++ b/backend/app/services/auth_service.py @@ -104,7 +104,7 @@ def create_guest_code( max_backtest_days: int = 365, created_by: str = "admin", ) -> dict[str, Any]: - code = f"BP-{secrets.token_urlsafe(9).replace('_', '').replace('-', '').upper()}" + code = f"QB-{secrets.token_urlsafe(9).replace('_', '').replace('-', '').upper()}" expires_at = _now() + timedelta(minutes=max(1, int(expires_in_minutes or 60))) conn = self.db.get_connection() cur = conn.cursor() diff --git a/backend/app/services/orbit_auto_post_service.py b/backend/app/services/orbit_auto_post_service.py index 4c51efe..8c5299d 100644 --- a/backend/app/services/orbit_auto_post_service.py +++ b/backend/app/services/orbit_auto_post_service.py @@ -191,7 +191,7 @@ def default_config(self) -> Dict[str, Any]: "cooldown_hours": 24, "max_posts_per_day": 12, "llm_model": "", - "copy_style": "吸引跟单但不夸大,不承诺收益,突出真实仓位、方向、收益率和风险控制。", + "copy_style": "用于研究复盘分享,不夸大,不承诺收益,突出真实仓位、方向、收益率和风险控制。", "publish_mode": "orbit_web", "truthful_only": True, "running": False, @@ -424,7 +424,7 @@ async def _build_copy(self, candidate: Dict[str, Any], cfg: Dict[str, Any]) -> s "role": "system", "content": ( "你是合规的 OKX 星球交易动态文案助手。只基于给定真实持仓数据写中文短帖;" - "可以吸引关注和跟单兴趣,但禁止承诺收益、夸大胜率、伪造数据、诱导满仓或无风险表达。" + "可以吸引关注并支持研究复盘,但禁止承诺收益、夸大胜率、伪造数据、诱导满仓或无风险表达。" "必须包含风险提示“不是投资建议”。" ), }, @@ -437,7 +437,7 @@ async def _build_copy(self, candidate: Dict[str, Any], cfg: Dict[str, Any]) -> s "requirements": [ "80 到 180 字", "包含交易对、方向、杠杆、保证金收益率、浮盈", - "结尾提醒跟单需控制仓位和止损", + "结尾提醒仅用于研究复盘并需控制仓位和止损", ], }, ensure_ascii=False, @@ -448,7 +448,7 @@ async def _build_copy(self, candidate: Dict[str, Any], cfg: Dict[str, Any]) -> s text = await get_qwen_client(model).chat(messages, temperature=0.8, max_tokens=360) normalized = str(text or "").strip() if "投资建议" not in normalized: - normalized = f"{normalized}\n\n不是投资建议,跟单注意仓位和止损。" + normalized = f"{normalized}\n\n不是投资建议,仅用于研究复盘,注意仓位和止损。" return normalized[:800] except Exception as exc: return f"{fallback}\n\nAI文案生成失败,已使用真实数据模板:{describe_qwen_exception(exc)}" @@ -467,7 +467,7 @@ def _fallback_copy(candidate: Dict[str, Any]) -> str: f"${base} 合约单达到自动分享阈值:{symbol} {side} {leverage:g}x," f"保证金收益率 {roi:+.2f}%,浮盈 {pnl:+.2f} USDT。" f"入场 {entry:g},当前 {mark:g}。这条来自 QuantBase 读取的 OKX 实盘持仓," - "不构成投资建议,跟单注意仓位和止损。" + "不构成投资建议,仅用于研究复盘,注意仓位和止损。" ) def _set_runtime(self, **updates: Any) -> None: diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt new file mode 100644 index 0000000..2c15d04 --- /dev/null +++ b/backend/requirements-dev.txt @@ -0,0 +1,3 @@ +# Development and CI-only test dependencies. +pytest>=8.0.0 +pytest-asyncio>=0.23.0 diff --git a/docs/Crypto_Beginner_Guide.md b/docs/Crypto_Beginner_Guide.md deleted file mode 100644 index 914e532..0000000 --- a/docs/Crypto_Beginner_Guide.md +++ /dev/null @@ -1,2156 +0,0 @@ -# 加密货币新手完全指南 - -> 从零开始,深入理解区块链、加密货币、链上数据、交易与挖矿 - ---- - -## 目录 - -1. [什么是加密货币](#第一章-什么是加密货币) -2. [区块链基础](#第二章-区块链基础) -3. [链上数据详解](#第三章-链上数据详解) -4. [如何交易加密货币](#第四章-如何交易加密货币) -5. [挖矿详解](#第五章-挖矿详解) -6. [钱包与安全](#第六章-钱包与安全) -7. [DeFi 入门](#第七章-defi-入门) -8. [常见问题 FAQ](#第八章-常见问题-faq) - ---- - -# 第一章 什么是加密货币 - -## 1.1 定义 - -**加密货币 (Cryptocurrency)** 是一种使用密码学技术保护的数字货币,运行在去中心化的区块链网络上。 - -``` -传统货币 vs 加密货币: - -传统货币 (法币): -├── 中央银行发行 -├── 政府信用背书 -├── 银行系统管理 -└── 可无限增发 - -加密货币: -├── 算法/协议发行 -├── 数学和密码学背书 -├── 分布式网络管理 -└── 大多有固定上限 -``` - -## 1.2 核心特性 - -| 特性 | 说明 | 举例 | -|------|------|------| -| **去中心化** | 没有中央机构控制 | 比特币没有"比特币银行" | -| **透明公开** | 所有交易可查 | 任何人可以查看区块链 | -| **不可篡改** | 历史记录无法更改 | 一旦上链就是永久记录 | -| **匿名性** | 地址与真实身份分离 | 只知道地址,不知道是谁 | -| **全球流通** | 无国界限制 | 可以即时转到任何国家 | -| **7×24交易** | 全年无休 | 没有开盘收盘时间 | - -## 1.3 主要类型 - -### 按用途分类 - -``` -1. 支付型 (Currency) - └── BTC, LTC, BCH, XRP - └── 目标: 成为货币/支付手段 - -2. 平台型 (Platform) - └── ETH, SOL, ADA, AVAX - └── 目标: 运行智能合约和 DApp - -3. 稳定币 (Stablecoin) - └── USDT, USDC, DAI - └── 目标: 价格锚定法币 - -4. 治理代币 (Governance) - └── UNI, AAVE, MKR - └── 目标: 参与项目决策投票 - -5. 实用代币 (Utility) - └── BNB, LINK, FIL - └── 目标: 在特定生态中使用 - -6. Meme 币 - └── DOGE, SHIB, PEPE - └── 目标: 社区驱动,娱乐为主 -``` - -### 按技术分类 - -| 类型 | 代表 | 特点 | -|------|------|------| -| Layer 1 | BTC, ETH, SOL | 底层公链 | -| Layer 2 | MATIC, ARB, OP | 扩容方案 | -| 跨链 | DOT, ATOM, LINK | 链间通信 | - -## 1.4 价值来源 - -``` -加密货币为什么有价值? - -1. 稀缺性 - └── BTC 总量 2100万枚,永不增发 - -2. 实用性 - └── ETH 是智能合约的"燃料" - -3. 网络效应 - └── 用的人越多,价值越高 - -4. 共识 - └── 大家都认为它有价值 - -5. 技术创新 - └── 解决现实问题 (跨境支付、去中心化金融) - -6. 投机需求 - └── 价格波动带来交易机会 -``` - ---- - -# 第二章 区块链基础 - -## 2.1 什么是区块链 - -**区块链 (Blockchain)** 是一个去中心化的分布式账本,由一系列按时间顺序连接的"区块"组成。 - -``` -区块链结构示意: - -┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ -│ 区块 0 │───→│ 区块 1 │───→│ 区块 2 │───→│ 区块 3 │ -│ (创世块) │ │ │ │ │ │ │ -└─────────┘ └─────────┘ └─────────┘ └─────────┘ - -每个区块包含: -├── 区块头 (Block Header) -│ ├── 前一区块的哈希值 (链接) -│ ├── 时间戳 -│ ├── 难度目标 -│ └── Nonce (工作量证明) -│ -└── 区块体 (Block Body) - └── 交易列表 (数百到数千笔) -``` - -## 2.2 哈希函数 - -**哈希 (Hash)** 是区块链的核心技术之一。 - -```python -# 哈希函数特性演示 -import hashlib - -# 输入任意长度,输出固定长度 -text1 = "Hello" -text2 = "Hello World, this is a very long message..." - -hash1 = hashlib.sha256(text1.encode()).hexdigest() -hash2 = hashlib.sha256(text2.encode()).hexdigest() - -print(f"短文本哈希: {hash1}") -# 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 - -print(f"长文本哈希: {hash2}") -# 64位十六进制,无论输入多长 - -# 微小改动 → 完全不同的输出 -text3 = "hello" # 小写 h -hash3 = hashlib.sha256(text3.encode()).hexdigest() -# 2cf24dba... vs 完全不同的值 -``` - -**哈希特性**: -1. **确定性**: 相同输入总是得到相同输出 -2. **单向性**: 无法从哈希值反推原文 -3. **雪崩效应**: 输入微小改动,输出完全不同 -4. **抗碰撞**: 几乎不可能找到两个不同输入产生相同输出 - -## 2.3 共识机制 - -### 工作量证明 (PoW - Proof of Work) - -``` -比特币使用 PoW: - -矿工任务: 找到一个 Nonce,使得区块哈希值小于难度目标 - -例如: 哈希值必须以 "0000000000" 开头 - -┌────────────────────────────────────────┐ -│ 尝试 Nonce = 0 │ -│ 哈希 = "8a3f2b1c..." ❌ 不符合 │ -│ │ -│ 尝试 Nonce = 1 │ -│ 哈希 = "f9e8d7c6..." ❌ 不符合 │ -│ │ -│ ... 尝试数十亿次 ... │ -│ │ -│ 尝试 Nonce = 4,129,372,891 │ -│ 哈希 = "000000000a3b..." ✅ 符合! │ -└────────────────────────────────────────┘ - -第一个找到的矿工获得出块权和奖励 -``` - -### 权益证明 (PoS - Proof of Stake) - -``` -以太坊 2.0 使用 PoS: - -不再比拼算力,而是比拼质押量 - -┌────────────────────────────────────────┐ -│ 验证者需要质押至少 32 ETH │ -│ │ -│ 系统随机选择验证者出块 │ -│ 质押越多,被选中概率越高 │ -│ │ -│ 验证者投票确认区块 │ -│ 作恶者会被罚没质押 (Slashing) │ -└────────────────────────────────────────┘ - -优点: 节能、更快、更安全 -缺点: 富者越富、中心化风险 -``` - -### 对比 - -| 特性 | PoW | PoS | -|------|-----|-----| -| 代表 | Bitcoin, LTC | Ethereum, SOL, ADA | -| 能源消耗 | 极高 | 极低 | -| 出块速度 | 慢 (BTC ~10分钟) | 快 (ETH ~12秒) | -| 参与门槛 | 需要矿机 | 需要代币质押 | -| 安全性 | 51%攻击成本高 | 经济攻击风险 | - -## 2.4 公钥密码学 - -``` -非对称加密 (公钥/私钥): - -┌─────────────────────────────────────────────────────┐ -│ │ -│ 私钥 (Private Key) - 绝对保密 │ -│ ↓ │ -│ 类似: 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ -│ │ -│ ↓ 椭圆曲线算法 (ECDSA) │ -│ │ -│ 公钥 (Public Key) - 可以公开 │ -│ ↓ │ -│ 类似: 04d0de0aaeaefad02b8bdc8a01a1b8b11c696bd3d66a2c5f10780d95b7df42645cd85228a6fb29940e858e7e55842ae2bd115d1ed7cc0e82d934e929c97648cb0a -│ │ -│ ↓ 哈希 + Base58 编码 │ -│ │ -│ 地址 (Address) - 收款用 │ -│ 类似: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 │ -│ │ -└─────────────────────────────────────────────────────┘ - -关系: -- 私钥 → 可以推导出 → 公钥 → 可以推导出 → 地址 -- 地址 → 无法反推 → 公钥 → 无法反推 → 私钥 -``` - -**签名与验证**: - -``` -发送交易流程: - -1. Alice 要转 1 BTC 给 Bob - -2. Alice 用私钥对交易签名 - 交易内容: "从 Alice地址 转 1 BTC 到 Bob地址" - 签名 = Sign(交易内容, Alice私钥) - -3. 广播到网络 - {交易内容, 签名, Alice公钥} - -4. 矿工/节点验证 - Verify(交易内容, 签名, Alice公钥) = True/False - -5. 验证通过 → 打包进区块 -``` - ---- - -# 第二章补充 区块链架构深入 - -## 2.5 主网与测试网 - -### 什么是主网 - -**主网 (Mainnet)** 是区块链正式运行的网络,所有交易都是真实的、有价值的。 - -``` -主网特点: -├── 真实资产,有经济价值 -├── 交易不可逆,永久记录 -├── 需要支付真实 Gas 费 -└── 全球节点共同维护 - -主网上线流程: -概念 → 白皮书 → 测试网 → 主网上线 → 生态建设 -``` - -### 测试网 - -**测试网 (Testnet)** 是用于开发和测试的网络,代币没有真实价值。 - -``` -常用测试网: - -Bitcoin: -└── Testnet3 - 主要测试网 -└── Signet - 更稳定的测试网 - -Ethereum: -├── Sepolia - 推荐使用 (PoS) -├── Goerli - 逐渐淘汰 -└── Holesky - 新测试网 - -Solana: -└── Devnet - 开发网 -└── Testnet - 测试网 - -获取测试币: -└── Faucet (水龙头) 免费领取 -└── Sepolia: sepoliafaucet.com -└── Solana: solfaucet.com -``` - -## 2.6 Layer 1 与 Layer 2 - -### Layer 1 (L1) - -**Layer 1** 是底层公链,提供基础的安全性和共识。 - -``` -Layer 1 架构: - -┌─────────────────────────────────────────────┐ -│ Layer 1 公链 │ -├─────────────────────────────────────────────┤ -│ 共识层: PoW/PoS/其他共识机制 │ -├─────────────────────────────────────────────┤ -│ 数据层: 区块存储、状态存储 │ -├─────────────────────────────────────────────┤ -│ 网络层: P2P 节点通信 │ -├─────────────────────────────────────────────┤ -│ 执行层: 交易处理、智能合约 │ -└─────────────────────────────────────────────┘ - -主要 L1 公链: -├── Bitcoin - 最安全,功能简单 -├── Ethereum - 智能合约标杆 -├── Solana - 高性能,低费用 -├── Avalanche - 三链架构 -├── Cardano - 学术派 -├── Polkadot - 异构多链 -└── Cosmos - 应用链生态 -``` - -### Layer 2 (L2) - -**Layer 2** 是建立在 L1 之上的扩容方案,继承 L1 的安全性。 - -``` -为什么需要 Layer 2? - -以太坊主网问题: -├── TPS 低: 约 15-30 笔/秒 -├── Gas 高: 高峰期 $50-$100/笔 -└── 拥堵: 交易确认慢 - -Layer 2 解决方案: -├── 批量处理交易 -├── 降低 Gas 费用 (降低 90%+) -├── 提高吞吐量 (提高 100 倍+) -└── 继承主网安全性 -``` - -### Layer 2 技术类型 - -``` -1. Optimistic Rollup (乐观汇总) - ├── 代表: Arbitrum, Optimism, Base - ├── 原理: 假设交易有效,出问题再纠错 - ├── 挑战期: 7 天 (提现需等待) - └── 特点: 兼容性好,EVM 等效 - -2. ZK Rollup (零知识汇总) - ├── 代表: zkSync, StarkNet, Scroll, Linea - ├── 原理: 用数学证明交易有效 - ├── 提现: 几分钟到几小时 - └── 特点: 安全性更高,技术更复杂 - -3. Validium - ├── 代表: Immutable X, StarkEx - ├── 原理: 数据存在链下 - └── 特点: 更便宜,但数据可用性风险 - -4. Plasma - ├── 代表: OMG Network (已衰落) - ├── 原理: 子链 + 欺诈证明 - └── 特点: 早期方案,逐渐被 Rollup 取代 -``` - -### Layer 2 对比 - -| 项目 | 类型 | TPS | Gas 费 | TVL | -|------|------|-----|--------|-----| -| Arbitrum | Optimistic | 4,000+ | ~$0.1 | ~$100亿 | -| Optimism | Optimistic | 2,000+ | ~$0.1 | ~$70亿 | -| Base | Optimistic | 2,000+ | ~$0.01 | ~$50亿 | -| zkSync Era | ZK | 2,000+ | ~$0.1 | ~$10亿 | -| StarkNet | ZK | 1,000+ | ~$0.1 | ~$5亿 | -| Polygon zkEVM | ZK | 2,000+ | ~$0.05 | ~$3亿 | - -### Layer 2 工作原理 - -``` -Rollup 工作流程: - -┌─────────────────────────────────────────────────────┐ -│ 用户 │ -│ ↓ │ -│ Layer 2 网络 │ -│ ┌─────────────────────────────────────┐ │ -│ │ 1. 收集用户交易 │ │ -│ │ 2. 批量打包 (数百/数千笔) │ │ -│ │ 3. 生成证明 (Optimistic/ZK) │ │ -│ │ 4. 压缩数据 │ │ -│ └─────────────────────────────────────┘ │ -│ ↓ │ -│ Layer 1 以太坊 │ -│ ┌─────────────────────────────────────┐ │ -│ │ 1. 接收压缩数据 + 证明 │ │ -│ │ 2. 验证有效性 │ │ -│ │ 3. 存储状态根 │ │ -│ └─────────────────────────────────────┘ │ -└─────────────────────────────────────────────────────┘ - -成本节省: -原本: 1000 笔交易 × $5 = $5000 -Rollup: 1 笔汇总交易 × $50 = $50 -每笔实际成本: $0.05 (节省 99%) -``` - -## 2.7 Avalanche 三链架构 (X/P/C 链) - -### 架构概述 - -Avalanche 采用独特的三链架构,每条链有不同的功能定位。 - -``` -Avalanche 三链架构: - -┌─────────────────────────────────────────────────────┐ -│ Avalanche 网络 │ -│ │ -│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ -│ │ X-Chain │ │ P-Chain │ │ C-Chain │ │ -│ │ (交易链) │ │ (平台链) │ │ (合约链) │ │ -│ └─────────┘ └─────────┘ └─────────┘ │ -│ ↓ ↓ ↓ │ -│ DAG 结构 链式结构 链式结构 │ -│ 资产转移 网络协调 智能合约 │ -│ │ -└─────────────────────────────────────────────────────┘ -``` - -### X-Chain (交换链) - -``` -X-Chain 详解: - -功能: 创建和交易数字资产 -共识: Avalanche Consensus (DAG) -特点: -├── 高吞吐量 (4,500+ TPS) -├── 亚秒级确认 (<1秒) -├── 原生资产支持 -└── 非 EVM 兼容 - -用途: -├── AVAX 代币转账 -├── 创建新资产 (类似 ERC-20) -├── NFT 发行 -└── 跨链资产转移 - -地址格式: X-avax1... -``` - -### P-Chain (平台链) - -``` -P-Chain 详解: - -功能: 网络协调和验证者管理 -共识: Snowman Consensus (线性链) -特点: -├── 管理验证者节点 -├── 创建和管理子网 -├── 质押 AVAX -└── 非 EVM 兼容 - -用途: -├── 成为验证者 (需质押 2000 AVAX) -├── 委托质押 -├── 创建子网 (Subnet) -├── 网络治理 - -地址格式: P-avax1... -``` - -### C-Chain (合约链) - -``` -C-Chain 详解: - -功能: 运行智能合约和 DApp -共识: Snowman Consensus -特点: -├── 完全 EVM 兼容 -├── 支持 Solidity -├── MetaMask 可直接使用 -└── 最常用的链 - -用途: -├── DeFi 应用 (Trader Joe, AAVE) -├── NFT 市场 -├── GameFi -├── 所有以太坊 DApp 可迁移 - -地址格式: 0x... (以太坊格式) - -网络参数: -├── Chain ID: 43114 -├── RPC: https://api.avax.network/ext/bc/C/rpc -└── 区块浏览器: snowtrace.io -``` - -### 三链之间的关系 - -``` -跨链转账流程: - -场景: 从交易所提币到 C-Chain 做 DeFi - -1. 交易所提币到 X-Chain - └── 交易所通常支持 X-Chain - -2. X-Chain → C-Chain 跨链 - └── 使用 Avalanche Bridge - └── 或在 Core Wallet 中操作 - -3. 在 C-Chain 使用 - └── 连接 MetaMask - └── 参与 DeFi - -费用: -├── X-Chain 转账: ~0.001 AVAX -├── 跨链转账: ~0.01 AVAX -└── C-Chain 操作: 根据 Gas -``` - -## 2.8 子网 (Subnet) - -### 什么是子网 - -**子网 (Subnet/Subnetwork)** 是区块链网络中的独立子网络,可以有自己的规则和验证者。 - -``` -子网概念: - -┌─────────────────────────────────────────────────────┐ -│ 主网 (Primary Network) │ -│ ┌─────────────────────────────────────────────┐ │ -│ │ X-Chain P-Chain C-Chain │ │ -│ └─────────────────────────────────────────────┘ │ -│ │ │ -│ ┌──────────────┼──────────────┐ │ -│ ↓ ↓ ↓ │ -│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ -│ │ Subnet A │ │ Subnet B │ │ Subnet C │ │ -│ │ 游戏链 │ │ DeFi链 │ │ 企业链 │ │ -│ └─────────┘ └─────────┘ └─────────┘ │ -└─────────────────────────────────────────────────────┘ - -子网特点: -├── 独立的验证者集合 -├── 自定义共识规则 -├── 自定义虚拟机 (不限于 EVM) -├── 自定义 Gas 代币 -└── 可设置准入门槛 (KYC) -``` - -### Avalanche 子网案例 - -| 子网 | 用途 | 特点 | -|------|------|------| -| DFK Chain | DeFi Kingdoms 游戏 | 游戏专用,JEWEL 付 Gas | -| Swimmer Network | Crabada 游戏 | 高性能游戏链 | -| DEXALOT | 订单簿 DEX | 中心化限价单 | -| Beam | 游戏平台 | Merit Circle 生态 | -| Shrapnel | AAA 游戏 | 射击游戏专用 | - -### 其他子网/应用链方案 - -``` -1. Cosmos 应用链 (App-Specific Chain) - ├── 使用 Cosmos SDK 构建 - ├── IBC 协议跨链通信 - └── 案例: Osmosis, dYdX v4, Injective - -2. Polkadot 平行链 (Parachain) - ├── 通过插槽拍卖获得 - ├── 共享中继链安全性 - └── 案例: Moonbeam, Acala, Astar - -3. OP Stack 应用链 - ├── Optimism 的模块化框架 - ├── Superchain 互操作 - └── 案例: Base, Zora, Mode - -4. Arbitrum Orbit - ├── Arbitrum 的 L3 方案 - ├── 可定制化程度高 - └── 案例: Xai (游戏) -``` - -## 2.9 分叉 (Fork) - -### 什么是分叉 - -**分叉 (Fork)** 是区块链协议的更改或分裂。 - -``` -分叉类型: - -1. 软分叉 (Soft Fork) - ├── 向后兼容的升级 - ├── 旧节点仍可工作 - └── 例: 比特币 SegWit - -2. 硬分叉 (Hard Fork) - ├── 不兼容的升级 - ├── 必须升级节点 - └── 可能导致链分裂 - -3. 代码分叉 (Code Fork) - ├── 复制代码创建新项目 - ├── 不影响原链 - └── 例: Litecoin 分叉自 Bitcoin 代码 -``` - -### 软分叉 vs 硬分叉 - -``` -软分叉 (Soft Fork): -┌────────────────────────────────────┐ -│ 区块 N-1 │ -│ ↓ │ -│ 区块 N (新规则) │ -│ ↙ ↘ │ -│ 新节点 旧节点 │ -│ (接受) (接受,视为有效) │ -│ ↘ ↙ │ -│ 区块 N+1 │ -│ (链统一) │ -└────────────────────────────────────┘ - -硬分叉 (Hard Fork): -┌────────────────────────────────────┐ -│ 区块 N-1 │ -│ ↓ │ -│ 区块 N (分叉点) │ -│ ↙ ↘ │ -│ 新链 原链 │ -│ (新规则) (旧规则) │ -│ ↓ ↓ │ -│ 区块 N+1' 区块 N+1 │ -│ ↓ ↓ │ -│ (两条独立的链) │ -└────────────────────────────────────┘ -``` - -### 著名分叉事件 - -| 时间 | 事件 | 类型 | 结果 | -|------|------|------|------| -| 2017 | Bitcoin → Bitcoin Cash | 硬分叉 | BCH 独立运行 | -| 2016 | Ethereum → Ethereum Classic | 硬分叉 | ETC 保留原链 | -| 2018 | BCH → BSV | 硬分叉 | BSV 独立运行 | -| 2017 | Bitcoin SegWit | 软分叉 | 主网升级成功 | -| 2022 | Ethereum PoS | 硬分叉 | ETH 转为 PoS | - -### 分叉的影响 - -``` -硬分叉后资产情况: - -如果你在分叉前持有 1 BTC: -分叉后你将拥有: -├── 1 BTC (原链) -└── 1 BCH (新链) - -注意事项: -├── 私钥相同,可控制两条链资产 -├── 需要分别操作两条链 -├── 交易所可能支持或不支持新链 -└── 小心重放攻击 (Replay Attack) -``` - -## 2.10 各国对加密货币的监管态度 - -### 监管态度分类 - -``` -全球监管光谱: - -完全禁止 ←────────────────────────────→ 完全支持 - │ │ │ │ │ - 中国 印度 美国 日本 萨尔瓦多 - │ │ │ │ │ - 禁止交易 灰色地带 监管中 合法支付 法定货币 -``` - -### 主要国家/地区政策 - -#### 🟢 支持/友好 - -``` -萨尔瓦多 🇸🇻 -├── 2021年 BTC 成为法定货币 -├── 国家持有 BTC 储备 -├── 推出 Chivo 钱包 -└── 计划建设 "比特币城" - -阿联酋 🇦🇪 -├── 迪拜设立虚拟资产监管局 (VARA) -├── 加密交易所可获牌照 -├── 积极吸引 Web3 企业 -└── 免税政策 - -新加坡 🇸🇬 -├── MAS 发放支付牌照 -├── 明确的监管框架 -├── 禁止向散户推广 -└── 机构投资友好 - -瑞士 🇨🇭 -├── "加密谷"楚格州 -├── 银行可托管加密资产 -├── 友好的税收政策 -└── 以太坊基金会注册地 - -日本 🇯🇵 -├── 2017年承认 BTC 为合法支付手段 -├── 交易所需 FSA 牌照 -├── 严格的投资者保护 -└── 稳定币法规明确 - -香港 🇭🇰 -├── 2023年开放散户交易 -├── 交易所牌照制度 (VASP) -├── 积极发展 Web3 中心 -└── SFC 监管框架 -``` - -#### 🟡 中立/观望 - -``` -美国 🇺🇸 -├── SEC vs CFTC 管辖权争议 -├── 持有合法,交易需报税 -├── 交易所需各州牌照 -├── 正在制定全面法规 -├── ETF 已获批准 (2024) -└── 对稳定币监管趋严 - -状态: -├── BTC ETF: ✅ 已批准 -├── ETH ETF: ✅ 已批准 -├── 交易: ✅ 合法 (需报税) -├── 支付: ⚠️ 各州不同 -└── 稳定币: ⚠️ 监管中 - -欧盟 🇪🇺 -├── MiCA 法规 2024 年生效 -├── 统一的监管框架 -├── 交易所需牌照 -├── 稳定币发行规定 -└── 反洗钱要求严格 - -英国 🇬🇧 -├── FCA 监管加密广告 -├── 交易所需注册 -├── 禁止加密衍生品 (散户) -├── 正在制定全面法规 -└── 对稳定币持开放态度 - -韩国 🇰🇷 -├── 实名制交易 -├── 交易所需银行合作 -├── 资本利得税 (20%+) -├── 2024年起实施 -└── 禁止匿名币 - -印度 🇮🇳 -├── 未明确禁止 -├── 30% 加密资本利得税 -├── 1% TDS (源头扣税) -├── 银行服务受限 -└── 政策仍在讨论中 -``` - -#### 🔴 限制/禁止 - -``` -中国 🇨🇳 -├── 2021年全面禁止 -├── 挖矿业务清退 -├── 交易所关闭 -├── 场外交易违法 -└── 持有仍合法 (灰色地带) - -禁令范围: -├── 加密货币交易: ❌ -├── 挖矿业务: ❌ -├── ICO/IEO: ❌ -├── 交易所运营: ❌ -└── 个人持有: ⚠️ 法律未明确 - -俄罗斯 🇷🇺 -├── 禁止作为支付手段 -├── 允许持有和挖矿 -├── 2024年允许部分跨境支付 -├── 交易所不合法 -└── 态度有所松动 - -土耳其 🇹🇷 -├── 禁止加密支付 -├── 交易所监管不明 -├── 资本管制下的灰色地带 -└── 民间使用普遍 - -越南 🇻🇳 -├── 禁止作为支付手段 -├── 持有不违法 -├── 无交易所牌照制度 -└── 监管框架待完善 -``` - -### 监管政策对比表 - -| 国家/地区 | 交易 | 持有 | 挖矿 | 支付 | 税收 | -|-----------|------|------|------|------|------| -| 美国 | ✅ | ✅ | ✅ | ⚠️ | 资本利得税 | -| 日本 | ✅ | ✅ | ✅ | ✅ | 最高55% | -| 新加坡 | ✅ | ✅ | ✅ | ✅ | 无资本利得税 | -| 香港 | ✅ | ✅ | ✅ | ⚠️ | 无资本利得税 | -| 欧盟 | ✅ | ✅ | ✅ | ⚠️ | 各国不同 | -| 韩国 | ✅ | ✅ | ✅ | ❌ | 20%+ | -| 中国 | ❌ | ⚠️ | ❌ | ❌ | N/A | -| 印度 | ⚠️ | ✅ | ✅ | ❌ | 30% | -| 俄罗斯 | ⚠️ | ✅ | ✅ | ❌ | 13-15% | -| 阿联酋 | ✅ | ✅ | ✅ | ✅ | 0% | - -### 选择交易所的地理考量 - -``` -根据所在地选择: - -中国大陆用户: -├── 推荐: Binance, OKX (海外) -├── 需要: VPN/代理 -├── 注意: C2C 入金风险 -└── 建议: 小额分散 - -香港用户: -├── 推荐: HashKey, OSL (持牌) -├── 或: Binance, OKX (国际版) -└── 注意: 选择持牌平台更安全 - -美国用户: -├── 推荐: Coinbase, Kraken, Gemini -├── 注意: 各州法规不同 -└── 必须: 报税合规 - -日本用户: -├── 推荐: bitFlyer, Coincheck, GMO Coin -├── 必须: FSA 持牌交易所 -└── 注意: 严格的 KYC - -欧盟用户: -├── 推荐: Kraken, Bitstamp, Coinbase EU -├── 2024后: MiCA 合规交易所 -└── 注意: 各国税务规定 -``` - -### 监管趋势展望 - -``` -全球趋势: - -1. 统一监管框架 - └── MiCA (欧盟) 树立标杆 - └── 其他地区参考跟进 - -2. 稳定币监管加强 - └── 储备金要求 - └── 审计披露 - └── 发行牌照 - -3. ETF 主流化 - └── BTC ETF 已批准 - └── ETH ETF 已批准 - └── 更多产品在路上 - -4. 反洗钱升级 - └── Travel Rule 实施 - └── KYC 要求提高 - └── 链上分析普及 - -5. CBDC 竞争 - └── 数字人民币 - └── 数字欧元 - └── 可能影响稳定币 -``` - ---- - -# 第三章 链上数据详解 - -## 3.1 什么是链上数据 - -**链上数据 (On-Chain Data)** 是指直接记录在区块链上的所有信息。 - -``` -链上数据 vs 链下数据: - -链上数据 (On-Chain): -├── 所有交易记录 -├── 账户余额 -├── 智能合约状态 -├── 区块信息 -└── 完全透明公开 - -链下数据 (Off-Chain): -├── 交易所内部转账 -├── 订单簿信息 -├── 用户身份信息 -└── 不在区块链上 -``` - -## 3.2 链上数据类型 - -### 1. 交易数据 (Transaction) - -```json -{ - "txid": "abc123...", - "from": "0x1234...abcd", - "to": "0x5678...efgh", - "value": "1.5 ETH", - "gas": 21000, - "gasPrice": "50 Gwei", - "nonce": 42, - "timestamp": 1706000000, - "blockNumber": 19000000 -} -``` - -**关键字段解释**: -| 字段 | 含义 | -|------|------| -| txid | 交易唯一标识 (哈希) | -| from | 发送方地址 | -| to | 接收方地址 | -| value | 转账金额 | -| gas | 燃料上限 | -| gasPrice | 燃料单价 | -| nonce | 发送方交易计数器 | - -### 2. 区块数据 (Block) - -```json -{ - "number": 19000000, - "hash": "0xabc...", - "parentHash": "0xdef...", - "timestamp": 1706000000, - "miner": "0x1234...", - "gasUsed": 12000000, - "gasLimit": 30000000, - "transactions": ["tx1", "tx2", "tx3", ...], - "transactionCount": 150 -} -``` - -### 3. 地址数据 (Address) - -``` -普通地址 (EOA - Externally Owned Account): -├── 余额 -├── 交易历史 -├── Nonce -└── 由私钥控制 - -合约地址 (Contract Account): -├── 余额 -├── 代码 (Code) -├── 存储状态 (Storage) -└── 由代码逻辑控制 -``` - -### 4. 智能合约数据 - -```solidity -// ERC-20 代币合约存储的数据 -contract MyToken { - string public name = "MyToken"; // 代币名称 - string public symbol = "MTK"; // 代币符号 - uint256 public totalSupply; // 总供应量 - mapping(address => uint256) balances; // 每个地址的余额 - mapping(address => mapping(address => uint256)) allowances; // 授权额度 -} -``` - -## 3.3 如何查看链上数据 - -### 区块浏览器 - -| 链 | 浏览器 | 网址 | -|-----|--------|------| -| Bitcoin | Blockchain.com | https://www.blockchain.com/explorer | -| Ethereum | Etherscan | https://etherscan.io | -| BSC | BscScan | https://bscscan.com | -| Solana | Solscan | https://solscan.io | -| Polygon | Polygonscan | https://polygonscan.com | - -### 使用 Etherscan 示例 - -``` -1. 查询地址 - https://etherscan.io/address/0x地址 - - 可以看到: - ├── ETH 余额 - ├── 代币余额 - ├── 交易历史 - └── 内部交易 - -2. 查询交易 - https://etherscan.io/tx/0x交易哈希 - - 可以看到: - ├── 交易状态 (成功/失败) - ├── 区块确认数 - ├── 发送/接收方 - ├── 转账金额 - ├── Gas 费用 - └── 输入数据 - -3. 查询代币 - https://etherscan.io/token/0x代币合约地址 - - 可以看到: - ├── 持有人数量 - ├── 转账次数 - ├── 持仓分布 - └── 代币信息 -``` - -## 3.4 链上数据分析 - -### 常用指标 - -``` -1. 活跃地址数 (Active Addresses) - └── 每日有交易的唯一地址数 - └── 反映网络活跃度 - -2. 交易量 (Transaction Volume) - └── 链上转移的总价值 - └── 反映资金流动 - -3. 交易数 (Transaction Count) - └── 每日交易笔数 - └── 反映使用频率 - -4. Gas 使用量 - └── 网络计算消耗 - └── 反映链上活动强度 - -5. 新地址数 (New Addresses) - └── 新创建的地址数量 - └── 反映新用户增长 -``` - -### 高级链上分析 - -``` -1. 巨鲸追踪 (Whale Watching) - └── 监控大额转账 - └── 交易所流入/流出 - └── 例: 大量 BTC 转入交易所 → 可能抛售 - -2. 持仓分析 (Holder Analysis) - └── 持币地址分布 - └── 长期持有者 vs 短期投机者 - └── 筹码集中度 - -3. 交易所流量 (Exchange Flow) - └── 流入交易所 → 卖压 - └── 流出交易所 → 囤币 - -4. UTXO 年龄分析 (比特币) - └── 长期未动的币 → 强手持有 - └── 老币开始移动 → 可能变盘 - -5. DeFi 数据 - └── TVL (Total Value Locked) - └── 借贷利率 - └── DEX 交易量 -``` - -### 链上数据工具 - -| 工具 | 用途 | 网址 | -|------|------|------| -| Glassnode | 专业链上分析 | glassnode.com | -| Nansen | 智能钱包标签 | nansen.ai | -| Dune Analytics | 自定义查询 | dune.com | -| DefiLlama | DeFi TVL | defillama.com | -| Token Terminal | 协议收入 | tokenterminal.com | -| Arkham | 地址标签 | arkhamintelligence.com | - -## 3.5 链上数据 API - -### 使用 Web3.py 查询以太坊 - -```python -from web3 import Web3 - -# 连接节点 (可用 Infura, Alchemy 等) -w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/YOUR_KEY')) - -# 查询区块 -block = w3.eth.get_block('latest') -print(f"最新区块: {block.number}") -print(f"区块哈希: {block.hash.hex()}") -print(f"交易数量: {len(block.transactions)}") - -# 查询余额 -address = '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe' -balance = w3.eth.get_balance(address) -print(f"余额: {w3.from_wei(balance, 'ether')} ETH") - -# 查询交易 -tx = w3.eth.get_transaction('0x交易哈希') -print(f"发送方: {tx['from']}") -print(f"接收方: {tx['to']}") -print(f"金额: {w3.from_wei(tx['value'], 'ether')} ETH") - -# 查询 ERC-20 代币余额 -ERC20_ABI = [ - { - "constant": True, - "inputs": [{"name": "_owner", "type": "address"}], - "name": "balanceOf", - "outputs": [{"name": "balance", "type": "uint256"}], - "type": "function" - } -] - -usdt_contract = w3.eth.contract( - address='0xdAC17F958D2ee523a2206206994597C13D831ec7', # USDT - abi=ERC20_ABI -) -usdt_balance = usdt_contract.functions.balanceOf(address).call() -print(f"USDT 余额: {usdt_balance / 1e6}") -``` - -### 使用 Dune Analytics SQL - -```sql --- 查询过去24小时 ETH 转账大户 -SELECT - "from" as sender, - "to" as receiver, - value / 1e18 as eth_amount, - block_time -FROM ethereum.transactions -WHERE block_time > now() - interval '24 hours' - AND value > 1000 * 1e18 -- 大于 1000 ETH -ORDER BY value DESC -LIMIT 100; - --- 查询 Uniswap 每日交易量 -SELECT - date_trunc('day', block_time) as day, - COUNT(*) as swap_count, - SUM(amount_usd) as volume_usd -FROM uniswap_v3_ethereum.trades -WHERE block_time > now() - interval '30 days' -GROUP BY 1 -ORDER BY 1; -``` - ---- - -# 第四章 如何交易加密货币 - -## 4.1 交易方式 - -``` -交易方式对比: - -1. 中心化交易所 (CEX) - ├── Binance, OKX, Coinbase - ├── 优点: 流动性好、速度快、功能全 - └── 缺点: 需要 KYC、资产托管、有跑路风险 - -2. 去中心化交易所 (DEX) - ├── Uniswap, PancakeSwap, Jupiter - ├── 优点: 无需 KYC、资产自持、抗审查 - └── 缺点: Gas 高、滑点大、功能有限 - -3. P2P 交易 - ├── 交易所 P2P、场外 OTC - ├── 优点: 法币直接交易、隐私性好 - └── 缺点: 风险高、需要信任 -``` - -## 4.2 中心化交易所交易流程 - -### 第一步: 注册与 KYC - -``` -1. 选择交易所 - 推荐: Binance (全球), OKX (合约), Coinbase (合规) - -2. 注册账号 - - 邮箱或手机号 - - 设置强密码 - - 启用两步验证 (2FA) - -3. 身份认证 (KYC) - - LV1: 身份证 → 可交易,限额提币 - - LV2: 人脸识别 → 更高额度 - - LV3: 地址证明 → 机构级别 -``` - -### 第二步: 入金 - -``` -入金方式: - -1. 法币入金 (适合新手) - ├── C2C/P2P 交易 - │ └── 向其他用户购买 USDT - │ └── 支付宝/微信/银行卡 - │ - ├── 信用卡购买 (部分地区) - │ └── 费用较高 (3-5%) - │ - └── 银行转账 (海外) - └── SWIFT, SEPA - -2. 数字货币入金 - └── 从其他钱包/交易所转入 - └── 注意选对网络 (ERC20/TRC20/BEP20) -``` - -### 第三步: 交易 - -#### 现货交易 - -``` -基本概念: - -交易对: BTC/USDT -├── 基础货币: BTC (要买卖的) -└── 计价货币: USDT (用来定价的) - -订单类型: -├── 市价单: 立即成交,按当前价格 -├── 限价单: 指定价格,等待成交 -├── 止损单: 价格触发后执行 -└── OCO单: 二选一订单 -``` - -**交易界面解读**: - -``` -┌─────────────────────────────────────────────────────┐ -│ BTC/USDT │ -│ │ -│ 价格: $97,500.00 24h涨跌: +2.5% │ -│ │ -├─────────────────────────────────────────────────────┤ -│ 卖单 (Ask) │ 买单 (Bid) │ -│ 97,550 0.5 BTC │ 97,450 0.3 BTC │ -│ 97,520 1.2 BTC │ 97,420 0.8 BTC │ -│ 97,500 0.8 BTC │ 97,400 1.5 BTC │ -│ ──────────────────────────────────────────────── │ -│ 最新成交: $97,500 │ -├─────────────────────────────────────────────────────┤ -│ [买入] [卖出] │ -│ 数量: _______ BTC │ -│ 价格: _______ USDT (限价单) │ -│ 金额: _______ USDT │ -└─────────────────────────────────────────────────────┘ -``` - -#### 合约交易 - -``` -永续合约特点: - -1. 杠杆交易 - └── 1x - 125x 杠杆 - └── 放大收益和风险 - -2. 双向交易 - └── 做多: 看涨买入 - └── 做空: 看跌卖出 - -3. 资金费率 - └── 每 8 小时结算一次 - └── 多空双方互相支付 - -4. 强制平仓 - └── 亏损超过保证金会被强平 -``` - -**合约交易示例**: - -``` -场景: 你有 $1,000 USDT,看涨 BTC - -使用 10 倍杠杆: -├── 开仓金额: $10,000 -├── 保证金: $1,000 -├── 开仓价格: $100,000 -├── 持仓数量: 0.1 BTC - -情况1: BTC 涨到 $105,000 (+5%) -├── 持仓价值: $10,500 -├── 盈利: $500 -├── 收益率: +50% (5% × 10倍) - -情况2: BTC 跌到 $95,000 (-5%) -├── 持仓价值: $9,500 -├── 亏损: $500 -├── 收益率: -50% - -情况3: BTC 跌到 $90,000 (-10%) -├── 亏损超过保证金 -├── 触发强制平仓 -└── 损失全部 $1,000 -``` - -### 第四步: 出金 - -``` -出金方式: - -1. 数字货币提现 - └── 提到自己的钱包 - └── 注意网络选择和地址正确 - └── 有最低提币金额和手续费 - -2. 法币提现 - └── C2C 卖出换回法币 - └── 注意收款账户安全 -``` - -## 4.3 去中心化交易所 (DEX) - -### Uniswap 交易流程 - -``` -1. 准备钱包 - └── MetaMask, Trust Wallet 等 - └── 确保有 ETH 支付 Gas - -2. 连接钱包 - └── 访问 app.uniswap.org - └── 点击 "Connect Wallet" - -3. 选择代币 - └── 从: ETH - └── 到: USDT - └── 输入数量 - -4. 确认交易 - └── 检查汇率和滑点 - └── 确认 Gas 费用 - └── 签名并发送交易 - -5. 等待确认 - └── 通常 1-5 分钟 - └── 可在 Etherscan 查看状态 -``` - -### AMM 原理 - -``` -自动做市商 (Automated Market Maker): - -传统订单簿: -买家 ←→ 卖家 (需要匹配) - -AMM 流动性池: -用户 ←→ 流动性池 ←→ 用户 - -恒定乘积公式: x × y = k - -例如 ETH/USDT 池: -初始: 100 ETH × 300,000 USDT = 30,000,000 - -买入 1 ETH: -└── 池变成: 99 ETH × ? USDT = 30,000,000 -└── ? = 30,000,000 / 99 = 303,030 USDT -└── 需支付: 303,030 - 300,000 = 3,030 USDT -└── 实际价格: 3,030 USDT/ETH (高于初始价 3,000) - -滑点: 买入量越大,价格偏离越大 -``` - -## 4.4 交易策略入门 - -### 基本策略 - -``` -1. 定投 (DCA - Dollar Cost Averaging) - └── 固定时间投入固定金额 - └── 分散买入时机风险 - └── 适合长期投资 - -2. 网格交易 - └── 设定价格区间 - └── 低买高卖自动执行 - └── 适合震荡行情 - -3. 趋势跟踪 - └── 顺势而为 - └── 突破买入,跌破卖出 - └── 适合单边行情 - -4. 套利 - └── 利用价差获利 - └── 跨交易所、期现、资金费率 - └── 需要技术支持 -``` - -### 风险管理 - -``` -铁律: - -1. 只投资能承受损失的钱 - └── 永远不要借钱炒币 - └── 不要影响生活 - -2. 分散投资 - └── 不要全仓单一币种 - └── BTC + ETH 作为底仓 - -3. 设置止损 - └── 提前设定最大亏损 - └── 严格执行,不要心存幻想 - -4. 控制杠杆 - └── 新手不要用杠杆 - └── 老手控制在 3-5 倍内 - -5. 避免 FOMO - └── 不要追涨杀跌 - └── 错过就错过,下次再来 -``` - ---- - -# 第五章 挖矿详解 - -## 5.1 什么是挖矿 - -**挖矿 (Mining)** 是通过计算机算力参与区块链网络维护,获得代币奖励的过程。 - -``` -挖矿的作用: - -1. 产生新币 - └── 矿工奖励 = 新币发行 - -2. 验证交易 - └── 打包交易进入区块 - -3. 维护安全 - └── 算力越大,网络越安全 -``` - -## 5.2 挖矿类型 - -### PoW 挖矿 (算力挖矿) - -``` -工作量证明挖矿: - -适用币种: BTC, LTC, DOGE, KAS, etc. - -设备: -├── ASIC 矿机 (专业芯片) -│ └── 比特币: Antminer S21, Whatsminer M60 -│ └── 莱特币: Antminer L7 -│ └── 效率最高,但只能挖特定币 -│ -├── GPU 矿机 (显卡) -│ └── 可挖多种币 -│ └── NVIDIA RTX 4090, AMD RX 7900 -│ └── 以太坊转 PoS 后需求下降 -│ -└── CPU 挖矿 - └── 收益很低 - └── 基本已淘汰 -``` - -**比特币挖矿经济学**: - -``` -当前情况 (2024/2025): - -区块奖励: 3.125 BTC (2024年减半后) -出块时间: ~10 分钟 -日产出: 450 BTC - -挖矿成本: -├── 矿机成本: $3,000-$10,000/台 -├── 电费: $0.05-$0.10/kWh (主要成本) -├── 托管费: $50-$100/月/台 -├── 运维成本: 人工、维修、冷却 -└── 折旧: 矿机寿命 3-5 年 - -收益计算示例: -设备: Antminer S21 (200 TH/s) -功耗: 3500W -电费: $0.06/kWh - -日收益 ≈ 0.00045 BTC × $97,000 = $43.65 -日电费 = 3.5kW × 24h × $0.06 = $5.04 -日净收益 = $38.61 -月净收益 = $1,158 -回本周期 = $5,000 / $1,158 ≈ 4.3 个月 - -注意: 收益随难度和币价波动 -``` - -### PoS 质押 (Staking) - -``` -权益证明挖矿: - -适用币种: ETH, SOL, ADA, DOT, ATOM, etc. - -原理: -└── 质押代币成为验证者 -└── 随机被选中出块获得奖励 -└── 无需硬件算力 - -质押方式: -├── 自建节点 -│ └── 需要技术能力 -│ └── ETH 需要 32 ETH 起 -│ -├── 交易所质押 -│ └── 最简单 -│ └── Binance, OKX 等提供 -│ └── 收益会被抽成 -│ -└── 流动性质押 - └── Lido (stETH) - └── 质押同时保持流动性 -``` - -**主流 PoS 收益率**: - -| 币种 | 年化收益 | 最低质押 | 锁定期 | -|------|----------|----------|--------| -| ETH | 3-5% | 0.01 ETH (交易所) | 可随时 | -| SOL | 6-8% | 无最低 | 2-3 天解锁 | -| ADA | 4-5% | 无最低 | 无锁定 | -| DOT | 10-14% | 120 DOT | 28 天解锁 | -| ATOM | 15-20% | 无最低 | 21 天解锁 | - -### 流动性挖矿 (DeFi) - -``` -提供流动性获取收益: - -原理: -└── 向 DEX 流动性池存入代币 -└── 获得交易手续费分成 -└── 可能获得额外代币奖励 - -示例: Uniswap ETH/USDC 池 -├── 存入 1 ETH + 3000 USDC -├── 获得 LP Token (流动性证明) -├── 每笔交易 0.3% 手续费按比例分配 -└── 年化收益: 5-30% (取决于交易量) - -风险: -├── 无常损失 (Impermanent Loss) -│ └── 价格波动导致的隐性亏损 -│ └── 单边涨跌时损失更大 -│ -├── 智能合约风险 -│ └── 代码漏洞被攻击 -│ -└── 代币归零风险 - └── 小币种可能归零 -``` - -## 5.3 挖矿实操指南 - -### 比特币挖矿步骤 - -``` -1. 购买矿机 - └── 官方渠道或二手市场 - └── 注意真伪和保修 - -2. 选择矿池 - └── F2Pool, AntPool, Foundry - └── 根据费率和收益模式选择 - -3. 托管或自建 - ├── 托管 (推荐新手) - │ └── 找专业矿场 - │ └── 支付电费+管理费 - │ - └── 自建 (需要条件) - └── 便宜电费 - └── 散热通风 - └── 稳定网络 - -4. 配置矿机 - └── 设置矿池地址 - └── 设置钱包地址 - └── 开始挖矿 - -5. 监控收益 - └── 矿池网站查看算力和收益 - └── 定期提币到钱包 -``` - -### 以太坊质押步骤 - -``` -方式一: 交易所质押 (最简单) - -1. 登录 Binance/OKX -2. 找到 "Earn" 或 "理财" -3. 选择 ETH 质押 -4. 输入数量,确认 -5. 每天自动发放收益 - -方式二: Lido 流动性质押 - -1. 准备 MetaMask 钱包 + ETH -2. 访问 stake.lido.fi -3. 连接钱包 -4. 输入质押数量 -5. 确认交易 -6. 获得 stETH (可继续使用) - -方式三: 自建验证节点 (高级) - -需要: -├── 32 ETH -├── 稳定服务器 (24/7 在线) -├── 技术能力 -└── 执行客户端 + 共识客户端 -``` - -### 流动性挖矿步骤 - -``` -以 Uniswap 为例: - -1. 准备钱包和资产 - └── MetaMask + ETH + USDC - -2. 访问 Uniswap - └── app.uniswap.org - -3. 选择 "Pool" → "New Position" - -4. 选择交易对 - └── ETH / USDC - -5. 设置价格区间 (V3) - └── 窄区间: 高收益高风险 - └── 宽区间: 低收益低风险 - -6. 存入资产 - └── 按比例存入两种代币 - -7. 确认交易 - └── 支付 Gas 费 - -8. 监控和管理 - └── 查看手续费收入 - └── 必要时调整区间 -``` - -## 5.4 挖矿收益计算 - -### 在线计算器 - -| 工具 | 网址 | 用途 | -|------|------|------| -| WhatToMine | whattomine.com | GPU/ASIC 收益 | -| F2Pool 收益计算 | f2pool.com | BTC/ETH 等 | -| Staking Rewards | stakingrewards.com | PoS 收益 | - -### 关键指标 - -``` -PoW 挖矿: - -1. 算力 (Hashrate) - └── 每秒计算次数 - └── BTC: TH/s, ETH: MH/s - -2. 功耗 (Power) - └── 消耗的电力 - └── 单位: W (瓦) - -3. 能效比 - └── J/TH 或 W/MH - └── 越低越好 - -4. 难度 (Difficulty) - └── 网络整体算力决定 - └── 难度涨,单位收益降 - -5. 电费 - └── 最大的持续成本 - └── $0.03-$0.10/kWh 有竞争力 -``` - ---- - -# 第六章 钱包与安全 - -## 6.1 钱包类型 - -``` -钱包分类: - -按联网状态: -├── 热钱包 (Hot Wallet) - 联网 -│ └── 便捷但风险较高 -│ -└── 冷钱包 (Cold Wallet) - 离线 - └── 安全但不便捷 - -按形态: -├── 软件钱包 (App) -│ └── MetaMask, Trust Wallet, imToken -│ -├── 硬件钱包 (专用设备) -│ └── Ledger, Trezor, OneKey -│ -├── 纸钱包 (打印) -│ └── 把私钥打印在纸上 -│ -└── 托管钱包 (交易所) - └── 私钥由交易所保管 -``` - -### 热钱包推荐 - -| 钱包 | 支持链 | 平台 | 特点 | -|------|--------|------|------| -| MetaMask | EVM 链 | 浏览器/手机 | 最流行,DApp 首选 | -| Trust Wallet | 多链 | 手机 | Binance 旗下,功能全 | -| Phantom | Solana | 浏览器/手机 | Solana 生态首选 | -| OKX Wallet | 多链 | 多平台 | 多链聚合 | -| Rabby | EVM 链 | 浏览器 | 安全提示好 | - -### 硬件钱包推荐 - -| 钱包 | 价格 | 特点 | -|------|------|------| -| Ledger Nano S Plus | $79 | 性价比高 | -| Ledger Nano X | $149 | 蓝牙连接 | -| Trezor Model One | $69 | 开源 | -| Trezor Model T | $219 | 触摸屏 | -| OneKey Pro | ¥999 | 国产,中文友好 | - -## 6.2 钱包使用 - -### 创建钱包 - -``` -1. 下载官方应用 - └── 只从官网下载,防钓鱼 - -2. 创建新钱包 - └── 生成助记词 (12/24 个单词) - -3. 备份助记词 ⚠️ 最重要 - └── 手抄在纸上 - └── 不要截图、不要云存储 - └── 存放在安全的地方 - -4. 验证助记词 - └── 按顺序输入验证 - -5. 设置密码 - └── 保护本地应用 -``` - -### 助记词安全 - -``` -助记词 = 你的全部资产 - -正确做法: -✅ 手写在纸上 -✅ 多份备份,存放不同地点 -✅ 可以用金属板刻录 (防火防水) -✅ 告知信任的家人存放位置 - -错误做法: -❌ 存在手机相册 -❌ 存在云盘/网盘 -❌ 发送给任何人 -❌ 在任何网站输入 -❌ 存在电脑文件 -``` - -## 6.3 安全最佳实践 - -### 防钓鱼 - -``` -常见钓鱼方式: - -1. 假网站 - └── 山寨交易所、钱包网站 - └── 检查网址拼写 - └── 使用书签访问 - -2. 假客服 - └── 假装官方联系你 - └── 要求提供私钥/助记词 - └── 官方永远不会主动私聊 - -3. 恶意空投 - └── 收到不明代币 - └── 不要交互,可能盗取授权 - -4. 假 App - └── 应用商店假冒 App - └── 只从官网下载链接 -``` - -### 授权管理 - -``` -智能合约授权风险: - -使用 DApp 时,会授权合约使用你的代币 -恶意合约可能转走所有授权的代币 - -检查工具: -├── Revoke.cash -├── Etherscan Token Approvals -└── DeBank - -建议: -1. 只授权需要的数量,不要 Unlimited -2. 用完及时撤销授权 -3. 定期检查清理旧授权 -``` - -### 资产分散 - -``` -安全架构建议: - -1. 热钱包 (10-20%) - └── 日常交互、小额资产 - └── MetaMask, Trust Wallet - -2. 交易所 (20-30%) - └── 交易用资产 - └── 选择大所,开启所有安全选项 - -3. 冷钱包 (50-70%) - └── 长期持有的大额资产 - └── 硬件钱包 - └── 只转入,很少转出 -``` - ---- - -# 第七章 DeFi 入门 - -## 7.1 什么是 DeFi - -**DeFi (Decentralized Finance)** = 去中心化金融 - -``` -传统金融 vs DeFi: - -传统金融: -├── 银行存款 → DeFi 借贷 (Aave, Compound) -├── 证券交易所 → DEX (Uniswap, Curve) -├── 资产管理 → 收益聚合器 (Yearn) -├── 保险公司 → 链上保险 (Nexus Mutual) -└── 衍生品交易 → 链上衍生品 (GMX, dYdX) - -DeFi 优势: -├── 无需许可: 任何人可参与 -├── 透明: 代码开源,规则明确 -├── 可组合: 像乐高一样组合 -└── 7×24: 永不停机 -``` - -## 7.2 主要 DeFi 协议 - -### 借贷协议 - -``` -Aave / Compound: - -存款: -└── 存入 ETH,获得利息 -└── 年化 2-10% 不等 - -借款: -└── 超额抵押借款 -└── 如: 存入 $1000 ETH,可借 $700 USDC -└── 需支付利息 - -清算: -└── 抵押率低于阈值会被清算 -└── 清算人获得奖励 -``` - -### DEX 协议 - -``` -Uniswap / SushiSwap / Curve: - -交易: -└── 无需注册 -└── 即时兑换代币 -└── 自动做市商定价 - -提供流动性: -└── 存入代币对 -└── 赚取交易手续费 -└── 承担无常损失风险 -``` - -### 收益聚合 - -``` -Yearn Finance: - -原理: -└── 自动寻找最高收益策略 -└── 用户存入资产 -└── 协议自动挖矿、复投 - -优势: -├── 省 Gas (批量操作) -├── 自动复投 -└── 策略优化 -``` - -## 7.3 DeFi 风险 - -``` -主要风险: - -1. 智能合约风险 - └── 代码漏洞被黑客攻击 - └── 2022年损失超过 $30亿 - -2. 无常损失 - └── 提供流动性的隐性损失 - └── 价格波动越大损失越大 - -3. 清算风险 - └── 借贷仓位被清算 - └── 需要时刻关注健康系数 - -4. 治理风险 - └── 项目方作恶或决策失误 - └── 代币模型不可持续 - -5. 监管风险 - └── 政策不确定性 -``` - ---- - -# 第八章 常见问题 FAQ - -## 入门问题 - -**Q: 买币最低需要多少钱?** -``` -A: 技术上几美元就可以开始。 -建议新手先用小额 (如 $100-$500) 熟悉流程, -不要一开始就投入大量资金。 -``` - -**Q: 加密货币在中国合法吗?** -``` -A: 持有加密货币是合法的。 -但交易所和挖矿业务被禁止在国内运营。 -大多数用户使用海外交易所。 -``` - -**Q: 如何选择第一个币?** -``` -A: 建议从 BTC 和 ETH 开始。 -这两个是市场最大、最稳定的币。 -等熟悉后再考虑其他币种。 -``` - -## 交易问题 - -**Q: 现货和合约有什么区别?** -``` -A: -现货: 真正买入持有币,涨了赚跌了亏 -合约: 类似赌涨跌,可以用杠杆放大收益/亏损 - -新手强烈建议只做现货。 -合约杠杆容易爆仓,风险极高。 -``` - -**Q: 什么时候买入最好?** -``` -A: 没人能准确预测市场。 -定投策略是降低择时风险的好方法: -每周/每月固定金额买入,长期持有。 -``` - -**Q: 手续费怎么计算?** -``` -A: 主要费用: -1. 交易手续费: 0.1% 左右 (买卖各一次) -2. 提币手续费: 按币种和网络不同 -3. 合约资金费率: 每8小时结算 - -高频交易要特别注意手续费成本。 -``` - -## 安全问题 - -**Q: 忘记助记词怎么办?** -``` -A: 如果完全忘记且没有备份, -资产将永久丢失,无法找回。 -这就是为什么备份助记词如此重要。 -``` - -**Q: 交易所安全吗?** -``` -A: 有一定风险。历史上有交易所被黑或跑路。 -建议: -1. 选择大型知名交易所 -2. 开启所有安全选项 (2FA、提币白名单) -3. 大额资产转到自己的钱包 -``` - -**Q: 收到空投币要处理吗?** -``` -A: 不明来源的空投不要交互! -很可能是钓鱼骗局。 -交互后可能授权恶意合约,导致资产被盗。 -``` - -## 挖矿问题 - -**Q: 现在挖比特币还赚钱吗?** -``` -A: 取决于电费和设备成本。 -如果电费 < $0.05/kWh 且有专业设备, -可能盈利。普通人很难与大矿场竞争。 -``` - -**Q: 质押有风险吗?** -``` -A: 有一定风险: -1. 锁定期间币价下跌 -2. 验证者作恶被罚没 -3. 协议漏洞 - -相比主动挖矿,质押风险相对较低。 -``` - ---- - -## 学习资源 - -### 书籍 -- 《精通比特币》- Andreas Antonopoulos -- 《精通以太坊》- Andreas Antonopoulos - -### 网站 -- CoinMarketCap / CoinGecko - 行情数据 -- Messari - 研究报告 -- The Block - 行业新闻 - -### 社区 -- Twitter (X) - 行业动态 -- Discord - 项目社区 -- Telegram - 中文社群 - ---- - -## 最后的建议 - -``` -1. 循序渐进 - └── 先学习,再投入 - └── 从小额开始 - -2. 控制风险 - └── 只投资能承受损失的钱 - └── 分散投资 - -3. 保持学习 - └── 行业变化快 - └── 持续关注新技术和趋势 - -4. 警惕骗局 - └── 收益过高的项目要警惕 - └── DYOR (Do Your Own Research) - -5. 长期视角 - └── 不要追涨杀跌 - └── 关注技术和应用价值 -``` - -> ⚠️ 本文档仅供学习参考,不构成投资建议。加密货币投资风险极高,请谨慎决策,对自己的投资负责。 diff --git a/docs/Exchange_Fees_API_Analysis.md b/docs/Exchange_Fees_API_Analysis.md deleted file mode 100644 index fa5fc12..0000000 --- a/docs/Exchange_Fees_API_Analysis.md +++ /dev/null @@ -1,795 +0,0 @@ -# 主流交易所费率与 API 深度分析 - -> 更新时间: 2026年1月 | 专注于量化交易视角 - ---- - -## 目录 - -1. [交易费率总览](#交易费率总览) -2. [各交易所费率详解](#各交易所费率详解) -3. [超短线交易成本分析](#超短线交易成本分析) -4. [API 对比分析](#api-对比分析) -5. [量化交易推荐](#量化交易推荐) - ---- - -## 交易费率总览 - -### 现货交易费率对比 - -| 交易所 | Maker | Taker | VIP最低 | BNB/平台币折扣 | 备注 | -|--------|-------|-------|---------|----------------|------| -| **Binance** | 0.10% | 0.10% | 0.02%/0.04% | 25% | 全球最大 | -| **OKX** | 0.08% | 0.10% | 0.02%/0.05% | 20% | 合约强项 | -| **Bybit** | 0.10% | 0.10% | 0.02%/0.04% | - | 新晋黑马 | -| **Bitget** | 0.10% | 0.10% | 0.02%/0.04% | 20% | 跟单特色 | -| **Gate.io** | 0.20% | 0.20% | 0.055%/0.065% | 25% | 山寨币多 | -| **Kraken** | 0.16% | 0.26% | 0.00%/0.10% | - | 合规首选 | -| **Coinbase** | 0.40% | 0.60% | 0.00%/0.05% | - | 美国合规 | -| **HTX (火币)** | 0.20% | 0.20% | 0.0362%/0.0462% | 25% | 老牌交易所 | - -### 永续合约费率对比 - -| 交易所 | Maker | Taker | VIP最低 | 资金费率结算 | -|--------|-------|-------|---------|--------------| -| **Binance** | 0.02% | 0.05% | 0.00%/0.017% | 每8小时 | -| **OKX** | 0.02% | 0.05% | 0.00%/0.015% | 每8小时 | -| **Bybit** | 0.02% | 0.055% | 0.00%/0.02% | 每8小时 | -| **Bitget** | 0.02% | 0.06% | 0.00%/0.025% | 每8小时 | -| **dYdX** | 0.00% | 0.05% | 0.00%/0.02% | 每1小时 | -| **GMX** | 0.00% | 0.10% | - | 实时 | - ---- - -## 各交易所费率详解 - -### 1. Binance (币安) - -#### 费率结构 - -``` -现货费率: -├── 基础费率: Maker 0.10% / Taker 0.10% -├── BNB 支付: Maker 0.075% / Taker 0.075% (折扣25%) -└── VIP 等级: 最高可降至 0.02%/0.04% - -合约费率: -├── USDT-M 永续: Maker 0.02% / Taker 0.05% -├── COIN-M 永续: Maker 0.01% / Taker 0.05% -└── VIP 等级: 最高可降至 0.00%/0.017% -``` - -#### VIP 等级要求 - -| 等级 | 30天交易量 | 或 BNB 持仓 | 现货费率 | 合约费率 | -|------|-----------|-------------|----------|----------| -| VIP 0 | < $1M | < 25 BNB | 0.10%/0.10% | 0.02%/0.05% | -| VIP 1 | ≥ $1M | ≥ 25 BNB | 0.09%/0.10% | 0.016%/0.04% | -| VIP 2 | ≥ $5M | ≥ 100 BNB | 0.08%/0.10% | 0.014%/0.035% | -| VIP 3 | ≥ $20M | ≥ 250 BNB | 0.07%/0.10% | 0.012%/0.032% | -| VIP 4 | ≥ $100M | ≥ 500 BNB | 0.06%/0.08% | 0.01%/0.03% | -| VIP 5 | ≥ $250M | ≥ 1000 BNB | 0.05%/0.07% | 0.008%/0.027% | -| VIP 6 | ≥ $500M | ≥ 2000 BNB | 0.04%/0.06% | 0.006%/0.025% | -| VIP 7 | ≥ $1B | ≥ 3500 BNB | 0.03%/0.05% | 0.004%/0.022% | -| VIP 8 | ≥ $2.5B | ≥ 5000 BNB | 0.025%/0.045% | 0.002%/0.02% | -| VIP 9 | ≥ $5B | ≥ 8000 BNB | 0.02%/0.04% | 0.00%/0.017% | - -#### 其他费用 - -| 费用类型 | 金额 | 说明 | -|----------|------|------| -| 提币手续费 | 变动 | 按币种和网络不同 | -| 合约持仓费 | 资金费率 | 每8小时结算,±0.01%~±0.3% | -| 强平清算费 | 0~1.5% | 取决于杠杆和市场状况 | -| API 超限费 | 无 | 但会被限流 | - ---- - -### 2. OKX (欧易) - -#### 费率结构 - -``` -现货费率: -├── 基础费率: Maker 0.08% / Taker 0.10% -├── OKB 支付: Maker 0.064% / Taker 0.08% (折扣20%) -└── VIP 等级: 最高可降至 0.02%/0.05% - -合约费率: -├── USDT 永续: Maker 0.02% / Taker 0.05% -├── USDC 永续: Maker 0.02% / Taker 0.05% -├── 币本位: Maker 0.02% / Taker 0.05% -└── VIP 等级: 最高可降至 0.00%/0.015% -``` - -#### 特色优势 - -- **统一账户**: 一个账户管理现货、合约、期权 -- **组合保证金**: 跨币种保证金,资金利用率高 -- **期权交易**: 费率 Maker 0.02% / Taker 0.03% - ---- - -### 3. Bybit - -#### 费率结构 - -``` -现货费率: -├── 基础费率: Maker 0.10% / Taker 0.10% -└── VIP 等级: 最高可降至 0.02%/0.04% - -合约费率: -├── USDT 永续: Maker 0.02% / Taker 0.055% -├── USDC 永续: Maker 0.02% / Taker 0.055% -└── 反向合约: Maker 0.02% / Taker 0.055% -└── VIP 等级: 最高可降至 0.00%/0.02% -``` - -#### VIP 等级 - -| 等级 | 资产要求 | 或30天交易量 | 合约费率 | -|------|----------|--------------|----------| -| VIP 0 | - | - | 0.02%/0.055% | -| VIP 1 | $50K | $10M | 0.016%/0.04% | -| VIP 2 | $250K | $25M | 0.012%/0.035% | -| VIP 3 | $500K | $50M | 0.008%/0.03% | -| Pro 1 | $1M | $100M | 0.004%/0.025% | -| Pro 2 | $2.5M | $250M | 0.00%/0.022% | -| Pro 3 | $5M | $500M | 0.00%/0.02% | - ---- - -### 4. Bitget - -#### 费率结构 - -``` -现货费率: -├── 基础费率: Maker 0.10% / Taker 0.10% -├── BGB 支付: Maker 0.08% / Taker 0.08% (折扣20%) -└── VIP 等级: 最高可降至 0.02%/0.04% - -合约费率: -├── USDT 永续: Maker 0.02% / Taker 0.06% -├── USDC 永续: Maker 0.02% / Taker 0.06% -└── 币本位: Maker 0.02% / Taker 0.06% -└── VIP 等级: 最高可降至 0.00%/0.025% -``` - -#### 特色 - -- **跟单交易**: 跟单者额外支付利润分成 (约10%) -- **Copy Trading**: 带单者可设置分润比例 - ---- - -### 5. HTX (火币) - -#### 费率结构 - -``` -现货费率: -├── 基础费率: Maker 0.20% / Taker 0.20% -├── HT 支付: Maker 0.15% / Taker 0.15% (折扣25%) -├── 点卡支付: 可进一步折扣 -└── VIP 等级: 最高可降至 0.0362%/0.0462% - -合约费率: -├── USDT 永续: Maker 0.02% / Taker 0.05% -├── 币本位永续: Maker 0.02% / Taker 0.05% -├── 交割合约: Maker 0.02% / Taker 0.05% -└── VIP 等级: 最高可降至 0.00%/0.023% -``` - -#### VIP 等级要求 - -| 等级 | 30天交易量(USDT) | 或 HT 持仓 | 现货费率 | 合约费率 | -|------|-----------------|-----------|----------|----------| -| LV0 | < 5万 | < 10 HT | 0.20%/0.20% | 0.02%/0.05% | -| LV1 | ≥ 5万 | ≥ 10 HT | 0.196%/0.198% | 0.02%/0.044% | -| LV2 | ≥ 50万 | ≥ 100 HT | 0.176%/0.188% | 0.02%/0.04% | -| LV3 | ≥ 200万 | ≥ 500 HT | 0.156%/0.178% | 0.016%/0.036% | -| LV4 | ≥ 1000万 | ≥ 1000 HT | 0.136%/0.158% | 0.014%/0.034% | -| LV5 | ≥ 5000万 | ≥ 2000 HT | 0.116%/0.138% | 0.012%/0.032% | -| LV6 | ≥ 1亿 | ≥ 4000 HT | 0.096%/0.118% | 0.01%/0.03% | -| LV7 | ≥ 2亿 | ≥ 7000 HT | 0.076%/0.098% | 0.006%/0.028% | -| LV8 | ≥ 5亿 | ≥ 10000 HT | 0.056%/0.078% | 0.004%/0.026% | -| LV9 | ≥ 10亿 | ≥ 15000 HT | 0.0362%/0.0462% | 0.00%/0.023% | - -#### 特色功能 - -``` -✅ 逐仓/全仓模式灵活切换 -✅ 支持策略交易 (网格、定投、智能追踪) -✅ C2C 交易便捷 -✅ 杠杆最高 200x (主流币) -✅ 历史悠久,品牌认知度高 -``` - -#### 其他费用 - -| 费用类型 | 金额 | 说明 | -|----------|------|------| -| 提币手续费 | 变动 | 按币种和网络 | -| 合约资金费率 | ±0.01%~±0.375% | 每8小时结算 | -| 强平手续费 | 0.5%~1.5% | 根据杠杆倍数 | -| 划转费用 | 免费 | 现货/合约账户互转 | - -#### 优势场景 - -``` -1. 国内用户友好 (中文支持好) -2. 出入金渠道多 -3. 合约产品丰富 (永续+交割) -4. 策略交易工具完善 -``` - -#### 劣势 - -``` -1. 现货基础费率偏高 (0.20%) -2. 近年市场份额下滑 -3. 流动性不如 Binance/OKX -4. 部分用户反馈客服响应慢 -``` - ---- - -### 6. Gate.io - -#### 费率结构 - -``` -现货费率: -├── 基础费率: Maker 0.20% / Taker 0.20% -├── GT 支付: Maker 0.15% / Taker 0.15% (折扣25%) -├── 点卡支付: 更多折扣 -└── VIP 等级: 最高可降至 0.055%/0.065% - -合约费率: -├── USDT 永续: Maker 0.015% / Taker 0.05% -└── 币本位: Maker 0.015% / Taker 0.05% -└── VIP 等级: 最高可降至 0.00%/0.02% -``` - -#### 特点 - -- 上币数量最多 (1700+ 币种) -- 适合交易山寨币 -- 现货费率偏高 - ---- - -## 超短线交易成本分析 - -### 交易成本构成 - -``` -总成本 = 开仓手续费 + 平仓手续费 + 滑点成本 + 资金费率 (持仓跨结算时) - -超短线特点: -- 持仓时间: 几秒到几分钟 -- 单笔利润目标: 0.1% - 0.5% -- 交易频率: 每天 10-100+ 次 -``` - -### 成本模拟计算 - -**场景: BTC 合约超短线,单笔 $10,000** - -#### Binance VIP0 (普通用户) - -| 项目 | 费率 | 成本 | -|------|------|------| -| 开仓 (Taker) | 0.05% | $5.00 | -| 平仓 (Taker) | 0.05% | $5.00 | -| 滑点 (估算) | 0.01% | $1.00 | -| **单笔总成本** | **0.11%** | **$11.00** | - -``` -如果目标利润 0.3%,实际利润 = 0.3% - 0.11% = 0.19% -每天交易 50 次: 成本 = 50 × $11 = $550 -每天毛利润 0.15% (50次 × 0.003): $750 -每天净利润: $200 -``` - -#### Binance VIP5 (高频做市商) - -| 项目 | 费率 | 成本 | -|------|------|------| -| 开仓 (Maker) | 0.008% | $0.80 | -| 平仓 (Maker) | 0.008% | $0.80 | -| 滑点 | ~0% (挂单) | $0 | -| **单笔总成本** | **0.016%** | **$1.60** | - -``` -每天交易 50 次: 成本 = 50 × $1.6 = $80 -每天毛利润 0.15%: $750 -每天净利润: $670 -``` - -### 各交易所超短线成本对比 - -**假设: 单笔 $10,000, Taker 开平仓, 每天 50 笔** - -| 交易所 | 等级 | 单笔成本 | 日成本 | 月成本 | 适合度 | -|--------|------|----------|--------|--------|--------| -| Binance | VIP0 | 0.10% | $500 | $15,000 | ⭐⭐ | -| Binance | VIP5 | 0.054% | $270 | $8,100 | ⭐⭐⭐⭐ | -| OKX | VIP0 | 0.10% | $500 | $15,000 | ⭐⭐ | -| OKX | VIP5 | 0.044% | $220 | $6,600 | ⭐⭐⭐⭐⭐ | -| Bybit | VIP0 | 0.11% | $550 | $16,500 | ⭐⭐ | -| Bybit | Pro2 | 0.044% | $220 | $6,600 | ⭐⭐⭐⭐⭐ | -| dYdX | 基础 | 0.10% | $500 | $15,000 | ⭐⭐⭐ | - -### 降低超短线成本的方法 - -#### 1. 尽量做 Maker (挂单) - -``` -策略调整: -- 使用限价单而非市价单 -- 提前挂单等待成交 -- 可节省 50-70% 手续费 -``` - -#### 2. 提升 VIP 等级 - -``` -方法: -- 增加交易量 -- 持有平台币 (BNB/OKB) -- 申请做市商账户 (需要审核) -``` - -#### 3. 选择合适的交易所 - -``` -超短线推荐: -1. OKX - 合约 Maker 费率最低 -2. Binance - 流动性最好,滑点小 -3. Bybit - Pro 等级费率有竞争力 -``` - -#### 4. 使用平台币支付 - -| 交易所 | 平台币 | 折扣 | 年持有成本 | -|--------|--------|------|-----------| -| Binance | BNB | 25% | 需考虑币价波动 | -| OKX | OKB | 20% | 需考虑币价波动 | -| Gate | GT | 25% | 需考虑币价波动 | - -### 超短线盈利阈值 - -**问题: 手续费多少以内才能盈利?** - -``` -假设: -- 平均每笔目标利润: 0.3% -- 胜率: 55% -- 盈亏比: 1:1 - -期望收益 = 55% × 0.3% - 45% × 0.3% = 0.03% (每笔) - -要盈利,手续费必须 < 0.03% -即: 开仓 + 平仓 + 滑点 < 0.03% - -结论: -- VIP0 (0.10%) 几乎不可能盈利 -- VIP5+ (0.02-0.04%) 有盈利空间 -- Maker 策略 (0.01-0.02%) 较好盈利 -``` - ---- - -## API 对比分析 - -### 总体对比 - -| 特性 | Binance | OKX | Bybit | HTX | Bitget | Gate | -|------|---------|-----|-------|-----|--------|------| -| 文档质量 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | -| 稳定性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | -| 延迟 | ~50ms | ~60ms | ~70ms | ~65ms | ~80ms | ~100ms | -| WebSocket | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | -| 限流策略 | 严格 | 中等 | 宽松 | 中等 | 宽松 | 宽松 | -| CCXT支持 | ✅ 完善 | ✅ 完善 | ✅ 完善 | ✅ 完善 | ✅ 完善 | ✅ 完善 | -| 中文文档 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | - ---- - -### Binance API 详解 - -#### 优点 - -``` -✅ 文档最完善,示例代码丰富 -✅ 多语言 SDK 官方支持 (Python, Java, C#, Go, PHP) -✅ 流动性最好,订单簿深度大 -✅ WebSocket 稳定,断线重连机制好 -✅ 测试网完善 (testnet.binance.vision) -✅ 社区活跃,问题容易找到答案 -``` - -#### 缺点 - -``` -❌ 限流严格: - - IP 限制: 1200 requests/min - - 订单限制: 10 orders/sec, 100000 orders/day - - WebSocket: 5 connections per IP - -❌ 国内访问需要代理 -❌ KYC 要求严格 -❌ API Key 权限管理不够灵活 -``` - -#### 限流详情 - -| 类型 | 限制 | 权重 | -|------|------|------| -| IP 请求 | 1200/min | 不同接口权重不同 | -| 下单频率 | 10/s | 批量下单算多次 | -| WebSocket 连接 | 5/IP | 可申请增加 | -| 订单数量 | 100000/天 | - | - -#### 特色接口 - -```python -# 批量下单 (一次最多5个) -POST /fapi/v1/batchOrders - -# 自动撤单 (价格触发) -POST /fapi/v1/order (with stopPrice) - -# 一键平仓所有仓位 -DELETE /fapi/v1/allOpenOrders - -# 仓位模式设置 -POST /fapi/v1/positionSide/dual # 双向持仓 - -# 杠杆设置 -POST /fapi/v1/leverage -``` - ---- - -### OKX API 详解 - -#### 优点 - -``` -✅ 统一账户 API,逻辑清晰 -✅ 组合保证金支持 -✅ WebSocket 订阅灵活,支持多种数据流 -✅ 限流相对宽松 -✅ 模拟盘功能完善 -✅ 支持期权交易 API -``` - -#### 缺点 - -``` -❌ 文档有时更新不及时 -❌ 错误码不够详细 -❌ 历史 K 线数据有时不完整 -❌ 部分接口返回格式不统一 -``` - -#### 限流详情 - -| 类型 | 限制 | -|------|------| -| 公共接口 | 20/2s | -| 私有接口 | 60/2s | -| 下单接口 | 60/2s | -| WebSocket | 3 connections/IP, 480 channels/conn | - -#### 特色接口 - -```python -# 统一账户查询 -GET /api/v5/account/balance - -# 组合保证金模式 -POST /api/v5/account/set-position-mode - -# 批量下单 (最多20个) -POST /api/v5/trade/batch-orders - -# 策略委托 -POST /api/v5/trade/order-algo - -# 期权交易 -POST /api/v5/trade/order # instType=OPTION -``` - ---- - -### Bybit API 详解 - -#### 优点 - -``` -✅ 接口设计现代化 -✅ 响应速度快 -✅ 限流友好,适合高频 -✅ 统一交易 API (V5) -✅ 复制交易 API 支持 -✅ 新手友好,错误提示清晰 -``` - -#### 缺点 - -``` -❌ 文档组织有点乱 -❌ 历史数据接口有限 -❌ 部分功能比 Binance 晚上线 -❌ 社区相对较小 -``` - -#### 限流详情 - -| 类型 | 限制 | -|------|------| -| 公共接口 | 120/min | -| 私有接口 | 120/min | -| 下单接口 | 100/min | -| 批量下单 | 10 orders/request | - -#### 特色接口 - -```python -# V5 统一接口下单 -POST /v5/order/create - -# 批量下单 -POST /v5/order/create-batch - -# 仓位信息 -GET /v5/position/list - -# 历史订单 -GET /v5/order/history -``` - ---- - -### Bitget API 详解 - -#### 优点 - -``` -✅ 跟单交易 API 完善 -✅ 文档中文友好 -✅ 接口响应快 -✅ 费率有竞争力 -``` - -#### 缺点 - -``` -❌ 国际化程度不如前三 -❌ 部分高级功能缺失 -❌ WebSocket 偶有不稳定 -❌ CCXT 支持不够完整 -``` - ---- - -### HTX (火币) API 详解 - -#### 优点 - -``` -✅ 中文文档完善,国内开发者友好 -✅ API 设计清晰,RESTful 规范 -✅ 支持多种编程语言 SDK -✅ 策略交易 API 丰富 -✅ 历史数据接口完整 -✅ WebSocket 稳定性尚可 -``` - -#### 缺点 - -``` -❌ 国际化程度下降,部分地区受限 -❌ API 更新频率不如头部交易所 -❌ 流动性和深度不如 Binance/OKX -❌ 限流策略有时不够清晰 -❌ 部分高级功能上线较慢 -``` - -#### 限流详情 - -| 类型 | 限制 | -|------|------| -| 公共接口 | 10次/秒 | -| 私有接口 | 10次/秒 | -| 下单接口 | 100次/秒 (合约) | -| WebSocket | 30个连接/IP | -| 订阅数量 | 30个主题/连接 | - -#### 特色接口 - -```python -# 现货下单 -POST /v1/order/orders/place - -# 合约下单 -POST /linear-swap-api/v1/swap_order - -# 批量下单 (最多10个) -POST /linear-swap-api/v1/swap_batchorder - -# 策略委托 -POST /linear-swap-api/v1/swap_trigger_order - -# 全部撤单 -POST /linear-swap-api/v1/swap_cancelall - -# K线数据 -GET /linear-swap-ex/market/history/kline -``` - -#### API 示例代码 - -```python -import hashlib -import hmac -import base64 -from urllib.parse import urlencode -from datetime import datetime - -def sign_request(method, path, params, secret_key): - """HTX API 签名""" - timestamp = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S') - params_to_sign = { - 'AccessKeyId': 'your_access_key', - 'SignatureMethod': 'HmacSHA256', - 'SignatureVersion': '2', - 'Timestamp': timestamp - } - params_to_sign.update(params) - - # 构建签名字符串 - sorted_params = sorted(params_to_sign.items()) - query_string = urlencode(sorted_params) - payload = f'{method}\napi.huobi.pro\n{path}\n{query_string}' - - # HMAC-SHA256 签名 - signature = hmac.new( - secret_key.encode('utf-8'), - payload.encode('utf-8'), - hashlib.sha256 - ).digest() - - return base64.b64encode(signature).decode() -``` - ---- - -### Gate.io API 详解 - -#### 优点 - -``` -✅ 币种最多,山寨币首选 -✅ API 功能齐全 -✅ 量化借贷 API -✅ 期权 API -``` - -#### 缺点 - -``` -❌ 现货费率偏高 -❌ 流动性不如头部 -❌ 文档英文为主 -❌ 部分接口延迟较高 -``` - ---- - -### API 稳定性实测 - -**2024年实测数据 (ping 延迟 + 接口响应)** - -| 交易所 | 平均延迟 | P99 延迟 | 年宕机次数 | 评分 | -|--------|----------|----------|-----------|------| -| Binance | 45ms | 120ms | 2 | A | -| OKX | 55ms | 150ms | 3 | A- | -| Bybit | 60ms | 180ms | 4 | B+ | -| HTX | 65ms | 200ms | 5 | B | -| Bitget | 70ms | 200ms | 5 | B | -| Gate | 90ms | 300ms | 6 | B- | - ---- - -## 量化交易推荐 - -### 按交易类型推荐 - -| 交易类型 | 首选 | 备选 | 原因 | -|----------|------|------|------| -| **高频做市** | Binance | OKX | 流动性、稳定性 | -| **CTA 趋势** | OKX | Binance | 统一账户、低费率 | -| **套利策略** | Binance+OKX | +Bybit | 多所组合 | -| **网格交易** | Bybit | Bitget | 原生网格API | -| **山寨币** | Gate | OKX | 币种多 | -| **期权策略** | OKX | Bybit | 期权流动性 | - -### 按资金规模推荐 - -| 资金规模 | 推荐 | 策略重点 | -|----------|------|----------| -| < $10K | Bybit/Bitget | 低门槛,网格跟单 | -| $10K-$100K | OKX | 统一账户,中频策略 | -| $100K-$1M | Binance | VIP费率,流动性 | -| > $1M | Binance+OKX | 多所分散,做市商账户 | - -### 开发建议 - -```python -# 推荐技术栈 -交易框架: CCXT (统一多所接口) -实时数据: WebSocket + Redis -回测框架: Backtrader / vectorbt -部署: 云服务器靠近交易所 (东京/新加坡) - -# 延迟优化 -1. 使用 WebSocket 而非 REST 轮询 -2. 服务器部署在交易所同区域 -3. 使用异步 IO (asyncio) -4. 连接池复用 -``` - -### 新手上手路径 - -``` -Week 1: 注册 Binance + OKX,完成 KYC -Week 2: 熟悉 API 文档,跑通测试网 -Week 3: 用 CCXT 写第一个策略 (简单网格) -Week 4: 小资金实盘,观察费率和滑点 -Month 2: 优化策略,提升 VIP 等级 -Month 3: 多策略组合,多所部署 -``` - ---- - -## 总结 - -### 超短线交易成本关键 - -| 要素 | 重要性 | 建议 | -|------|--------|------| -| VIP 等级 | ⭐⭐⭐⭐⭐ | 尽快提升,费率差距显著 | -| Maker vs Taker | ⭐⭐⭐⭐⭐ | 尽量挂单,成本减半 | -| 交易所选择 | ⭐⭐⭐⭐ | OKX/Binance 合约首选 | -| 滑点控制 | ⭐⭐⭐⭐ | 选流动性好的交易对 | -| 平台币折扣 | ⭐⭐⭐ | 有一定帮助但风险 | - -### 最终建议 - -``` -资金费率套利 → Binance (流动性) -高频合约 → OKX (低费率 + 统一账户) -网格/跟单 → Bybit/Bitget (功能完善) -国内用户入门 → HTX (中文友好、出入金方便) -山寨币投机 → Gate.io (币种多) -合规需求 → Kraken/Coinbase -``` - -### HTX (火币) 总结 - -| 维度 | 评价 | -|------|------| -| **费率** | 现货偏高(0.20%),合约正常(0.02%/0.05%) | -| **流动性** | 中等,主流币可以,小币种一般 | -| **API** | 中文文档好,设计规范,适合国内开发者 | -| **适合人群** | 国内新手、需要中文支持、策略交易用户 | -| **不适合** | 高频交易(费率高)、追求最低费率的用户 | - -> ⚠️ 本文档基于公开信息整理,费率可能随时调整,请以交易所官网为准。 diff --git a/docs/Quant_Strategies_Guide.md b/docs/Quant_Strategies_Guide.md deleted file mode 100644 index 5436527..0000000 --- a/docs/Quant_Strategies_Guide.md +++ /dev/null @@ -1,481 +0,0 @@ -# B圈量化策略详解与收益分析 - -> 本文详细介绍加密货币市场常用的量化策略,包括原理、实现方法、历史收益和风险分析 - ---- - -## 目录 - -1. [策略分类总览](#策略分类总览) -2. [低风险策略](#低风险策略) -3. [中风险策略](#中风险策略) -4. [高风险策略](#高风险策略) -5. [收益对比分析](#收益对比分析) -6. [策略选择指南](#策略选择指南) - ---- - -## 策略分类总览 - -| 风险等级 | 策略类型 | 预期年化收益 | 最大回撤 | 资金要求 | 技术难度 | -|----------|----------|--------------|----------|----------|----------| -| 🟢 低 | 资金费率套利 | 15-30% | <5% | $10K+ | ⭐⭐ | -| 🟢 低 | 跨交易所套利 | 10-20% | <3% | $50K+ | ⭐⭐⭐ | -| 🟢 低 | 稳定币理财 | 5-15% | <1% | $1K+ | ⭐ | -| 🟡 中 | 网格交易 | 20-50% | 10-30% | $5K+ | ⭐⭐ | -| 🟡 中 | 双均线/CTA | 30-80% | 20-40% | $5K+ | ⭐⭐⭐ | -| 🟡 中 | 期现套利 | 15-25% | <10% | $20K+ | ⭐⭐⭐ | -| 🔴 高 | 高频做市 | 50-200% | 10-20% | $100K+ | ⭐⭐⭐⭐⭐ | -| 🔴 高 | 统计套利 | 40-100% | 20-40% | $50K+ | ⭐⭐⭐⭐ | -| 🔴 高 | Meme币狙击 | 100-1000% | 50-90% | $1K+ | ⭐⭐⭐⭐ | - ---- - -## 低风险策略 - -### 1. 资金费率套利 (Funding Rate Arbitrage) 🌟推荐 - -#### 原理 - -永续合约每 8 小时结算一次资金费率: -- **正费率**: 多头支付空头 → 做空可赚取费率 -- **负费率**: 空头支付多头 → 做多可赚取费率 - -通过「现货多 + 永续空」形成对冲,赚取资金费率收入。 - -#### 策略逻辑 - -``` -当 资金费率 > 0.01% (年化 ~11%): - 1. 买入 1 BTC 现货 - 2. 开空 1 BTC 永续合约 - 3. 每 8 小时收取资金费率 - 4. 当费率转负时平仓 -``` - -#### 收益分析 - -| 指标 | 数值 | -|------|------| -| 平均年化收益 | 15-30% | -| 历史最佳月份 | 2021年3月: 8% (单月) | -| 历史最差月份 | 2022年11月: -2% (脱锚风险) | -| 夏普比率 | 2.0-3.0 | -| 最大回撤 | <5% | - -#### 实际案例 (2024年数据) - -| 月份 | BTC 平均费率 | ETH 平均费率 | 套利收益 | -|------|--------------|--------------|----------| -| 1月 | 0.015% | 0.012% | 2.3% | -| 2月 | 0.025% | 0.020% | 3.8% | -| 3月 | 0.035% | 0.028% | 5.2% | -| 4月 | 0.008% | 0.006% | 1.2% | -| 平均 | 0.021% | 0.017% | 3.1% | - -**年化约 37%**(牛市期间) - -#### 风险因素 - -1. **价格剧烈波动**: 可能触发强平 -2. **费率转负**: 需要及时调整 -3. **交易所风险**: 资金安全 -4. **滑点成本**: 开平仓损耗 - -#### 代码示例 - -```python -def funding_arbitrage(symbol, position_size): - """资金费率套利策略""" - # 获取当前费率 - rate = get_funding_rate(symbol) - - if rate > 0.0001 and not in_position: # 费率 > 0.01% - # 买入现货 - buy_spot(symbol, position_size) - # 开空永续 - open_short_perp(symbol, position_size) - log(f"开仓套利: 费率 {rate:.4%}") - - elif rate < 0 and in_position: # 费率转负 - # 平仓 - sell_spot(symbol, position_size) - close_short_perp(symbol, position_size) - log("费率转负,平仓") -``` - ---- - -### 2. 跨交易所套利 (Cross-Exchange Arbitrage) - -#### 原理 - -同一币种在不同交易所存在价差,低买高卖。 - -#### 策略逻辑 - -``` -监控 BTC 在 Binance 和 OKX 的价格: - 价差 = OKX价格 - Binance价格 - - 如果 价差 > 交易成本 (约 0.1%): - 在 Binance 买入 - 在 OKX 卖出 - 利润 = 价差 - 手续费 - 滑点 -``` - -#### 收益分析 - -| 指标 | 数值 | -|------|------| -| 平均年化收益 | 10-20% | -| 单次套利利润 | 0.05-0.2% | -| 日均机会次数 | 50-200次 | -| 夏普比率 | 3.0+ | -| 最大回撤 | <3% | - -#### 挑战 - -1. **速度竞争**: 需要低延迟 -2. **资金占用**: 需要在多所预存资金 -3. **提币时间**: 影响资金效率 -4. **滑点**: 大额交易影响价格 - ---- - -### 3. 稳定币理财 - -#### 方式 - -| 平台类型 | 年化收益 | 风险等级 | 示例 | -|----------|----------|----------|------| -| CEX 活期 | 2-5% | 低 | Binance Earn | -| CEX 定期 | 5-10% | 低 | OKX 锁仓 | -| DeFi 借贷 | 5-15% | 中 | Aave, Compound | -| LP 挖矿 | 10-30% | 中高 | Uniswap, Curve | - ---- - -## 中风险策略 - -### 4. 网格交易 (Grid Trading) 🌟推荐 - -#### 原理 - -在价格区间内设置多个买卖网格,低买高卖。 - -#### 策略参数 - -```python -参数设置: - 价格下限: $90,000 - 价格上限: $110,000 - 网格数量: 20 - 每格投资: $500 - - 网格间距 = (110000 - 90000) / 20 = $1,000 -``` - -#### 收益分析 - -**震荡市收益** (价格在区间内波动): - -| 波动幅度 | 月收益 | 年化 | -|----------|--------|------| -| ±5% | 3-5% | 36-60% | -| ±10% | 5-8% | 60-96% | -| ±20% | 8-15% | 96-180% | - -**趋势市风险** (价格突破区间): -- 上涨突破: 踏空,收益有限 -- 下跌突破: 被套,浮亏扩大 - -#### 实际案例 - -**BTC 网格 (2024年4-6月震荡期)**: - -| 参数 | 值 | -|------|-----| -| 区间 | $58,000 - $72,000 | -| 网格数 | 28 | -| 初始资金 | $100,000 | -| 运行时间 | 90天 | -| **网格利润** | **$12,500 (12.5%)** | -| **持仓浮盈** | $3,200 | -| **总收益** | $15,700 (15.7%) | -| 年化 | ~63% | - -#### 代码示例 - -```python -class GridStrategy: - def __init__(self, low, high, grids, amount_per_grid): - self.low = low - self.high = high - self.grids = grids - self.amount = amount_per_grid - - # 计算网格价格 - step = (high - low) / grids - self.grid_prices = [low + i * step for i in range(grids + 1)] - self.grid_status = {} # price -> 'bought' or 'sold' - - def on_price(self, current_price): - for price in self.grid_prices: - if abs(current_price - price) / price < 0.001: # 触及网格 - if self.grid_status.get(price) != 'bought': - self.buy(price) - self.grid_status[price] = 'bought' - # 在上一格挂卖单 - upper_price = price + (self.high - self.low) / self.grids - self.place_sell_order(upper_price) -``` - ---- - -### 5. 双均线策略 (Dual MA / CTA) - -#### 原理 - -- 短期均线上穿长期均线 → 金叉买入 -- 短期均线下穿长期均线 → 死叉卖出 - -#### 常用参数组合 - -| 组合 | 短期 | 长期 | 适用场景 | -|------|------|------|----------| -| 快速 | MA7 | MA25 | 短线交易 | -| 标准 | MA20 | MA60 | 波段交易 | -| 慢速 | MA50 | MA200 | 趋势跟踪 | - -#### 收益分析 (BTC MA7/MA25 回测) - -**2020-2024 回测结果**: - -| 年份 | 收益率 | 最大回撤 | 交易次数 | -|------|--------|----------|----------| -| 2020 | +185% | -25% | 18 | -| 2021 | +95% | -35% | 24 | -| 2022 | -15% | -45% | 22 | -| 2023 | +78% | -20% | 16 | -| 2024 | +45% | -18% | 14 | -| **平均** | **+77.6%** | **-28.6%** | **18.8** | - -#### 优化方向 - -1. **加入过滤器**: RSI、成交量 -2. **动态止损**: ATR 跟踪止损 -3. **仓位管理**: 凯利公式 - ---- - -### 6. 期现套利 (Basis Trading) - -#### 原理 - -利用期货与现货的价差(基差)获利。 - -``` -正基差 (期货 > 现货): - 买入现货 + 卖出期货 - 到期时基差收敛获利 - -负基差 (期货 < 现货): - 卖出现货 + 买入期货 - 等待基差修复 -``` - -#### 收益分析 - -| 市场环境 | 基差水平 | 年化收益 | -|----------|----------|----------| -| 牛市 | +5-15% | 20-40% | -| 熊市 | -2-+2% | 5-10% | -| 震荡 | +2-5% | 10-20% | - ---- - -## 高风险策略 - -### 7. 高频做市 (HFT Market Making) - -#### 原理 - -在买卖盘口挂单,赚取买卖价差。 - -#### 收益与要求 - -| 指标 | 数值 | -|------|------| -| 年化收益 | 50-200% | -| 单笔利润 | 0.01-0.05% | -| 日交易次数 | 1000-10000+ | -| 延迟要求 | <10ms | -| 资金要求 | $100K+ | -| 技术难度 | ⭐⭐⭐⭐⭐ | - -#### 风险 - -- 技术故障可能造成巨大损失 -- 市场剧烈波动时可能被"收割" -- 需要大量技术投入 - ---- - -### 8. Meme 币狙击 - -#### 原理 - -在新 Meme 币上线早期买入,等待炒作后卖出。 - -#### 收益分析 - -| 结果 | 概率 | 收益 | -|------|------|------| -| 100倍+ | 1% | +10000% | -| 10-100倍 | 5% | +1000-10000% | -| 2-10倍 | 15% | +100-1000% | -| 持平 | 20% | 0% | -| 归零 | 59% | -100% | - -**期望值**: (0.01×100 + 0.05×50 + 0.15×5 + 0.2×0 - 0.59×1) = 3.66 倍 - -#### 风险 - -- **高 Rug Pull 风险**: 项目方跑路 -- **极端波动**: 分钟级涨跌 50%+ -- **Gas 战争**: 链上抢跑成本高 -- **监管风险**: 可能涉及证券法 - ---- - -## 收益对比分析 - -### 历史收益对比 (2020-2024) - -| 策略 | 2020 | 2021 | 2022 | 2023 | 2024 | 平均 | 夏普 | -|------|------|------|------|------|------|------|------| -| 持有 BTC | +305% | +60% | -65% | +155% | +120% | +115% | 0.8 | -| 资金费率套利 | +25% | +45% | +18% | +22% | +30% | +28% | 2.5 | -| 网格交易 | +40% | +65% | +8% | +35% | +45% | +38.6% | 1.5 | -| 双均线 CTA | +185% | +95% | -15% | +78% | +45% | +77.6% | 1.2 | -| 跨所套利 | +18% | +22% | +15% | +12% | +15% | +16.4% | 3.2 | - -### 风险调整后收益 - -按**夏普比率**排序: - -1. 🥇 跨交易所套利 (3.2) - 最稳 -2. 🥈 资金费率套利 (2.5) - 性价比最高 -3. 🥉 网格交易 (1.5) - 震荡市首选 -4. 双均线 CTA (1.2) - 趋势市首选 -5. 持有 BTC (0.8) - 最简单 - ---- - -## 策略选择指南 - -### 按资金量选择 - -| 资金量 | 推荐策略 | 预期年化 | -|--------|----------|----------| -| <$5K | 稳定币理财、简单网格 | 10-20% | -| $5K-$50K | 资金费率套利、网格、CTA | 20-50% | -| $50K-$500K | 多策略组合、期现套利 | 25-60% | -| >$500K | 高频做市、统计套利 | 30-100% | - -### 按风险偏好选择 - -| 风险偏好 | 策略组合 | 配置比例 | -|----------|----------|----------| -| 保守型 | 费率套利 + 稳定币理财 | 70% + 30% | -| 稳健型 | 费率套利 + 网格 + CTA | 40% + 30% + 30% | -| 进取型 | CTA + 网格 + 投机 | 40% + 40% + 20% | -| 激进型 | Meme狙击 + CTA | 50% + 50% | - -### 按市场环境选择 - -| 市场状态 | 判断指标 | 最佳策略 | -|----------|----------|----------| -| 牛市 | BTC > MA200 上涨 | CTA趋势跟踪、费率套利 | -| 熊市 | BTC < MA200 下跌 | 空头CTA、做空费率 | -| 震荡 | 价格区间波动 | 网格交易、期现套利 | -| 高波动 | VIX > 80 | 减仓观望、卖期权 | - ---- - -## 策略组合建议 - -### 入门组合 (资金 $10K) - -``` -组合收益目标: 年化 25-40% -最大回撤控制: <15% - -配置: -├── 资金费率套利: $5,000 (50%) -│ └── BTC/ETH 对冲套利 -├── 网格交易: $3,000 (30%) -│ └── BTC 震荡网格 -└── 稳定币理财: $2,000 (20%) - └── CEX 活期/定期 -``` - -### 进阶组合 (资金 $50K) - -``` -组合收益目标: 年化 35-60% -最大回撤控制: <25% - -配置: -├── 资金费率套利: $20,000 (40%) -│ └── 多币种轮动 -├── 双均线 CTA: $15,000 (30%) -│ └── BTC/ETH/SOL 趋势 -├── 网格交易: $10,000 (20%) -│ └── 主流币震荡 -└── 机动资金: $5,000 (10%) - └── 事件驱动 -``` - ---- - -## 风险管理要点 - -### 1. 仓位控制 - -```python -# 凯利公式计算最优仓位 -kelly_fraction = (win_rate * avg_win - (1 - win_rate) * avg_loss) / avg_win - -# 实际使用一半凯利 -position_size = kelly_fraction * 0.5 * total_capital -``` - -### 2. 止损规则 - -| 策略类型 | 止损方式 | 止损幅度 | -|----------|----------|----------| -| 套利策略 | 基差异常 | 2-3% | -| 网格策略 | 突破区间 | 区间外 10% | -| CTA策略 | ATR止损 | 2-3 ATR | -| 投机策略 | 固定止损 | 10-20% | - -### 3. 分散化 - -- **交易所分散**: 不超过 50% 在单一交易所 -- **策略分散**: 至少 2-3 种不同策略 -- **币种分散**: 不超过 30% 在单一币种 - ---- - -## 总结 - -| 建议 | 说明 | -|------|------| -| 从简单开始 | 先掌握资金费率套利和网格 | -| 控制风险 | 单策略最大亏损不超过本金 20% | -| 持续学习 | 市场在变化,策略需要迭代 | -| 合规优先 | 注意当地法律法规 | - -> ⚠️ 本文档仅供学习参考,历史收益不代表未来表现。加密货币投资风险极高,请谨慎决策。 diff --git a/docs/README.md b/docs/README.md index dffde7c..98fb774 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,11 +2,12 @@ ## 推荐阅读路线 -- 新用户:先看 `README.md`、`docs/spec.md`、`docs/OPEN_SOURCE_SCOPE.md`。 -- 开发者:再看 `docs/ARCHITECTURE.md`、`docs/codebase-guide.md`、`docs/Technical_Reference.md`。 +- 新用户:先看 `README.md`、`docs/spec.md`、`docs/open-source-scope.md`。 +- 想本地跑起来:看 `docs/local-deployment.md`。 +- 开发者:再看 `docs/architecture.md`、`docs/codebase-guide.md`。 - 页面改动:先看 `docs/pages/README.md`,再看对应页面文档。 -- 策略改动:先看 `docs/strategy_development_guide.md` 和 `data/seed/strategies.json`。 -- 风险边界:看 `docs/DISCLAIMER.md`、`SECURITY.md` 和 `CONTRIBUTING.md`。 +- 策略改动:先看 `docs/strategy-development-guide.md` 和 `data/seed/strategies.json`。 +- 风险边界:看 `docs/disclaimer.md`、`SECURITY.md` 和 `CONTRIBUTING.md`。 ## 核心入口 @@ -14,11 +15,12 @@ | --- | --- | | `README.md` | 项目对外入口、快速开始、功能地图 | | `docs/spec.md` | 公开版产品规格和默认边界 | -| `docs/OPEN_SOURCE_SCOPE.md` | 社区版保留内容、剥离内容和公开表述规则 | -| `docs/ARCHITECTURE.md` | 技术分层、数据流、持久化和验证入口 | +| `docs/open-source-scope.md` | 社区版保留内容、剥离内容和公开表述规则 | +| `docs/local-deployment.md` | 本地初始化、启动、健康检查和故障排查 | +| `docs/architecture.md` | 技术分层、数据流、持久化和验证入口 | | `docs/codebase-guide.md` | 代码框架导览,帮助快速熟悉入口文件和主流程 | | `docs/progress.md` | 当前整理进度和已知边界 | -| `docs/DISCLAIMER.md` | 风险、投资建议、AI 和第三方服务免责声明 | +| `docs/disclaimer.md` | 风险、投资建议、AI 和第三方服务免责声明 | ## 页面文档 @@ -40,21 +42,17 @@ | `docs/pages/monitor.md` | 监控 | | `docs/pages/data.md` | 数据中心 | | `docs/pages/ai-lab.md` | AI 研发 | -| `docs/pages/login.md` | 登录门禁 | -## 策略和市场资料 +## 策略和协议资料 -这些文档偏学习和工程参考,不是收益承诺: +这些文档是当前产品和接口仍会直接引用的工程资料,不是收益承诺: | 文档 | 内容 | | --- | --- | -| `docs/Quant_Strategies_Guide.md` | 量化策略基础材料 | -| `docs/strategy_development_guide.md` | 策略开发指南 | -| `docs/Strategy_Research_Notes.md` | 策略研究笔记 | -| `docs/Crypto_Beginner_Guide.md` | 加密货币基础 | -| `docs/Top50_Cryptocurrencies.md` | Top50 加密资产资料 | -| `docs/Exchange_Fees_API_Analysis.md` | 交易所费率和 API 参考 | -| `docs/okx_signal_bot_json_format.md` | OKX Signal Bot payload 格式 | +| `docs/strategy-development-guide.md` | 策略开发指南 | +| `docs/okx-signal-bot-json-format.md` | OKX Signal Bot payload 格式 | + +历史研究、投资/期权/市场科普、旧技术参考和收益叙事类长文不随社区版发布。 ## 质量和参考 @@ -62,12 +60,12 @@ | --- | --- | | `docs/qa/` | QA 模板和质量记录 | | `docs/references/harness-design-long-running-apps.md` | 长运行应用脚本设计参考 | -| `docs/Technical_Reference.md` | 技术参考和模块说明 | ## 新文档放哪里 - 页面相关:放 `docs/pages/`。 - 长期产品边界:更新 `docs/spec.md`。 -- 架构或代码框架长期说明:更新 `docs/ARCHITECTURE.md` 或 `docs/codebase-guide.md`。 -- 策略开发说明:更新 `docs/strategy_development_guide.md`。 +- 架构或代码框架长期说明:更新 `docs/architecture.md` 或 `docs/codebase-guide.md`。 +- 本地启动、检查或脚本行为:更新 `docs/local-deployment.md`。 +- 策略开发说明:更新 `docs/strategy-development-guide.md`。 - 完成一轮整理:更新 `docs/progress.md`。 diff --git a/docs/Strategy_Research_Notes.md b/docs/Strategy_Research_Notes.md deleted file mode 100644 index dd10008..0000000 --- a/docs/Strategy_Research_Notes.md +++ /dev/null @@ -1,1344 +0,0 @@ -# QuantBase 策略研究笔记 — 从零到实盘的完整过程 - -> 写给新手的量化策略研究指南。每个策略都会从 **"这是什么"** → **"为什么能赚钱"** → **"代码怎么写"** → **"回测结果如何"** → **"有什么坑"** 五个角度详细讲解。 - ---- - -## 目录 - -1. [基础知识:你需要先了解这些](#1-基础知识) -2. [策略1:Buy & Hold 基准策略](#2-策略1buyhold-基准策略) -3. [策略2:双均线金叉死叉](#3-策略2双均线金叉死叉) -4. [策略3:RSI 超卖反弹](#4-策略3rsi-超卖反弹) -5. [策略4:布林带均值回归 ★最优](#5-策略4布林带均值回归-最优) -6. [策略5:MACD+RSI 多因子组合](#6-策略5macdrsi-多因子组合) -7. [研究方法论:我们是怎么找到最优策略的](#7-研究方法论) -8. [重要教训:新手最容易犯的错](#8-重要教训) -9. [下一步:Phase 3 的方向](#9-下一步phase-3-的方向) - ---- - -## 1. 基础知识 - -### 1.1 什么是量化交易策略? - -简单说:**用数学规则代替人的判断来买卖**。 - -人类交易员会说"我觉得要涨了,买!"——这是主观判断。 -量化策略会说"当 RSI < 30 且 SMA7 > SMA25 时,买入 95% 仓位"——这是规则。 - -**量化的好处:** -- 没有情绪(不会因为恐惧/贪婪乱操作) -- 可以回测(用历史数据验证是否有效) -- 可以 24 小时自动执行 -- 可以同时监控多个币种 - -### 1.2 什么是回测? - -回测 = **用过去的历史数据,模拟你的策略如果在过去执行会怎样**。 - -比如你有一个策略规则是"RSI < 30 买入,RSI > 70 卖出"。 -回测引擎会把 2024-2026 年每一根 K 线数据一根一根喂给你的策略,模拟每次买卖,最终算出: -- 赚了多少钱?(总收益率) -- 最多亏了多少?(最大回撤) -- 值不值得冒这个险?(夏普比率) - -**注意:回测赚钱 ≠ 实盘一定赚钱!** 这就是为什么我们需要 Walk-Forward 验证等更高级的方法。 - -### 1.3 核心指标解释(必须掌握) - -| 指标 | 含义 | 好/坏的标准 | -|------|------|------------| -| **总收益率** | 策略从开始到结束赚了多少 % | > Buy&Hold 才有意义 | -| **年化收益率** | 换算成一年能赚多少 % | > 20% 优秀 | -| **最大回撤** | 资金从最高点到最低点跌了多少 % | < 20% 好, > 30% 危险 | -| **夏普比率** | 每承受 1 份风险能获得多少收益 | > 1.0 好, > 2.0 优秀 | -| **胜率** | 赢的交易占总交易的比例 | > 50% 好,但不是越高越好 | -| **盈亏比** | 赚的钱 / 亏的钱 | > 1.5 好 | -| **期望收益** | 平均每笔交易赚多少钱 | > 0 才有意义 | - -**最重要的三个指标:夏普比率、最大回撤、年化收益率。** - -### 1.4 K 线(蜡烛图)是什么? - -一根 K 线代表一段时间内的价格信息: -``` - ┃ ← 上影线(最高价) - ┏━┓ ← 实体上沿(开盘价 或 收盘价,取较高者) - ┃ ┃ ← 实体(开盘到收盘的变化) - ┗━┛ ← 实体下沿(开盘价 或 收盘价,取较低者) - ┃ ← 下影线(最低价) -``` - -- **1h K线**:每根代表 1 小时的走势 -- **4h K线**:每根代表 4 小时的走势 -- **1d K线**:每根代表 1 天的走势 - -时间周期越大,信号越少但越可靠。 - ---- - -## 2. 策略1:Buy & Hold 基准策略 - -### 这是什么? - -最简单的策略:**买了之后一直拿着不动**。 - -### 为什么需要它? - -它是**基准线**。如果你辛辛苦苦写了一个策略,回测结果还不如"买了不动",那说明你的策略不仅没用,反而因为频繁交易的手续费亏了更多。 - -就像考试,你先看看满分是多少分,才知道自己考得好不好。 - -### 代码核心逻辑 - -```python -# 第一根K线就买入,之后再也不卖 -bought = False - -def on_tick(ticker): - global bought - if not bought: - buy(TARGET_SYMBOL, POSITION_SIZE, order_type='market') - bought = True -``` - -### 回测结果 (BTC/USDT 2024.3 ~ 2026.1) - -| 指标 | 数值 | -|------|------| -| 总收益率 | +67.4% | -| 年化收益率 | ~33% | -| 最大回撤 | 30.1% | - -### 关键教训 - -**BTC 长期是涨的。** 在 2024-2026 这个区间,持有 BTC 赚了 67%。 -所以我们的策略必须跑赢 +67% 才算成功。实际上很多策略跑不赢! - ---- - -## 3. 策略2:双均线金叉死叉 - -### 这是什么? - -**移动平均线 (SMA)** = 过去 N 天收盘价的平均值。 - -- **快线** (SMA7):最近 7 天的平均价,反映短期趋势 -- **慢线** (SMA25):最近 25 天的平均价,反映中期趋势 - -``` -价格 ^ - | 快线(7天) - | / \ 慢线(25天) - | / \ / - | / 金叉↑ \ / - | / \/ ← 死叉↓ - +-------------------→ 时间 -``` - -**金叉** = 快线从下方穿过慢线(短期趋势变强,看涨信号) -**死叉** = 快线从上方穿过慢线(短期趋势变弱,看跌信号) - -### 为什么能赚钱? - -核心思想是 **趋势跟踪**:市场一旦形成趋势(上涨或下跌),通常会持续一段时间。 - -当短期均线超过长期均线时,说明近期上涨动力强于中长期,趋势可能刚刚开始。 - -### 代码核心逻辑 - -```python -def calculate_ma(closes, period): - """移动平均 = 最近N个收盘价的平均""" - return sum(closes[-period:]) / period - -# 每根K线执行一次 -fast_ma = calculate_ma(closes, 7) # 快线 -slow_ma = calculate_ma(closes, 25) # 慢线 - -# 金叉:快线从下穿上 -if last_fast_ma <= last_slow_ma and fast_ma > slow_ma: - buy() # 买入 - -# 死叉:快线从上穿下 -if last_fast_ma >= last_slow_ma and fast_ma < slow_ma: - sell() # 卖出 -``` - -### 回测结果 - -| 指标 | 数值 | 评价 | -|------|------|------| -| 总收益率 | **-2.31%** | 亏了! | -| 最大回撤 | 30.4% | 很大 | -| 夏普比率 | 0.09 | 非常差 | -| 交易次数 | 8 次 | | - -### 为什么效果差? - -1. **BTC 在很多时候是震荡的**(不涨也不跌)。在震荡市里,均线频繁交叉产生"假信号"。 -2. **买在高点卖在低点**:均线是滞后指标,当金叉出现时价格已经涨了一段,当死叉出现时价格已经跌了一段。 -3. **手续费侵蚀**:8 次交易的手续费加起来不少。 - -### 经验总结 - -> **双均线策略适合强趋势市场(比如牛市一路涨),不适合震荡市。** -> 单独使用效果不好,但"均线方向"可以作为其他策略的辅助过滤器。 - ---- - -## 4. 策略3:RSI 超卖反弹 - -### 这是什么? - -**RSI (相对强弱指标)** 是一个 0~100 之间的数字,衡量最近一段时间涨得多还是跌得多。 - -``` -RSI 值 含义 ------- ---- -> 70 超买(涨太多了,可能要回落) -30~70 正常区间 -< 30 超卖(跌太多了,可能要反弹) -``` - -### RSI 怎么算的? - -``` -过去14天的平均涨幅 = avg_gain -过去14天的平均跌幅 = avg_loss -RS = avg_gain / avg_loss -RSI = 100 - (100 / (1 + RS)) -``` - -举个例子: -- 如果过去 14 天天天涨 → avg_loss = 0 → RSI = 100 -- 如果过去 14 天天天跌 → avg_gain = 0 → RSI = 0 -- 如果涨跌各半 → RSI ≈ 50 - -### 策略逻辑 - -``` - RSI - ^ -70 |─────────────── 超买线 ──────── 卖出↓ - | -50 | - | -30 |─────────────── 超卖线 ──────── 买入↑ - | - +──────────────────────────────→ 时间 -``` - -- RSI 从低于 30 回升到 30 以上 → **买入**(跌够了,开始反弹) -- RSI 上升到 70 以上 → **卖出**(涨够了,获利了结) - -这是一个 **均值回归** 策略:相信价格涨多了会跌,跌多了会涨。 - -### 代码核心逻辑 - -```python -def calculate_rsi(closes, period=14): - deltas = [closes[i] - closes[i-1] for i in range(1, len(closes))] - gains = [d if d > 0 else 0 for d in deltas[-period:]] - losses = [-d if d < 0 else 0 for d in deltas[-period:]] - avg_gain = sum(gains) / period - avg_loss = sum(losses) / period - if avg_loss == 0: - return 100 - rs = avg_gain / avg_loss - return 100 - (100 / (1 + rs)) - -rsi = calculate_rsi(closes, 14) - -# RSI 从超卖区回升 -if prev_rsi < 30 and rsi >= 30: - buy() - -# RSI 进入超买区 -if rsi > 70: - sell() -``` - -### 回测结果 - -| 指标 | 数值 | 评价 | -|------|------|------| -| 总收益率 | **+29.13%** | 正收益 | -| 最大回撤 | 20.0% | 可接受 | -| 夏普比率 | 0.62 | 一般 | -| 胜率 | **100%** | 3/3 全赢 | -| 交易次数 | 3 次 | 很少 | - -### 分析 - -优点: -- 胜率极高(每次抄底都成功了) -- 回撤比 Buy&Hold 小 - -缺点: -- 交易太少,样本量不足以得出统计结论 -- 没跑赢 Buy&Hold(29% vs 67%) -- 在牛市中可能过早卖出(RSI > 70 就卖了,但价格可能继续涨) - -### 经验总结 - -> **RSI 策略适合震荡市抄底,但在单边上涨行情中会过早获利了结。** -> 交易频率低,适合大周期(日线/周线),不适合短线频繁交易。 - ---- - -## 5. 策略4:布林带均值回归 ★最优 - -### 这是什么? - -**布林带 (Bollinger Bands)** 由三条线组成: - -``` -价格 ^ - | ═══════ 上轨 (中轨 + 2×标准差) ← 超涨卖出 - | / \ - |/ ─────── 中轨 (20日SMA) ← 均值 - |\ / - | ═══════ 下轨 (中轨 - 2×标准差) ← 超跌买入 - +───────────────────────────────→ 时间 -``` - -**关键原理:** 正态分布告诉我们,95% 的价格应该落在布林带内。当价格触及下轨,说明偏离均值太远了,大概率会"回归"(反弹回中轨附近)。 - -### 布林带怎么算? - -``` -中轨 = 最近 N 天收盘价的平均值 (SMA) -标准差 = 最近 N 天收盘价的标准差 -上轨 = 中轨 + K × 标准差 -下轨 = 中轨 - K × 标准差 - -常见参数:N=20, K=2.0 -``` - -标准差越大,说明价格波动越剧烈,布林带越宽。 - -### 策略逻辑 - -```python -upper, middle, lower = calculate_bollinger(closes, period=20, std_mult=2.2) - -# 价格触及下轨 → 买入(超跌,等待反弹) -if price <= lower and position == 0: - buy() - -# 价格触及上轨 → 卖出(超涨,获利了结) -if price >= upper and position == 1: - sell() - -# 止损:跌破下轨太多 → 强制止损 -if price < lower * (1 - stop_loss_pct * 0.5): - sell() # 止损出场 -``` - -### 参数优化过程(这是重点!) - -我们不是随便选参数的,而是做了 **网格搜索 (Grid Search)**。 - -#### 什么是网格搜索? - -就是把所有可能的参数组合都试一遍: - -``` -bb_period: [10, 15, 20, 30, 50] → 5 种 -bb_std: [1.5, 2.0, 2.2, 2.5] → 4 种 -stop_loss: [None, 0.03, 0.05, 0.08] → 4 种 - -总共: 5 × 4 × 4 = 80 种组合 -``` - -每种组合都跑一遍回测,然后按"得分"排序: - -``` -得分 = 夏普比率×40% + Calmar比率×25% + 收益率×20% + 回撤惩罚×15% -``` - -#### 网格搜索结果(Top 5) - -``` -排名 bb_period bb_std stop_loss 收益率 最大回撤 夏普比率 -──── ───────── ────── ───────── ──────── ──────── ──────── -1 20 2.2 0.03 +55.74% 19.5% 0.92 -2 20 2.0 0.03 +42.31% 18.2% 0.84 -3 30 2.5 0.05 +101.0% 25.8% 1.28 -4 15 2.0 0.05 +38.90% 22.1% 0.76 -5 10 1.5 0.03 +25.60% 15.3% 0.69 -``` - -**最终选择了 #1(bb_period=20, bb_std=2.2, stop_loss=3%)**,因为: -- 夏普比率最高 (0.92) -- 回撤可控 (19.5%) -- 收益不错 (55.74%) - -### 多币种验证 - -好的策略应该在多个币种上都有效,不能只对一个币有效(那可能是"过拟合")。 - -``` -币种 收益率 夏普比率 评价 -BTC/USDT +135% 1.53 ★★★ 优秀 -BNB/USDT +119% 1.41 ★★★ 优秀 -ETH/USDT +32% 0.45 ★★ 一般 -SOL/USDT +45% 0.62 ★★ 一般 -XRP/USDT -8% -0.12 ★ 差 -DOGE/USDT +12% 0.23 ★ 差 -AVAX/USDT +28% 0.38 ★★ 一般 -``` - -**结论:在 BTC 和 BNB 上表现优秀,其他币种表现平平。** 说明这个策略更适合大市值、流动性好的币种。 - -### Walk-Forward 验证(防过拟合) - -#### 什么是过拟合? - -用历史数据优化参数 → 在历史数据上表现很好 → 但在未来数据上表现很差。 - -就像考试前把答案背下来,考试能考 100 分,但换一套卷子就不行了。 - -#### Walk-Forward 怎么做? - -把数据分成 4 个滚动窗口: - -``` -窗口1: [━━━ 训练期(270天) ━━━][─ 测试期(90天) ─] -窗口2: [━━━ 训练期(270天) ━━━][─ 测试期(90天) ─] -窗口3: [━━━ 训练期(270天) ━━━][─ 测试期(90天) ─] -窗口4: [━━━ 训练期(270天) ━━━][─ 测试期(90天) ─] -``` - -每个窗口: -1. 在训练期找最优参数 -2. 用最优参数在测试期跑一遍(测试期是"未见过的数据") - -#### Walk-Forward 结果 - -``` -窗口 训练期收益 测试期收益 一致性(测试>0) -1 +35% +12% ✅ -2 +28% -5% ❌ -3 +41% +18% ✅ -4 +52% -3% ❌ - -一致性: 50% (2/4 窗口测试期盈利) -过拟合比率: 101% (训练期的平均收益远大于测试期) -``` - -**结论:一致性 50%,存在一定过拟合风险。** 这是我们 Phase 3 需要解决的问题。 - -### 经验总结 - -> **布林带均值回归是我们研究的所有策略中最优的。** -> 适合大市值币种,有明确的数学原理支撑。 -> 但 Walk-Forward 一致性只有 50%,需要进一步改进(加入自适应参数、动态仓位管理)。 - ---- - -## 6. 策略5:MACD+RSI 多因子组合 - -### 这是什么? - -同时使用两个指标来过滤信号: - -**MACD (趋势指标):** -``` -MACD线 = 12日EMA - 26日EMA (快均线 - 慢均线) -信号线 = MACD线的9日EMA (MACD线的平滑版) -柱状图 = MACD线 - 信号线 (两者的差值) - -MACD线 上穿 信号线 = 金叉(看涨) -MACD线 下穿 信号线 = 死叉(看跌) -``` - -**RSI (动量指标):** RSI < 65 说明还没超买。 - -**组合逻辑:** -- MACD 金叉 + RSI < 65 → 买入(趋势向上 + 还没涨太多) -- MACD 死叉 或 RSI > 75 → 卖出 - -### 回测结果 - -| 指标 | 数值 | 评价 | -|------|------|------| -| 总收益率 | **-5.44%** | 亏了! | -| 最大回撤 | 25.5% | 较大 | -| 夏普比率 | 0.01 | 几乎为零 | - -### 为什么两个指标反而更差? - -1. **指标冲突**:MACD 说"买"但 RSI 说"已经超买别买了",两个信号互相矛盾 -2. **过度过滤**:条件太严格导致错过很多机会 -3. **参数敏感**:两个指标各有自己的参数,组合起来参数空间太大 - -### 经验总结 - -> **指标不是越多越好!** 每多加一个指标,就多一个出错的可能。 -> 好的策略应该是简单、清晰、鲁棒的。布林带策略只用一个指标反而更好。 - ---- - -## 7. 研究方法论 - -### 我们的研究流程 - -``` -第一步:数据准备 - ↓ 从交易所下载历史K线 → 存入本地SQLite → 定时增量同步 - -第二步:基准测试 - ↓ 先跑 Buy & Hold 知道基准收益是多少 - -第三步:逐个测试策略 - ↓ 每个策略先用默认参数跑一遍,看基本表现 - -第四步:参数优化 (Grid Search) - ↓ 对有希望的策略做网格搜索,找最优参数 - -第五步:多币种验证 - ↓ 最优参数在7个不同币种上测试 - -第六步:Walk-Forward 验证 - ↓ 检查是否存在过拟合 - -第七步:总结 & 改进 - ↓ 找出问题,设计下一步改进方向 -``` - -### 评分标准 - -我们用一个综合得分来比较策略: - -```python -def default_score(result): - score = ( - result.sharpe_ratio * 40 + # 风险调整收益(最重要) - result.calmar_ratio * 25 + # 年化/回撤比 - result.total_return_pct * 0.2 # 绝对收益 - ) - # 惩罚项 - if result.max_drawdown_pct > 30: - score *= 0.5 # 回撤>30%扣一半分 - if result.total_trades < 5: - score *= 0.7 # 交易太少不可靠 - return score -``` - -### 5 个策略的最终排名 - -``` -排名 策略 收益率 夏普 得分 评价 -1 布林带均值回归 +55.7% 0.92 ★★★★ 最优,但有过拟合风险 -2 RSI超卖反弹 +29.1% 0.62 ★★★ 稳定但交易太少 -3 Buy & Hold +67.4% — — 基准线 -4 双均线金叉死叉 -2.3% 0.09 ★ 不推荐 -5 MACD+RSI组合 -5.4% 0.01 ★ 不推荐 -``` - ---- - -## 8. 重要教训 - -### 教训 1:跑不赢 Buy & Hold 的策略没意义 - -很多人花大量时间写策略,最后发现还不如"买了不动"。 -**先算基准,再比较!** - -### 教训 2:指标不是越多越好 - -MACD+RSI 组合反而比单独的布林带更差。 -**简单的策略往往更鲁棒。** - -### 教训 3:回测赚钱 ≠ 实盘赚钱 - -回测结果好看可能只是因为"过拟合"——参数刚好匹配了历史数据。 -**必须做 Walk-Forward 验证!** - -### 教训 4:止损是最重要的风控 - -没有止损的策略在极端行情下可能亏光。 -布林带策略加了 3% 止损后,夏普比率从 0.7 提升到 0.92。 - -### 教训 5:样本量要够 - -RSI 策略胜率 100% 看起来很厉害,但只交易了 3 次。 -**至少需要 30+ 笔交易才能得出统计意义的结论。** - -### 教训 6:不同币种表现差异很大 - -一个策略在 BTC 上赚 +135%,在 XRP 上亏 -8%。 -**策略的适用范围需要明确。** - ---- - -## 9. 下一步:Phase 3 的方向 - -Phase 2 的主要问题: -1. Walk-Forward 一致性只有 50%(目标 > 70%) -2. 单一策略风险大 -3. 固定参数不够灵活 - -Phase 3 计划: - -### 3.1 自适应策略 -根据市场状态(趋势/震荡)动态切换策略参数: -- 趋势市:参数放宽,让利润奔跑 -- 震荡市:参数收紧,快进快出 - -### 3.2 多策略组合 -布林带 + 趋势跟踪混合,降低单策略风险。 -类似基金经理把钱分配到不同投资上。 - -### 3.3 增强风控 -- 动态仓位管理:波动大时减仓,波动小时加仓 -- 极端行情保护:连续亏损自动暂停 - -### 3.4 更多验证 -- 同步更长的历史数据(2年+) -- Walk-Forward 一致性目标 > 70% - ---- - -## 附录:在 QuantBase 中使用这些策略 - -### 查看策略 - -1. 打开 QuantBase → 策略管理页面 (`/strategy`) -2. 可以看到 5 个预置策略 -3. 点击任一策略查看详情和代码 - -### 运行回测 - -1. 打开 回测页面 (`/backtest`) -2. 选择策略(比如"布林带均值回归策略 ★最优") -3. 设置参数: - - 交易对:BTC/USDT - - 时间周期:4h - - 开始日期:2024-03-01 - - 结束日期:2026-01-31 - - 初始资金:10000 -4. 点击"运行回测" -5. 等待结果展示 - -### 程序化回测(与产品主路径一致) - -仓库仅保留 **Backtrader + `BaseStrategy`** 一条执行路径(与 `/api/v1/backtest/run_sync`、参数优化、Agent 回测相同)。请继承 `BaseStrategy`,在 `on_bar` 中实现逻辑,并调用: - -```python -from app.services.backtrader_engine import backtrader_engine -from app.strategies.demo_ema_cross import EMACrossStrategy - -report = backtrader_engine.run_strategy( - EMACrossStrategy, - exchange="okx", - symbol="BTC/USDT", - timeframe="4h", - start_date="2024-03-01", - end_date="2026-01-31", - strategy_config={"fast_period": 10, "slow_period": 20}, -) -print(report.total_return_pct, report.sharpe_ratio) -``` - -参数优化请使用 `app.services.optimizer` 中的 `GridOptimizer` + `OptimizerRunConfig` + 同一 `BaseStrategy` 子类。 - ---- - -## 10. Phase 3:高级策略研究 - -> Phase 3 的目标是解决 Phase 2 的两个核心问题: -> 1. Walk-Forward 一致性从 50% 提升到 70%+ -> 2. 减少单一策略的风险 - -### 10.1 市场状态检测器 (Market Regime Detector) - -**核心思想:** 市场不是一成不变的。有时候在趋势中(一直涨或一直跌),有时候在震荡中(涨涨跌跌没方向)。不同的市场用不同的策略。 - -**怎么判断市场状态?** - -我们用了三个工具: - -1. **ADX (Average Directional Index)** - - ADX > 25 → 有趋势 - - ADX < 20 → 震荡 - - +DI > -DI → 上升趋势 - - -DI > +DI → 下降趋势 - -2. **波动率百分位** - - 当前波动率在历史100个bar中的排名 - - > 80% → 高波动(减仓保护) - -3. **SMA斜率** - - 50周期SMA的方向和幅度 - - 正斜率 → 上升,负斜率 → 下降 - -**BTC/USDT 4h 的市场状态分布:** -``` -上升趋势: 18.4% 的时间 -下降趋势: 19.1% 的时间 -横盘震荡: 43.0% 的时间 ← 最常见! -高波动: 19.5% 的时间 -``` - -> **关键发现:BTC大部分时间在震荡(43%),这就是为什么均值回归策略(布林带)比趋势跟踪更适合。** - -### 10.2 策略6:自适应布林带 ★★★★ Phase3最优 - -**核心改进(相对Phase2布林带):** - -``` -┌────────────────────┬──────────────────────────────────┐ -│ 市场状态 │ 策略行为 │ -├────────────────────┼──────────────────────────────────┤ -│ 上升趋势 (18.4%) │ 窄带(15,2.0)回调中轨买入 │ -│ 下降趋势 (19.1%) │ 保守入场,仅极端超卖半仓买 │ -│ 横盘震荡 (43.0%) │ 宽带(30,2.5)经典均值回归 │ -│ 高波动 (19.5%) │ 极端RSI<25才入场,半仓 │ -└────────────────────┴──────────────────────────────────┘ -``` - -**动态仓位管理:** -```python -# 基于ATR的仓位计算 -风险金额 = 总资金 × 3% # 每笔交易最多亏3% -止损距离 = 2 × ATR # 用ATR作为止损距离 -可买数量 = 风险金额 / 止损距离 -仓位比例 = min(可买数量的价值/总资金, 90%) -仓位比例 = max(仓位比例, 30%) # 最低30%确保能捕捉收益 -``` - -**回测结果 (BTC/USDT 4h):** - -| 指标 | Phase2布林带 | Phase3自适应 | 改进 | -|------|-------------|-------------|------| -| 总收益率 | +55.7% | **+45.9%** | - | -| 年化收益率 | +25.9% | **+21.7%** | - | -| 最大回撤 | 19.5% | **9.2%** | 改善53%! | -| 夏普比率 | 0.92 | **1.35** | 改善47%! | -| WF一致性 | 50% | **75%** | 改善50%! | -| 交易次数 | 14 | **79** | 更多样本 | - -> **收益率略有下降,但回撤减半、夏普提升50%、Walk-Forward一致性从50%提升到75%!** -> **这才是实盘需要的特征:稳定、风险可控、不容易过拟合。** - -**Walk-Forward 8窗口详情:** -``` -窗口 训练收益 测试收益 测试夏普 测试回撤 -1 +4.9% +1.6% 1.13 2.3% ✅ -2 +11.2% +6.6% 2.28 2.6% ✅ -3 +19.5% +6.1% 2.06 3.5% ✅ -4 +19.1% -3.3% -1.13 8.2% ❌ -5 +20.6% +9.0% 6.07 0.7% ✅ 最佳! -6 +21.0% +1.9% 1.68 2.0% ✅ -7 +17.2% -4.8% -1.70 7.5% ❌ -8 +8.1% +4.2% 1.30 5.8% ✅ - -一致性: 75% (6/8 盈利) -平均测试夏普: 1.46 ← 优秀! -平均测试回撤: 4.1% ← 极低! -``` - -### 10.3 策略7:趋势跟踪 - -**原理:** -- EMA20 > EMA50 = 多头排列(趋势向上) -- 回调到EMA附近入场,EMA死叉出场 -- ATR追踪止损保护利润 - -**多品种表现:** -``` -BTC/USDT: +33.8% 夏普1.03 ★★★ -SOL/USDT: +68.5% 夏普1.28 ★★★★ 最佳! -XRP/USDT: +11.7% 夏普0.43 ★★ -DOGE/USDT: +17.8% 夏普0.60 ★★ -ETH/USDT: -9.7% 夏普-0.84 ★ 差 -``` - -> **趋势跟踪在SOL上效果惊人(+68.5%),但Walk-Forward一致性只有50%,不够稳定。** - -### 10.4 策略8:多策略组合引擎 - -**信号融合逻辑:** -``` -买入确信度: - 高确信 (100%仓): 强趋势 + 回调 + RSI适中 - 高确信 (100%仓): 趋势多头 + 布林带下轨 + RSI超卖 - 中确信 (60%仓): 仅布林带下轨 + RSI极端超卖 - 中确信 (70%仓): 趋势回调到EMA - -卖出信号: - 全平: 趋势反转 + RSI弱 - 半平: 布林带上轨 + RSI超买 - 30%: RSI极端超买(>80) - 全平: ATR追踪止损 -``` - -> **组合策略理论上更稳健,但实测两个策略容易互相干扰。作为研究方向保留。** - -### 10.5 Phase 3 总结 - -| 策略 | 收益 | 夏普 | 回撤 | WF一致性 | 推荐度 | -|------|------|------|------|---------|--------| -| **自适应布林带** | +45.9% | **1.35** | **9.2%** | **75%** | ★★★★★ | -| 趋势跟踪 | +33.8% | 1.03 | 12.6% | 50% | ★★★ | -| 多策略组合 | -4.5% | -0.16 | 14.2% | - | ★★ | -| Phase2布林带 | +55.7% | 0.92 | 19.5% | 50% | ★★★ | - -**最终结论:自适应布林带是最适合实盘的策略。** - -**与实盘的差距(诚实评估):** -1. ✅ 已解决:Walk-Forward一致性75% (>70%达标) -2. ✅ 已解决:回撤控制 9.2% (<10%优秀) -3. ⚠️ 待改进:只在BTC上表现优秀,其他币种不佳 -4. ⚠️ 待改进:过拟合比率82% (目标<50%) -5. ⚠️ 待改进:需要更长历史数据验证(3年+) -6. ❌ 未做:实盘模拟(Paper Trading) -7. ❌ 未做:极端行情压力测试(黑天鹅事件) - -**建议实盘前的最后准备 (Phase 4):** -1. 先用模拟盘跑1-3个月 -2. 只交易BTC/USDT 4h -3. 初始资金不超过总资产的10% -4. 设置硬性止损(账户级-15%就全部停止) - ---- - ---- - -# Phase 4:实盘准备与模拟交易 - -## 14. Phase 4 目标 - -> Phase 3 我们找到了最优策略(自适应布林带),现在的目标是: -> **在真正投入真金白银之前,做好一切准备。** - -Phase 4 核心任务: -1. ✅ **模拟盘引擎 (Paper Trading)** — 用真实数据模拟实盘 -2. ✅ **压力测试** — 在极端行情中验证策略韧性 -3. ✅ **风控熔断系统** — 多层保护,自动止损 -4. ✅ **信号通知系统** — 记录每一笔信号 -5. ✅ **实盘飞行检查** — 上线前的最终确认 - ---- - -## 15. 模拟盘引擎 (Paper Trading Engine) - -### 15.1 什么是模拟盘?和回测有什么区别? - -| 对比项 | 回测 (Backtest) | 模拟盘 (Paper Trading) | -|-------|----------------|----------------------| -| 数据 | 历史数据,一次性回放 | 最新数据,逐根K线模拟 | -| 风控 | 基础止损 | 多层风控熔断 | -| 信号 | 不记录 | 每笔都记录(原因/价格/仓位) | -| 目的 | 验证策略逻辑 | 模拟真实交易环境 | -| 滑点/手续费 | 可选 | 必须考虑 | - -### 15.2 技术实现 - -模拟盘引擎位于 `backend/app/services/paper_trading.py`,核心流程: - -``` -1. 从本地DB加载最近N天K线数据 -2. 初始化策略上下文 + 技术指标 -3. 逐根K线遍历: - a. 更新日期(日级PnL重置) - b. 计算当前权益 - c. 风控检查(5层熔断) - d. 如果风控通过 → 执行策略信号 - e. 记录信号和交易 - f. 保存每日快照 -4. 最终平仓,计算绩效 -``` - -### 15.3 模拟盘验证结果 - -**自适应布林带策略 — BTC/USDT 4h — 多周期验证:** - -| 测试区间 | 收益 | 最大回撤 | 夏普比率 | 交易数 | 胜率 | 风控拦截 | -|---------|------|---------|---------|--------|------|---------| -| 近30天(暴跌期) | -3.26% | 6.1% | -3.07 | 8笔 | — | 5次 | -| 近90天 | +0.88% | 9.2% | 0.31 | 11笔 | 63.6% | 0次 | -| 近180天 | -6.51% | 9.5% | -1.00 | 15笔 | 53.3% | 0次 | -| 近365天 | **+10.02%** | 10.3% | **0.72** | 43笔 | **74.4%** | 3次 | - -**解读(新手必读):** -- **365天结果最重要**: +10.02%收益,74.4%胜率,说明策略长期是盈利的 -- **近30天亏损正常**: BTC从10万暴跌到6万(-30%以上),策略只亏3.26%,远好于持币 -- **风控拦截5次**: 在极端行情中,风控系统自动拦截了5次可能亏损的交易 - ---- - -## 16. 风控熔断系统(新手重点) - -### 16.1 什么是风控?为什么需要? - -> **风控 = 保命系统。** 策略再好,也会有失灵的时候。 -> 风控的目的不是让你多赚,而是**确保你不会因为一次黑天鹅事件倾家荡产。** - -### 16.2 五层防护体系 - -``` -第1层: 账户级止损 (最后防线, 不可恢复) - └─ 总亏损超过 15% → 立即停止所有交易 + 强制平仓 - -第2层: 单日止损 (次日自动恢复) - └─ 当日亏损超过 5% → 暂停到次日 - -第3层: 连续亏损熔断 - └─ 连续亏损 5次 → 暂停交易 (盈利一笔后恢复) - -第4层: 波动率熔断 - └─ ATR/价格 > 8% → 说明市场极度波动,暂停 - -第5层: 冷却时间 - └─ 熔断后等待 60分钟再恢复 -``` - -### 16.3 风控实战效果 - -**闪崩压力测试 (BTC最近30天暴跌30%+):** - -| 止损设置 | 策略收益 | 最大回撤 | 风控拦截次数 | -|---------|---------|---------|------------| -| 普通止损5% | -6.42% | 9.2% | 0次 | -| **严格止损3%** | **-3.26%** | **6.1%** | **5次** | - -**结论**: 严格风控将亏损从6.42%收窄到3.26%,几乎减半。 - -### 16.4 风控参数说明 - -```python -RiskConfig( - account_stop_loss=0.15, # 账户级止损: 亏损15%全停 - daily_stop_loss=0.05, # 日止损: 当日亏5%暂停 - consecutive_loss_limit=5, # 连续5次亏损暂停 - volatility_circuit_breaker=0.08, # ATR/价格>8%暂停 - max_position_pct=0.95, # 最大仓位95% - cooldown_minutes=60, # 冷却60分钟 -) -``` - ---- - -## 17. 压力测试 - -### 17.1 为什么需要压力测试? - -> 回测看的是"正常行情"下的表现。 -> 压力测试看的是"极端行情"下策略会不会崩溃。 -> **一个好策略,不是赚最多的,而是在最坏情况下亏最少的。** - -### 17.2 多币种压力测试 (近90天) - -| 币种 | 收益 | 最大回撤 | 夏普 | 交易数 | 风控拦截 | -|-----|------|---------|------|--------|---------| -| BTC/USDT | +0.88% | 9.2% | 0.31 | 11笔 | 0次 | -| **ETH/USDT** | **+3.77%** | 7.9% | **0.89** | 7笔 | 5次 | -| SOL/USDT | -2.03% | 11.1% | -0.19 | 6笔 | 17次 | - -**解读:** -- ETH表现最好(+3.77%),SOL波动大被拦截17次 -- **建议**: 初期只交易BTC/USDT,稳定后可加入ETH - -### 17.3 趋势跟踪策略 对比 - -| 指标 | 自适应布林带 (365天) | 趋势跟踪 (365天) | -|-----|--------------------|--------------------| -| 收益 | +10.02% | +16.16% | -| 回撤 | 10.3% | 7.0% | -| 夏普 | 0.72 | **1.44** | -| 胜率 | 74.4% | 70.8% | -| 风控拦截 | 3次 | 1057次 | - -趋势跟踪在大牛市表现更好,但被风控拦截了1057次,说明它在震荡市会频繁触发风控。 -**自适应布林带更稳健,推荐作为首选策略。** - ---- - -## 18. 信号通知系统 - -### 18.1 功能 - -每一笔策略信号都会被记录到数据库: -- 时间、动作 (买/卖/拦截) -- 价格、数量、原因 -- 市场状态、RSI、ATR -- 当前权益、累计PnL - -### 18.2 API 接口 - -| 接口 | 方法 | 说明 | -|-----|------|------| -| `/api/v1/paper_trading/run` | POST | 运行模拟盘 | -| `/api/v1/paper_trading/status` | GET | 查看模拟盘状态 | -| `/api/v1/paper_trading/signals` | GET | 查看信号记录 | -| `/api/v1/paper_trading/stress_test` | POST | 运行压力测试 | -| `/api/v1/paper_trading/pre_flight` | POST | 实盘飞行检查 | -| `/api/v1/paper_trading/strategies` | GET | 可用策略列表 | -| `/api/v1/paper_trading/risk_config` | GET | 默认风控配置 | - ---- - -## 19. 实盘前飞行检查 (Pre-Flight Checklist) - -### 19.1 什么是飞行检查? - -> 飞行员起飞前必须逐项检查仪器。 -> **实盘交易前,也必须通过所有检查项。** - -### 19.2 检查清单 - -| # | 检查项 | 通过条件 | 当前状态 | -|---|--------|---------|---------| -| 1 | 数据源可用 | 最近24h有K线数据 | ✅ 通过 | -| 2 | 90天模拟盘验证 | 收益>-15%, 夏普>-1 | ✅ 收益+0.88% | -| 3 | 30天压力测试 | 最大回撤<15% | ✅ 回撤6.1% | -| 4 | 资金管理 | 不超过总资产20% | ✅ 10%总资产 | -| 5 | 止损设置 | 多层止损已配置 | ✅ 已配置 | -| 6 | 交易对确认 | BTC/USDT 4h | ✅ 确认 | - -### 19.3 实盘交易规则(铁律) - -``` -1. 只交易 BTC/USDT 4h -2. 初始资金不超过总资产的 10% (例如总资产$10000只投$1000) -3. 单笔止损 5%, 账户止损 15% -4. 连续亏损 4次暂停 1天 -5. 每周复盘一次 -6. 首月只做模拟盘,第2月可尝试小仓位 -``` - ---- - -## 20. Phase 4 总结 - -### 20.1 研究成果 - -| 组件 | 状态 | 文件 | -|-----|------|------| -| 模拟盘引擎 | ✅ 完成 | `paper_trading.py` | -| 风控熔断系统 | ✅ 完成 | `paper_trading.py` (RiskConfig) | -| 压力测试框架 | ✅ 完成 | `paper_trading.py` (stress_test) | -| 信号通知系统 | ✅ 完成 | `signal_notifier.py` | -| 飞行检查清单 | ✅ 完成 | `signal_notifier.py` (pre_flight_checklist) | -| API端点 | ✅ 完成 | `paper_trading.py` (7个接口) | -| 数据库存储 | ✅ 完成 | 策略#10, #11 | - -### 20.2 关键数据 - -- **推荐策略**: 自适应布林带 (Phase3最优) -- **推荐交易对**: BTC/USDT 4h -- **365天模拟盘**: +10.02%收益, 74.4%胜率, 最大回撤10.3% -- **暴跌保护**: 严格风控下,BTC-30%暴跌时策略只亏3.26% -- **飞行检查**: 6项全部通过 - -### 20.3 Phase 4 研究心得 (新手必读) - -1. **模拟盘 ≠ 实盘**: 模拟盘没有滑点焦虑、没有手抖平仓,真实交易的心理压力远大于模拟 -2. **风控是第一位的**: 不要觉得风控影响收益,它是保命的底线 -3. **小仓位开始**: 首次实盘只用10%资金,证明自己能执行后再加仓 -4. **纪律 > 聪明**: 最大的敌人不是市场,是自己的贪婪和恐惧 -5. **复盘很重要**: 每周看信号记录,理解策略为什么买/卖/拦截 - ---- - ---- - -# Phase 5:实盘自动化交易系统 - -## 21. Phase 5 目标 - -> 所有准备工作都完成了,现在是最后一步: -> **让策略自己跑,自己下单,自己通知你。** - -Phase 5 核心任务: -1. ✅ **实时K线驱动** — AutoTrader 定时轮询K线触发策略 -2. ✅ **自动下单** — 信号自动提交到交易所(支持模拟/实盘切换) -3. ✅ **Telegram推送** — 买卖信号实时推送到手机 -4. ✅ **监控仪表盘** — 实时查看权益/仓位/信号/风控 -5. ✅ **策略桥接** — Phase3策略适配到实盘框架 - ---- - -## 22. 策略桥接 (Live Strategy Bridge) - -### 22.1 为什么需要桥接? - -Phase 3 的策略在回测框架 (StrategyContext) 中运行。 -实盘系统使用 AutoTrader + ProStrategyBase 框架。 -**桥接器负责将两者连接起来。** - -``` -Phase3策略 (StrategyContext) 实盘框架 (ProStrategyBase) -┌────────────────────┐ ┌─────────────────────────┐ -│ adaptive_bollinger │ 桥接器 │ AdaptiveBollingerLive │ -│ (回测用) │ ──────→ │ (实盘用) │ -│ ctx.buy/sell │ │ execute(klines, equity) │ -└────────────────────┘ └─────────────────────────┘ -``` - -### 22.2 实盘信号生成流程 - -``` -1. AutoTrader 每60秒从交易所获取最新200根K线 -2. 调用 strategy.execute(klines, equity) -3. 桥接器内部: - a. K线列表 → numpy数组 - b. 计算指标 (BB/RSI/EMA/ATR/MACD) - c. 检测市场状态 (趋势上/趋势下/震荡/高波动) - d. 生成信号 (买入/卖出/持有) - e. ATR计算仓位大小 - f. 风控检查 -4. 返回信号给 AutoTrader -5. AutoTrader 执行下单 (或模拟记录) -6. Telegram 推送通知 -``` - -### 22.3 实盘信号验证 - -用最新200根 BTC/USDT 4h K线验证: - -``` -信号: action=hold reason=无入场信号 (high_vol) -市场: regime=high_vol RSI=38.8 ATR%=3.69 -``` - -**解读**: 当前BTC处于高波动状态(ATR/Price=3.69%),RSI=38.8, -策略正确判断为暂不入场——这正是Phase3训练出来的保守策略在极端行情下的正确行为。 - ---- - -## 23. 自动下单系统 - -### 23.1 两种模式 - -| 模式 | 设置 | 说明 | -|-----|------|------| -| **模拟模式** | `dry_run=true` | 只记录信号不下单,推荐先用这个 | -| **实盘模式** | `dry_run=false` | 真实下单到交易所,需要API Key | - -### 23.2 下单流程 - -``` -信号产生 → 风控检查 → 仓位计算 → 下单 - ├─ dry_run=true: 记录到日志 - └─ dry_run=false: 提交到交易所 - ├─ 市价单买入 - └─ 自动设置止损/止盈单 -``` - -### 23.3 API 使用示例 - -```bash -# 1. 配置系统 (模拟模式) -curl -X POST http://localhost:8000/api/v1/live/configure \ - -H "Content-Type: application/json" \ - -d '{ - "exchange": "binance", - "strategy_type": "adaptive_bollinger_live", - "symbol": "BTC/USDT", - "timeframe": "4h", - "initial_equity": 1000, - "dry_run": true, - "loop_interval": 60 - }' - -# 2. 启动 -curl -X POST http://localhost:8000/api/v1/live/start - -# 3. 查看仪表盘 -curl http://localhost:8000/api/v1/live/dashboard - -# 4. 停止 -curl -X POST http://localhost:8000/api/v1/live/stop -``` - ---- - -## 24. Telegram 推送 - -### 24.1 配置步骤 - -``` -步骤1: 在 Telegram 搜索 @BotFather -步骤2: 发送 /newbot 创建机器人 -步骤3: 复制获得的 Bot Token -步骤4: 搜索 @userinfobot 获取你的 Chat ID -步骤5: 在 .env 文件中添加: - TELEGRAM_BOT_TOKEN=your_token_here - TELEGRAM_CHAT_ID=your_chat_id_here -``` - -### 24.2 推送内容 - -| 事件类型 | 推送内容 | -|---------|---------| -| 交易信号 | 买入/卖出/平仓 + 价格/仓位/止损/市场状态 | -| 风控告警 | 熔断类型 + 详情 + 建议 | -| 每日报告 | 日PnL/总PnL/权益/仓位/风控状态 | -| 系统通知 | 启动/停止/配置/错误 | - -### 24.3 推送示例 - -``` -📡 交易信号 -━━━━━━━━━━━━━━━━ -🟢 买入 -策略: 自适应布林带 (Live) -品种: BTC/USDT -价格: $98,500.00 -仓位: 70% -原因: trend_up_pullback_to_mid -止损: $95,200.00 -止盈: $103,800.00 -市场: trending_up -``` - ---- - -## 25. 监控仪表盘 - -### 25.1 仪表盘数据 - -| 模块 | 内容 | -|-----|------| -| 系统状态 | 运行/暂停/停止/模式/运行时间 | -| 资金信息 | 初始/当前/峰值/变化% | -| 绩效指标 | PnL/胜率/回撤/盈亏比 | -| 风控状态 | 熔断/仓位/止损 | -| 交易事件 | 最近20条信号/订单/平仓/错误 | -| Telegram | 通知状态/已发送消息数 | - -### 25.2 API 端点汇总 - -| 端点 | 方法 | 说明 | -|-----|------|------| -| `/api/v1/live/configure` | POST | 配置实盘系统 | -| `/api/v1/live/start` | POST | 启动 | -| `/api/v1/live/stop` | POST | 停止 | -| `/api/v1/live/pause` | POST | 暂停 | -| `/api/v1/live/resume` | POST | 恢复 | -| `/api/v1/live/dashboard` | GET | 监控仪表盘 | -| `/api/v1/live/events` | GET | 交易事件 | -| `/api/v1/live/equity_curve` | GET | 权益曲线 | -| `/api/v1/live/strategy_info` | GET | 策略详情 | -| `/api/v1/live/test_telegram` | POST | 测试Telegram | -| `/api/v1/live/pre_flight` | POST | 飞行检查 | -| `/api/v1/live/strategies` | GET | 可用策略 | - ---- - -## 26. Phase 5 总结 - -### 26.1 新增文件 - -| 文件 | 说明 | -|-----|------| -| `live_strategy_bridge.py` | Phase3策略到实盘框架的桥接器 | -| `telegram_notifier.py` | Telegram 信号推送 | -| `live_trading.py` (endpoint) | 实盘API端点 (13个) | - -### 26.2 研究心得 - -1. **回测和实盘是两个世界**: 回测用的 StrategyContext 和实盘的 ProStrategyBase 接口完全不同,需要桥接 -2. **模拟模式先行**: 永远先用 `dry_run=true` 跑至少1周 -3. **信号不等于执行**: 信号产生后还要经过风控检查才能下单 -4. **通知很重要**: 实盘运行时你不可能一直盯着屏幕,Telegram 通知让你随时知道发生了什么 - -### 26.3 实盘启动步骤(新手指南) - -``` -1. 确保数据同步正常: POST /api/v1/data_sync/sync_one -2. 飞行检查: POST /api/v1/live/pre_flight -3. 配置系统 (模拟模式): POST /api/v1/live/configure - - strategy_type: adaptive_bollinger_live - - symbol: BTC/USDT - - timeframe: 4h - - dry_run: true ← 重要!先模拟 - - initial_equity: 1000 -4. 启动: POST /api/v1/live/start -5. 观察1-2周仪表盘: GET /api/v1/live/dashboard -6. 确认无问题后,配置 Telegram 通知 -7. 再观察1-2周 -8. 如果一切正常,可以考虑 dry_run: false 小仓位实盘 -``` - ---- - -## 27. 完整研究历程回顾 - -| 阶段 | 目标 | 关键成果 | -|-----|------|---------| -| Phase 1 | 数据基础设施 | SQLite本地数据库 + 定时同步 + K线API | -| Phase 2 | 策略研发 | 5个基础策略 + 回测引擎 + 参数优化 | -| Phase 3 | 高级策略 | 市场状态检测 + 自适应布林带(最优) + Walk-Forward 75% | -| Phase 4 | 实盘准备 | 模拟盘引擎 + 5层风控 + 压力测试 + 飞行检查 | -| Phase 5 | 实盘自动化 | 策略桥接 + 自动下单 + Telegram + 监控仪表盘 | - -**从 0 到实盘,一步一步走过来了。** - ---- - -## 附录B:系统架构 - -``` -QuantBase/ -├── backend/ -│ ├── app/services/ -│ │ ├── indicators.py # 技术指标库 (SMA/EMA/RSI/MACD/BB/ATR等) -│ │ ├── backtrader_engine.py # Backtrader + BaseStrategy 唯一回测入口 -│ │ ├── backtest_engine.py # v1回测引擎 (前端回测使用) -│ │ ├── optimizer.py # 参数优化 (网格搜索/Walk-Forward) -│ │ ├── market_regime.py # 市场状态检测器 (ADX/波动率/SMA斜率) -│ │ ├── pro_strategies.py # Phase3高级策略 (自适应BB/趋势跟踪/组合) -│ │ ├── paper_trading.py # Phase4模拟盘引擎 (风控+信号+压力测试) -│ │ ├── signal_notifier.py # Phase4信号通知 (持久化+飞行检查) -│ │ ├── live_strategy_bridge.py # Phase5策略桥接 (回测→实盘) -│ │ ├── telegram_notifier.py # Phase5 Telegram信号推送 -│ │ ├── auto_trader.py # 自动交易编排器 (主循环+下单) -│ │ ├── auto_strategies.py # 策略注册表 (含Phase5桥接策略) -│ │ ├── data_sync_service.py # 数据同步服务 -│ │ └── scheduler_service.py # 定时任务 -│ ├── app/api/endpoints/ -│ │ ├── live_trading.py # Phase5实盘API (13个端点) -│ │ ├── paper_trading.py # Phase4模拟盘API (9个端点) -│ │ ├── auto_trade.py # 自动交易API -│ │ ├── backtest.py # 回测API -│ │ ├── strategy.py # 策略管理API -│ │ └── ... -│ └── app/db/ -│ └── local_db.py # SQLite 数据库 -├── docs/ -│ ├── Strategy_Research_Notes.md # 本文档 (策略研究笔记) -│ └── ... -└── frontend/ # React 前端 - └── src/pages/ - ├── Strategy.tsx # 策略管理页面 - └── Backtest.tsx # 回测页面 -``` - -## 附录C:数据库策略列表 - -| ID | 策略名 | 阶段 | 说明 | -|---|--------|------|------| -| 1 | Buy & Hold 基准策略 | Phase1 | 买入持有基准线 | -| 2 | 双均线金叉死叉策略 | Phase2 | SMA交叉 | -| 3 | RSI超卖反弹策略 | Phase2 | RSI<30买入 | -| 4 | 布林带均值回归策略 ★最优 | Phase2 | BB突破回归 | -| 5 | MACD+RSI 多因子组合策略 | Phase2 | 多指标融合 | -| 6 | 自适应布林带策略 ★★Phase3最优 | Phase3 | 市场状态自适应 | -| 7 | 趋势跟踪策略 | Phase3 | EMA趋势跟踪 | -| 8 | 多策略组合引擎 | Phase3 | 信号融合 | -| 10 | Phase4 模拟盘交易系统 | Phase4 | 模拟盘+风控 | -| 11 | Phase4 信号通知 & 风控系统 | Phase4 | 信号+飞行检查 | -| 13 | 自适应布林带 (实盘版) ★Phase5 | Phase5 | 实盘桥接+自动下单 | -| 14 | Phase5 Telegram通知系统 | Phase5 | 信号推送到手机 | - ---- - -*文档版本: v4.0 | 更新时间: 2026-02-07 | 作者: QuantBase 策略研究* -*Phase 1→5 完整链路: 数据 → 策略 → 优化 → 模拟 → 实盘* diff --git a/docs/Technical_Reference.md b/docs/Technical_Reference.md deleted file mode 100644 index 88fec05..0000000 --- a/docs/Technical_Reference.md +++ /dev/null @@ -1,919 +0,0 @@ -# QuantBase 技术文档 - -> 版本: 1.0 | 最后更新: 2026-02-07 | 作者: QuantBase Team - ---- - -## 目录 - -1. [项目概述](#1-项目概述) -2. [系统架构](#2-系统架构) -3. [技术栈](#3-技术栈) -4. [目录结构](#4-目录结构) -5. [数据库设计](#5-数据库设计) -6. [后端 API 参考](#6-后端-api-参考) -7. [前端页面模块](#7-前端页面模块) -8. [后端服务层](#8-后端服务层) -9. [交易所集成层](#9-交易所集成层) -10. [配置说明](#10-配置说明) -11. [WebSocket 协议](#11-websocket-协议) -12. [数据同步机制](#12-数据同步机制) - ---- - -## 1. 项目概述 - -**QuantBase** 是一个全功能的加密货币量化交易平台,支持行情监控、策略开发、历史回测、模拟盘交易、实盘交易及风控管理。 - -### 核心能力 - -| 能力 | 说明 | -|------|------| -| 多交易所支持 | OKX、Binance,通过 CCXT 统一接口 | -| 实时行情 | WebSocket 推送 + REST 轮询双模式 | -| 策略引擎 | 沙箱化 Python 脚本执行,支持自定义策略 | -| 回测系统 | 支持做多/做空、止损止盈、滑点手续费模拟 | -| 数据管理 | 本地 SQLite 存储,按 timeframe 分表,支持增量同步 | -| 风控体系 | 仓位管理、熔断机制、每日止损、最大回撤控制 | -| 通知推送 | Telegram Bot 集成 | - ---- - -## 2. 系统架构 - -``` -┌─────────────────────────────────────────────────────────┐ -│ 前端 (React + TypeScript) │ -│ ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬───┐ │ -│ │ 首页 │ 行情 │ 交易 │ 策略 │ 回测 │ 实盘 │ 监控 │数据│ │ -│ └──┬───┴──┬───┴──┬───┴──┬───┴──┬───┴──┬───┴──┬───┴─┬─┘ │ -│ │ │ │ │ │ │ │ │ │ -│ └──────┴──────┴──────┴──────┴──────┴──────┴─────┘ │ -│ ↕ REST API + WebSocket │ -└─────────────────────────────────────────────────────────┘ - ↕ -┌─────────────────────────────────────────────────────────┐ -│ 后端 (FastAPI + Python) │ -│ ┌─────────────────────────────────────────────────────┐ │ -│ │ API 路由层 │ │ -│ │ market | funding | trading | strategy | backtest │ │ -│ │ monitor | data_sync | live_trading | paper_trading │ │ -│ │ auto_trade | health | websocket │ │ -│ └────────────────────┬────────────────────────────────┘ │ -│ ↕ │ -│ ┌─────────────────────────────────────────────────────┐ │ -│ │ 服务层 (Services) │ │ -│ │ MarketService | FundingService | TradingService │ │ -│ │ StrategyEngine | DataSyncService | AutoTrader │ │ -│ │ RiskManager | PaperTradingEngine | ProBacktest │ │ -│ │ WebSocketService | TelegramNotifier │ │ -│ └────────────────────┬────────────────────────────────┘ │ -│ ↕ │ -│ ┌──────────────┐ ┌──────────────────┐ │ -│ │ Exchange 层 │ │ 数据层 (SQLite) │ │ -│ │ OKX|Binance │ │ local_db.py │ │ -│ │ Mock │ │ WAL + 线程安全 │ │ -│ └──────────────┘ └──────────────────┘ │ -└─────────────────────────────────────────────────────────┘ -``` - ---- - -## 3. 技术栈 - -### 后端 - -| 技术 | 版本 | 用途 | -|------|------|------| -| Python | 3.10+ | 运行时环境 | -| FastAPI | 0.100+ | Web 框架 | -| Uvicorn | - | ASGI 服务器 | -| CCXT | 4.x | 交易所统一接口 | -| SQLite | 内置 | 本地持久化(WAL 模式) | -| Pydantic | v2 | 数据校验与序列化 | -| pydantic-settings | - | 环境变量配置管理 | -| python-dotenv | - | .env 文件加载 | -| NumPy | - | 技术指标计算 | -| APScheduler | - | 定时任务调度 | - -### 前端 - -| 技术 | 版本 | 用途 | -|------|------|------| -| React | 18 | UI 框架 | -| TypeScript | 5.x | 类型安全 | -| Vite | 5.x | 构建工具 | -| Zustand | - | 状态管理 | -| ECharts | 5.x | 图表可视化(K线、权益曲线) | -| Tailwind CSS | 3.x | 样式框架 | -| Axios | - | HTTP 客户端 | -| Lucide React | - | 图标库 | -| React Router | v6 | 路由管理 | - ---- - -## 4. 目录结构 - -``` -QuantBase/ -├── backend/ -│ ├── .env # 环境变量配置 -│ ├── app/ -│ │ ├── main.py # FastAPI 应用入口 -│ │ ├── core/ -│ │ │ └── config.py # Pydantic Settings 配置类 -│ │ ├── api/ -│ │ │ ├── api.py # 路由聚合注册 -│ │ │ └── endpoints/ # 各模块 API 端点 -│ │ │ ├── market.py # 行情数据 -│ │ │ ├── funding.py # 资金费率 -│ │ │ ├── trading.py # 交易下单 -│ │ │ ├── strategy.py # 策略管理 -│ │ │ ├── backtest.py # 回测 -│ │ │ ├── monitor.py # 监控告警 -│ │ │ ├── data_sync.py # 数据同步 -│ │ │ ├── live_trading.py # 实盘交易 -│ │ │ ├── paper_trading.py # 模拟盘 -│ │ │ ├── auto_trade.py # 自动化交易 -│ │ │ ├── health.py # 健康检查 -│ │ │ └── websocket.py # WebSocket -│ │ ├── services/ # 业务逻辑服务层 -│ │ ├── exchange/ # 交易所集成层 -│ │ └── db/ -│ │ └── local_db.py # SQLite 数据库封装 -│ └── venv/ # Python 虚拟环境 -├── frontend/ -│ ├── src/ -│ │ ├── App.tsx # 路由配置 -│ │ ├── pages/ # 页面组件 -│ │ ├── components/ # 公共组件 -│ │ ├── stores/ # Zustand 状态管理 -│ │ ├── hooks/ # 自定义 Hook -│ │ ├── api/ -│ │ │ └── client.ts # API 客户端 -│ │ └── types/ -│ │ └── index.ts # TypeScript 类型定义 -│ └── vite.config.ts # Vite 配置(含代理) -└── docs/ # 文档 -``` - ---- - -## 5. 数据库设计 - -QuantBase 使用 **SQLite** 作为本地数据库引擎,启用 **WAL (Write-Ahead Logging)** 模式实现并发读写,并通过 `threading.local` 实现线程安全的连接管理。 - -数据库文件默认路径: -- macOS: `~/Library/Application Support/QuantBase/crypto_data.db` -- Windows: `~/AppData/Roaming/QuantBase/crypto_data.db` -- Linux: `~/.local/share/QuantBase/crypto_data.db` - -### 5.1 表总览 - -| 序号 | 表名 | 类型 | 说明 | -|------|------|------|------| -| 1 | `kline_history` | 数据表 | K线历史数据(统一表,向后兼容) | -| 2 | `kline_5m` | 数据分表 | 5分钟K线数据 | -| 3 | `kline_15m` | 数据分表 | 15分钟K线数据 | -| 4 | `kline_1h` | 数据分表 | 1小时K线数据 | -| 5 | `kline_4h` | 数据分表 | 4小时K线数据 | -| 6 | `kline_1d` | 数据分表 | 1天K线数据 | -| 7 | `funding_rate_history` | 数据表 | 资金费率历史 | -| 8 | `funding_rate_realtime` | 缓存表 | 资金费率实时数据 | -| 9 | `open_interest_history` | 数据表 | 持仓量历史 | -| 10 | `liquidation_history` | 数据表 | 爆仓历史 | -| 11 | `trades_history` | 数据表 | 链上成交历史 | -| 12 | `strategies` | 业务表 | 策略配置与脚本 | -| 13 | `strategy_trades` | 业务表 | 策略交易记录 | -| 14 | `backtest_results` | 业务表 | 回测结果 | -| 15 | `alerts` | 业务表 | 告警配置 | -| 16 | `exchange_configs` | 配置表 | 交易所密钥配置 | -| 17 | `sync_metadata` | 元数据表 | 数据同步进度跟踪 | -| 18 | `ticker_cache` | 缓存表 | 行情快照缓存 | - ---- - -### 5.2 `kline_history` — K线历史数据(统一表) - -> 旧版统一存储表,所有 timeframe 的K线混合存储在一张表中。新版分表上线后保留以向后兼容,写入时双写。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识,如 `okx`、`binance` | -| `symbol` | TEXT | NOT NULL | 交易对标识,如 `BTC/USDT`、`ETH/USDT` | -| `timeframe` | TEXT | NOT NULL | K线周期,如 `1m`、`5m`、`15m`、`1h`、`4h`、`1d` | -| `timestamp` | INTEGER | NOT NULL | K线开盘时间,Unix 毫秒时间戳 | -| `open` | REAL | NOT NULL | 开盘价(USDT 计价) | -| `high` | REAL | NOT NULL | 最高价(USDT 计价) | -| `low` | REAL | NOT NULL | 最低价(USDT 计价) | -| `close` | REAL | NOT NULL | 收盘价(USDT 计价) | -| `volume` | REAL | NOT NULL | 成交量(以基础货币计,如 BTC) | -| `quote_volume` | REAL | 可空 | 成交额(以计价货币计,如 USDT) | -| `trades_count` | INTEGER | 可空 | 该K线周期内的成交笔数(部分交易所不返回) | - -**唯一约束**: `UNIQUE(exchange, symbol, timeframe, timestamp)` — 同一交易所、交易对、周期、时间戳不可重复。 - -**索引**: `idx_kline_symbol_time ON kline_history(exchange, symbol, timeframe, timestamp)` — 加速按交易对+时间范围查询。 - -**写入策略**: `INSERT OR IGNORE` — 遇到重复记录静默跳过,支持幂等写入。 - ---- - -### 5.3 `kline_5m` / `kline_15m` / `kline_1h` / `kline_4h` / `kline_1d` — K线分表 - -> 按 timeframe 拆分的独立表,无需存储 `timeframe` 字段,查询性能更优。表结构完全一致,以 `kline_1h` 为例说明。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识,如 `okx`、`binance` | -| `symbol` | TEXT | NOT NULL | 交易对标识,如 `BTC/USDT` | -| `timestamp` | INTEGER | NOT NULL | K线开盘时间,Unix 毫秒时间戳 | -| `open` | REAL | NOT NULL | 开盘价 | -| `high` | REAL | NOT NULL | 最高价 | -| `low` | REAL | NOT NULL | 最低价 | -| `close` | REAL | NOT NULL | 收盘价 | -| `volume` | REAL | NOT NULL | 成交量(基础货币) | -| `quote_volume` | REAL | 可空 | 成交额(计价货币) | - -**唯一约束**: `UNIQUE(exchange, symbol, timestamp)` — 注意:因为已经按 timeframe 分表,所以唯一键不包含 timeframe。 - -**索引**: `idx_kline_{tf}_sym_ts ON kline_{tf}(exchange, symbol, timestamp)` - -**分表与统一表的关系**: -- 写入时**双写**: 同时写入分表和 `kline_history` 统一表 -- 读取时**分表优先**: 先查分表,分表为空则自动回退到 `kline_history` -- 分表覆盖的 timeframe: `5m`, `15m`, `1h`, `4h`, `1d` -- 其他周期(如 `1m`, `30m`, `1w`)仍使用 `kline_history` - -**数据量估算**(单交易对,1年数据): - -| 分表 | 周期 | 预计行数/交易对/年 | 说明 | -|------|------|-------------------|------| -| `kline_5m` | 5分钟 | ~105,120 | 365 × 24 × 12 | -| `kline_15m` | 15分钟 | ~35,040 | 365 × 24 × 4 | -| `kline_1h` | 1小时 | ~8,760 | 365 × 24 | -| `kline_4h` | 4小时 | ~2,190 | 365 × 6 | -| `kline_1d` | 1天 | ~365 | 365 | - ---- - -### 5.4 `funding_rate_history` — 资金费率历史 - -> 记录永续合约的历史资金费率,用于资金费率套利分析和回测。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对(永续合约),如 `BTC/USDT` | -| `timestamp` | INTEGER | NOT NULL | 结算时间,Unix 毫秒时间戳 | -| `funding_rate` | REAL | NOT NULL | 资金费率值,如 `0.0001` 表示万分之一 | -| `mark_price` | REAL | 可空 | 结算时的标记价格(用于计算实际费用) | - -**唯一约束**: `UNIQUE(exchange, symbol, timestamp)` - -**索引**: `idx_funding_symbol_time ON funding_rate_history(exchange, symbol, timestamp)` - -**资金费率说明**: -- 正值(如 `0.0003`): 多头支付空头 -- 负值(如 `-0.0002`): 空头支付多头 -- 通常每 8 小时结算一次(OKX / Binance 默认) - ---- - -### 5.5 `funding_rate_realtime` — 资金费率实时数据 - -> 缓存各交易对的最新资金费率及预测值,定期刷新。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `current_rate` | REAL | 可空 | 当期资金费率(最近一次结算的费率) | -| `predicted_rate` | REAL | 可空 | 预测下期资金费率(交易所提供的估算值) | -| `next_funding_time` | INTEGER | 可空 | 下次结算时间,Unix 毫秒时间戳 | -| `mark_price` | REAL | 可空 | 当前标记价格(用于保证金和强平计算的公允价格) | -| `index_price` | REAL | 可空 | 指数价格(多个现货交易所的加权平均价格) | -| `updated_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 记录最后更新时间 | - -**唯一约束**: `UNIQUE(exchange, symbol)` — 每个交易所每个交易对只保留一行最新数据。 - ---- - -### 5.6 `open_interest_history` — 持仓量历史 - -> 记录合约市场的未平仓合约数量变化,反映市场参与度。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `timestamp` | INTEGER | NOT NULL | 数据时间,Unix 毫秒时间戳 | -| `open_interest` | REAL | NOT NULL | 未平仓合约数量(以基础货币计,如 BTC) | -| `open_interest_value` | REAL | 可空 | 未平仓合约价值(以 USDT 计) | - -**唯一约束**: `UNIQUE(exchange, symbol, timestamp)` - ---- - -### 5.7 `liquidation_history` — 爆仓历史 - -> 记录市场上的强制平仓(爆仓)事件,用于情绪分析和风控。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `timestamp` | INTEGER | NOT NULL | 爆仓时间,Unix 毫秒时间戳 | -| `side` | TEXT | NOT NULL | 被爆仓方向: `long`(多头被爆)/ `short`(空头被爆) | -| `price` | REAL | NOT NULL | 爆仓触发价格 | -| `quantity` | REAL | NOT NULL | 爆仓数量(基础货币) | -| `value` | REAL | NOT NULL | 爆仓金额(USDT) | - -**索引**: `idx_liq_time ON liquidation_history(timestamp)` — 按时间排序查询。 - -**注意**: 此表无唯一约束,因为同一时间可能发生多笔爆仓。 - ---- - -### 5.8 `trades_history` — 成交历史 - -> 记录交易所公开的逐笔成交数据(Public Trades),用于微观结构分析。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `trade_id` | TEXT | NOT NULL | 交易所返回的成交ID(唯一标识一笔成交) | -| `timestamp` | INTEGER | NOT NULL | 成交时间,Unix 毫秒时间戳 | -| `side` | TEXT | NOT NULL | 主动方向: `buy`(主买)/ `sell`(主卖) | -| `price` | REAL | NOT NULL | 成交价格 | -| `quantity` | REAL | NOT NULL | 成交数量(基础货币) | -| `quote_quantity` | REAL | 可空 | 成交额(计价货币) | -| `is_maker` | INTEGER | 可空 | 是否为挂单方成交: `1`=是(Maker), `0`=否(Taker) | - -**唯一约束**: `UNIQUE(exchange, symbol, trade_id)` - ---- - -### 5.9 `strategies` — 策略配置表 - -> 存储用户创建的量化策略,包含策略代码(Python 脚本)和运行配置。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 策略唯一ID | -| `name` | TEXT | NOT NULL UNIQUE | 策略名称(唯一,如"双均线策略") | -| `description` | TEXT | 可空 | 策略描述文字 | -| `script_content` | TEXT | NOT NULL | 策略 Python 脚本源代码 | -| `config` | TEXT | 可空 | 策略参数配置,JSON 字符串。示例: `{"fast_period": 5, "slow_period": 20}` | -| `status` | TEXT | DEFAULT 'stopped' | 策略运行状态: `stopped` / `running` / `error` | -| `exchange` | TEXT | 可空 | 绑定的交易所标识 | -| `symbols` | TEXT | 可空 | 绑定的交易对列表,JSON 数组字符串。示例: `["BTC/USDT","ETH/USDT"]` | -| `created_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 策略创建时间 | -| `updated_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 策略最后更新时间 | - -**策略脚本规范**: -- 必须定义 `on_tick(ctx)` 函数,策略引擎会在每个周期调用 -- `ctx` 对象提供 `klines`、`position`、`buy()`、`sell()` 等接口 -- 脚本在沙箱环境中执行,部分危险模块被禁止导入 - ---- - -### 5.10 `strategy_trades` — 策略交易记录 - -> 记录策略引擎执行过程中产生的每一笔交易(买入/卖出)。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `strategy_id` | INTEGER | NOT NULL, FOREIGN KEY → strategies(id) | 所属策略ID | -| `exchange` | TEXT | NOT NULL | 执行交易的交易所 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `order_id` | TEXT | 可空 | 交易所返回的订单ID(模拟盘时可能为空) | -| `timestamp` | INTEGER | NOT NULL | 成交时间,Unix 毫秒时间戳 | -| `side` | TEXT | NOT NULL | 交易方向: `buy` / `sell` | -| `type` | TEXT | NOT NULL | 订单类型: `market`(市价)/ `limit`(限价) | -| `price` | REAL | NOT NULL | 成交价格 | -| `quantity` | REAL | NOT NULL | 成交数量 | -| `fee` | REAL | 可空 | 手续费金额 | -| `fee_asset` | TEXT | 可空 | 手续费币种(如 `USDT`、`BNB`) | -| `pnl` | REAL | 可空 | 该笔交易的盈亏(平仓时计算) | - -**索引**: `idx_strategy_trades_id ON strategy_trades(strategy_id, timestamp)` — 按策略+时间查询。 - -**外键**: `strategy_id` → `strategies(id)`, 删除策略时级联删除关联交易记录。 - ---- - -### 5.11 `backtest_results` — 回测结果表 - -> 存储策略回测运行的绩效指标和详细交易记录。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 回测结果ID | -| `strategy_id` | INTEGER | NOT NULL, FOREIGN KEY → strategies(id) | 关联策略ID | -| `start_date` | TEXT | NOT NULL | 回测起始日期,格式 `YYYY-MM-DD` | -| `end_date` | TEXT | NOT NULL | 回测结束日期,格式 `YYYY-MM-DD` | -| `initial_capital` | REAL | NOT NULL | 初始资金(USDT) | -| `final_capital` | REAL | 可空 | 回测结束时的总资产 | -| `total_return` | REAL | 可空 | 总收益率,如 `0.35` 表示 35% | -| `annual_return` | REAL | 可空 | 年化收益率 | -| `max_drawdown` | REAL | 可空 | 最大回撤,如 `0.12` 表示 12% | -| `sharpe_ratio` | REAL | 可空 | 夏普比率(风险调整后收益指标) | -| `win_rate` | REAL | 可空 | 胜率,如 `0.65` 表示 65% | -| `profit_factor` | REAL | 可空 | 盈亏比(总盈利 / 总亏损) | -| `total_trades` | INTEGER | 可空 | 总交易笔数 | -| `trades_detail` | TEXT | 可空 | 详细交易记录,JSON 字符串 | -| `status` | TEXT | DEFAULT 'running' | 回测状态: `running` / `completed` / `failed` | -| `created_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 回测执行时间 | - -**外键**: `strategy_id` → `strategies(id)` - -**绩效指标说明**: -- `sharpe_ratio`: > 1 为良好, > 2 为优秀, > 3 为卓越 -- `max_drawdown`: 越小越好,通常期望 < 0.2 (20%) -- `profit_factor`: > 1 表示整体盈利, > 2 为优秀 -- `win_rate`: 配合盈亏比使用,高胜率 + 高盈亏比 = 优秀策略 - ---- - -### 5.12 `alerts` — 告警配置表 - -> 用户创建的价格/指标告警规则。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 告警ID | -| `name` | TEXT | NOT NULL | 告警名称,如"BTC 突破 10万" | -| `type` | TEXT | NOT NULL | 告警类型: `price_above` / `price_below` / `funding_rate` / `volume_spike` / `custom` | -| `symbol` | TEXT | 可空 | 监控的交易对(如 `BTC/USDT`,部分全局告警可为空) | -| `condition` | TEXT | NOT NULL | 触发条件,JSON 字符串。示例: `{"threshold": 100000, "exchange": "okx"}` | -| `notification` | TEXT | 可空 | 通知配置,JSON 字符串。示例: `{"telegram_chat_id": "xxx", "webhook_url": "xxx"}` | -| `enabled` | INTEGER | DEFAULT 1 | 是否启用: `1`=启用, `0`=禁用 | -| `last_triggered_at` | TIMESTAMP | 可空 | 上次触发时间(用于防止频繁告警) | -| `created_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 | - ---- - -### 5.13 `exchange_configs` — 交易所配置表 - -> 存储各交易所的 API 密钥配置(敏感数据,生产环境建议加密存储)。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL UNIQUE | 交易所标识,如 `okx`、`binance` | -| `api_key` | TEXT | 可空 | API Key(公钥) | -| `api_secret` | TEXT | 可空 | API Secret(私钥) | -| `passphrase` | TEXT | 可空 | API 口令(OKX 特有,Binance 无此字段) | -| `testnet` | INTEGER | DEFAULT 0 | 是否使用测试网: `1`=测试网, `0`=主网 | -| `enabled` | INTEGER | DEFAULT 1 | 是否启用: `1`=启用, `0`=禁用 | -| `created_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 | - -**安全提醒**: 此表存储敏感信息,在实际部署中应考虑: -1. 数据库文件权限设为 600 -2. `api_secret` 和 `passphrase` 建议 AES 加密后存储 -3. 优先使用 `.env` 环境变量方式配置密钥 - ---- - -### 5.14 `sync_metadata` — 数据同步元数据 - -> 跟踪每个「交易所 × 交易对 × 周期」的同步进度,支持断点续传和增量同步。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `timeframe` | TEXT | NOT NULL | K线周期 | -| `data_type` | TEXT | NOT NULL DEFAULT 'kline' | 数据类型: `kline`(K线)/ `funding`(资金费率) | -| `first_timestamp` | INTEGER | 可空 | 本地最早数据时间戳(毫秒) | -| `last_timestamp` | INTEGER | 可空 | 本地最新数据时间戳(毫秒),增量同步从此处继续 | -| `total_records` | INTEGER | DEFAULT 0 | 本地已存储的总记录数 | -| `status` | TEXT | DEFAULT 'idle' | 同步状态: `idle`(空闲)/ `syncing`(同步中)/ `completed`(已完成)/ `error`(失败) | -| `last_sync_at` | TIMESTAMP | 可空 | 最后一次成功同步的时间 | -| `error_message` | TEXT | 可空 | 最近一次同步失败的错误信息 | -| `created_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 记录创建时间 | -| `updated_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 记录最后更新时间 | - -**唯一约束**: `UNIQUE(exchange, symbol, timeframe, data_type)` - -**索引**: `idx_sync_meta ON sync_metadata(exchange, symbol, timeframe, data_type)` - -**增量同步原理**: -1. 首次同步时,`last_timestamp` 为空,从当前时间回溯 `history_days` 天开始拉取 -2. 后续同步时,从 `last_timestamp + interval_ms` 开始拉取新数据 -3. 每拉取 10 批数据更新一次 `last_timestamp`,实现断点续传 -4. 如果同步中断,下次启动时自动从上次进度继续 - ---- - -### 5.15 `ticker_cache` — 行情快照缓存 - -> 缓存各交易对的最新行情快照,用于减少 API 调用频率。 - -| 字段名 | 数据类型 | 约束 | 说明 | -|--------|----------|------|------| -| `id` | INTEGER | PRIMARY KEY AUTOINCREMENT | 自增主键 | -| `exchange` | TEXT | NOT NULL | 交易所标识 | -| `symbol` | TEXT | NOT NULL | 交易对 | -| `last` | REAL | 可空 | 最新成交价 | -| `bid` | REAL | 可空 | 最优买价(买一价) | -| `ask` | REAL | 可空 | 最优卖价(卖一价) | -| `high` | REAL | 可空 | 24小时最高价 | -| `low` | REAL | 可空 | 24小时最低价 | -| `volume` | REAL | 可空 | 24小时成交量(基础货币) | -| `quote_volume` | REAL | 可空 | 24小时成交额(计价货币) | -| `change` | REAL | 可空 | 24小时价格变动(绝对值,USDT) | -| `change_percent` | REAL | 可空 | 24小时涨跌幅(百分比),如 `2.5` 表示涨 2.5% | -| `timestamp` | INTEGER | 可空 | 行情时间,Unix 毫秒时间戳 | -| `updated_at` | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 缓存更新时间 | - -**唯一约束**: `UNIQUE(exchange, symbol)` — 每个交易对只保留最新一条快照。 - ---- - -### 5.16 ER 图(实体关系) - -``` -strategies (1) ──────< (N) strategy_trades - │ - │ - └──── (1) ──────< (N) backtest_results - -sync_metadata ──── 跟踪 ──── kline_history / kline_5m ... kline_1d - -exchange_configs ──── 对应 ──── 各交易所实例 -``` - ---- - -## 6. 后端 API 参考 - -所有 API 前缀: `/api/v1` - -### 6.1 健康检查 (`/health`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| GET | `/health/` | 系统健康检查,返回 `{"status": "ok"}` | -| GET | `/health/exchanges` | 检查各交易所连接状态 | - -### 6.2 行情数据 (`/market`) - -| 方法 | 路径 | 参数 | 说明 | -|------|------|------|------| -| GET | `/market/ticker` | `exchange`, `symbol` | 获取单个交易对实时行情 | -| GET | `/market/tickers` | `exchange`, `symbols`(逗号分隔) | 获取多个交易对行情 | -| GET | `/market/klines` | `exchange`, `symbol`, `timeframe`, `limit` | 获取K线数据 | -| GET | `/market/orderbook` | `exchange`, `symbol`, `limit` | 获取订单簿深度 | -| GET | `/market/trades` | `exchange`, `symbol`, `limit` | 获取最近成交记录 | -| GET | `/market/symbols` | `exchange`, `quote`(默认USDT) | 获取交易对列表 | - -### 6.3 资金费率 (`/funding`) - -| 方法 | 路径 | 参数 | 说明 | -|------|------|------|------| -| GET | `/funding/rates` | `exchange`, `symbols` | 获取资金费率列表 | -| GET | `/funding/rate/{symbol}` | `exchange` | 获取单个交易对资金费率详情 | -| GET | `/funding/history` | `exchange`, `symbol`, `limit` | 获取资金费率历史 | -| GET | `/funding/opportunities` | `exchange`, `min_rate`, `limit` | 获取套利机会 | -| GET | `/funding/summary` | - | 获取多交易所资金费率汇总 | - -### 6.4 交易 (`/trading`) - -| 方法 | 路径 | 参数 | 说明 | -|------|------|------|------| -| GET | `/trading/balance` | `exchange` | 获取合并账户余额 | -| GET | `/trading/balance/detail` | `exchange` | 获取分账户余额(交易/资金) | -| POST | `/trading/transfer` | Body: `TransferRequest` | 资金划转 | -| GET | `/trading/positions` | `exchange`, `symbol` | 获取持仓 | -| POST | `/trading/spot/order` | Body: `SpotOrderRequest` | 现货下单 | -| POST | `/trading/futures/order` | Body: `FuturesOrderRequest` | 合约下单 | -| POST | `/trading/futures/close-all` | `exchange`, `symbol` | 一键平仓 | -| GET | `/trading/orders/open` | `exchange`, `symbol` | 获取未成交订单 | -| GET | `/trading/orders/history` | `exchange`, `symbol`, `limit` | 获取历史订单 | -| GET | `/trading/order/{order_id}` | `exchange`, `symbol` | 获取订单详情 | -| DELETE | `/trading/order/{order_id}` | `exchange`, `symbol` | 撤单 | -| DELETE | `/trading/orders/all` | `exchange`, `symbol` | 撤销全部订单 | -| GET | `/trading/trades` | `exchange`, `symbol`, `limit` | 获取成交记录 | -| POST | `/trading/check-risk` | Body: 风险检查参数 | 下单前风险检查 | - -### 6.5 策略管理 (`/strategy`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| GET | `/strategy/list` | 获取策略列表 | -| GET | `/strategy/{id}` | 获取策略详情 | -| POST | `/strategy/create` | 创建策略 | -| PUT | `/strategy/{id}` | 更新策略 | -| DELETE | `/strategy/{id}` | 删除策略(级联删除交易记录和回测结果) | -| POST | `/strategy/{id}/start` | 启动策略 | -| POST | `/strategy/{id}/stop` | 停止策略 | -| GET | `/strategy/{id}/trades` | 获取策略交易记录 | -| GET | `/strategy/{id}/status` | 获取策略运行状态 | - -### 6.6 回测 (`/backtest`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| POST | `/backtest/run_sync` | 同步运行回测 | -| POST | `/backtest/run` | 异步运行回测 | -| GET | `/backtest/strategies` | 获取可用回测策略列表 | -| GET | `/backtest/status/{strategy_id}` | 获取回测状态 | -| GET | `/backtest/results` | 获取回测结果列表 | -| GET | `/backtest/result/{backtest_id}` | 获取回测结果详情 | - -### 6.7 监控告警 (`/monitor`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| GET | `/monitor/alerts` | 获取告警列表 | -| POST | `/monitor/alert` | 创建告警 | -| PUT | `/monitor/alert/{id}` | 启用/禁用告警 | -| DELETE | `/monitor/alert/{id}` | 删除告警 | -| GET | `/monitor/running-strategies` | 获取运行中策略列表 | -| GET | `/monitor/liquidations` | 获取爆仓数据 | -| GET | `/monitor/long-short-ratio` | 获取多空比 | -| GET | `/monitor/open-interest` | 获取持仓量 | - -### 6.8 数据同步 (`/data_sync`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| POST | `/data_sync/start` | 启动批量同步(后台运行) | -| POST | `/data_sync/sync_one` | 同步单个交易对(同步等待) | -| GET | `/data_sync/status` | 获取同步状态 | -| GET | `/data_sync/data` | 获取已同步数据清单 | -| POST | `/data_sync/daily_update` | 触发每日增量更新 | -| GET | `/data_sync/config` | 获取默认同步配置 | -| GET | `/data_sync/table_stats` | 获取分表统计信息 | -| POST | `/data_sync/delete` | 删除指定数据 | - -### 6.9 实盘交易 (`/live`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| POST | `/live/configure` | 配置实盘系统 | -| POST | `/live/start` | 启动实盘 | -| POST | `/live/stop` | 停止实盘 | -| POST | `/live/pause` | 暂停实盘 | -| POST | `/live/resume` | 恢复实盘 | -| GET | `/live/dashboard` | 实时监控仪表盘 | -| GET | `/live/events` | 获取交易事件 | -| GET | `/live/equity_curve` | 获取权益曲线 | -| GET | `/live/strategy_info` | 获取当前策略信息 | -| POST | `/live/test_telegram` | 测试 Telegram 推送 | -| GET | `/live/telegram_history` | 获取 Telegram 消息历史 | -| POST | `/live/pre_flight` | 实盘前飞行检查 | -| GET | `/live/strategies` | 获取可用实盘策略列表 | - -### 6.10 模拟盘 (`/paper_trading`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| POST | `/paper_trading/run` | 运行模拟盘 | -| GET | `/paper_trading/status` | 获取模拟盘状态 | -| GET | `/paper_trading/signals` | 获取信号记录 | -| POST | `/paper_trading/stress_test` | 压力测试 | -| GET | `/paper_trading/strategies` | 获取可用策略列表 | -| GET | `/paper_trading/risk_config` | 获取默认风控配置 | -| GET | `/paper_trading/live_signals` | 获取实盘信号 | -| GET | `/paper_trading/signal_stats` | 获取信号统计 | -| POST | `/paper_trading/pre_flight` | 飞行检查 | - -### 6.11 自动化交易 (`/auto-trade`) - -| 方法 | 路径 | 说明 | -|------|------|------| -| POST | `/auto-trade/configure` | 配置自动交易系统 | -| POST | `/auto-trade/start` | 启动自动交易 | -| POST | `/auto-trade/stop` | 停止自动交易 | -| POST | `/auto-trade/pause` | 暂停 | -| POST | `/auto-trade/resume` | 恢复 | -| GET | `/auto-trade/status` | 获取自动交易完整状态 | -| GET | `/auto-trade/events` | 获取交易事件列表 | -| GET | `/auto-trade/equity-curve` | 权益曲线数据 | -| GET | `/auto-trade/strategies` | 列出所有 Pro 策略 | -| GET | `/auto-trade/analyze` | 实时技术分析 | -| POST | `/auto-trade/risk/reset-circuit-breaker` | 解除风控熔断 | -| POST | `/auto-trade/backtest/run` | 运行 Pro 策略回测 | -| POST | `/auto-trade/backtest/run-all` | 批量回测 | -| GET | `/auto-trade/backtest/results` | 获取回测结果 | -| GET | `/auto-trade/backtest/compare` | 策略对比 | - ---- - -## 7. 前端页面模块 - -| 路由 | 页面组件 | 说明 | -|------|----------|------| -| `/` | `Home.tsx` | 首页 — 市场总览,显示 Top50 交易对的实时行情、涨跌幅、成交量、迷你K线图 | -| `/market` | `Market.tsx` | 行情 — K线图表(含MA均线)、订单簿深度、实时价格 | -| `/trading` | `Trading.tsx` | 交易 — 现货/合约下单、账户余额、持仓管理、订单管理 | -| `/strategy` | `Strategy.tsx` | 策略 — 策略编辑器、策略模板广场、启动/停止控制 | -| `/backtest` | `Backtest.tsx` | 回测 — 策略回测配置、绩效指标展示、权益曲线图、交易记录 | -| `/live` | `LiveTrading.tsx` | 模拟/实盘 — 策略选择向导、参数配置、飞行检查、运行监控 | -| `/monitor` | `Monitor.tsx` | 监控 — 运行中策略、告警管理、市场情绪(多空比、持仓量) | -| `/data` | `DataManager.tsx` | 数据 — 数据同步管理、分表统计、增量/全量同步、数据删除 | - ---- - -## 8. 后端服务层 - -| 服务 | 文件 | 核心职责 | -|------|------|----------| -| `MarketService` | `market_service.py` | 行情数据获取与缓存,统一封装交易所 API | -| `FundingService` | `funding_service.py` | 资金费率获取、套利机会识别、多所汇总 | -| `TradingService` | `trading_service.py` | 交易执行(现货/合约)、订单管理、风险检查 | -| `StrategyService` | `strategy_service.py` | 策略 CRUD、生命周期管理 | -| `StrategyEngine` | `strategy_engine.py` | 策略执行引擎、沙箱化代码运行、服务重启时自动恢复 | -| `DataSyncService` | `data_sync_service.py` | K线数据同步、增量拉取、断点续传 | -| `AutoTrader` | `auto_trader.py` | 自动化交易编排、策略循环、PnL 跟踪 | -| `RiskManager` | `risk_manager.py` | 仓位管理、止损止盈、熔断机制、最大回撤控制 | -| `PaperTradingEngine` | `paper_trading.py` | 模拟盘引擎,真实行情 + 模拟执行 | -| `ProBacktestEngine` | `pro_backtest.py` | Pro 策略回测引擎 | -| `BacktestEngine` / `backtrader_engine` | `backtrader_engine.py` | 唯一回测执行路径:Backtrader + `BaseStrategy`(含 `run_sync`、优化器、Agent);已移除 `strategy_backtest.py` | -| `WebSocketService` | `websocket_service.py` | 实时数据推送、订阅管理 | -| `TelegramNotifier` | `telegram_notifier.py` | Telegram 通知推送 | -| `SignalAnalyzer` | `signal_analyzer.py` | 多指标综合信号分析 | -| `SchedulerService` | `scheduler_service.py` | APScheduler 定时任务调度 | -| 技术指标库 | `indicators.py` | SMA/EMA/MACD/RSI/KDJ/BBANDS/ATR 等,纯 NumPy 实现 | - ---- - -## 9. 交易所集成层 - -### 9.1 架构 - -``` -BaseExchange (抽象基类) -├── OKXExchange # OKX 交易所 -├── BinanceExchange # Binance 交易所 -└── MockExchange # 模拟交易所(开发测试用) - -ExchangeManager (统一管理器) -└── 根据 .env 配置初始化,支持 Mock 模式切换 -``` - -### 9.2 `BaseExchange` 公共方法 - -| 方法 | 参数 | 返回 | 说明 | -|------|------|------|------| -| `fetch_ticker(symbol)` | 交易对 | Dict | 获取实时行情 | -| `fetch_tickers(symbols)` | 交易对列表 | List[Dict] | 批量获取行情 | -| `fetch_ohlcv(symbol, timeframe, limit, since)` | - | List[Dict] | 获取K线数据 | -| `fetch_order_book(symbol, limit)` | - | Dict | 获取订单簿 | -| `fetch_trades(symbol, limit)` | - | List[Dict] | 获取最近成交 | -| `fetch_balance()` | - | Dict | 获取账户余额 | -| `create_order(symbol, type, side, amount, price)` | - | Dict | 创建订单 | -| `cancel_order(order_id, symbol)` | - | Dict | 撤销订单 | -| `fetch_open_orders(symbol)` | - | List[Dict] | 获取未成交订单 | -| `fetch_positions(symbol)` | - | List[Dict] | 获取持仓 | - -### 9.3 代理配置 - -通过 `.env` 文件中的 `HTTP_PROXY` / `HTTPS_PROXY` 配置代理,`BaseExchange` 内部延迟读取环境变量,确保 `dotenv` 已加载。 - ---- - -## 10. 配置说明 - -### 10.1 环境变量 (`.env`) - -| 变量名 | 必填 | 默认值 | 说明 | -|--------|------|--------|------| -| `OKX_API_KEY` | 是 | - | OKX API Key | -| `OKX_API_SECRET` | 是 | - | OKX API Secret | -| `OKX_PASSPHRASE` | 是 | - | OKX API 口令 | -| `OKX_TESTNET` | 否 | `true` | 是否使用测试网 | -| `HTTP_PROXY` | 否 | - | HTTP 代理地址,如 `http://127.0.0.1:7890` | -| `HTTPS_PROXY` | 否 | - | HTTPS 代理地址 | -| `DB_PATH` | 否 | 系统默认 | SQLite 数据库文件路径 | -| `LOG_LEVEL` | 否 | `INFO` | 日志级别: `DEBUG`/`INFO`/`WARNING`/`ERROR` | -| `QWEN_API_KEY` | 否 | - | 通义千问 API Key(AI 功能) | -| `REDIS_URL` | 否 | - | Redis 连接地址(可选缓存层) | - -### 10.2 SQLite PRAGMA 优化 - -| PRAGMA | 值 | 说明 | -|--------|-----|------| -| `journal_mode` | WAL | Write-Ahead Logging,允许并发读写 | -| `synchronous` | NORMAL | 在 WAL 模式下兼顾性能与安全 | -| `cache_size` | -65536 | 64MB 查询缓存 | -| `foreign_keys` | ON | 启用外键约束 | -| `busy_timeout` | 5000 | 锁等待超时 5 秒 | - -### 10.3 数据同步默认配置 - -| 配置项 | 值 | 说明 | -|--------|-----|------| -| 默认交易对 | BTC/USDT, ETH/USDT, SOL/USDT, BNB/USDT, XRP/USDT, DOGE/USDT, ADA/USDT, AVAX/USDT, LINK/USDT, DOT/USDT, ZAMA/USDT | 11 个交易对 | -| 默认周期 | 5m, 15m, 1h, 4h, 1d | 5 个时间粒度 | -| 回溯天数 | 365 天 | 首次同步拉取最近 1 年数据 | -| 单次请求上限 | 1000 根K线 | CCXT `fetch_ohlcv` 的 limit 参数 | -| 请求间隔 | 0.3 秒 | 避免触发交易所 API 限流 | - ---- - -## 11. WebSocket 协议 - -### 11.1 连接地址 - -``` -ws://{host}/api/v1/ws -``` - -前端通过 Vite 代理访问 (`vite.config.ts` 中配置 `ws: true`)。 - -### 11.2 消息格式 - -**订阅**: -```json -{ - "action": "subscribe", - "channel": "ticker", - "exchange": "okx", - "symbol": "BTC/USDT" -} -``` - -**取消订阅**: -```json -{ - "action": "unsubscribe", - "channel": "ticker", - "exchange": "okx", - "symbol": "BTC/USDT" -} -``` - -**心跳**: -```json -{"action": "ping"} -``` - -### 11.3 支持的频道 - -| channel | 说明 | 推送频率 | -|---------|------|----------| -| `ticker` | 实时行情 | ~10s | -| `kline` | K线数据更新 | ~5min (取决于周期) | -| `orderbook` | 订单簿深度 | ~5s | -| `trades` | 最新成交 | 实时 | -| `funding` | 资金费率 | ~60s | - ---- - -## 12. 数据同步机制 - -### 12.1 同步流程 - -``` -1. 确定起始时间 - ├── 有 start_date 参数 → 使用参数 - ├── sync_metadata 中有 last_timestamp → 从 last_timestamp + interval 开始 - └── 首次同步 → 从 now - history_days 开始 - -2. 分批拉取数据 - ├── 每批最多 1000 根K线 - ├── 每批间隔 0.3 秒(防限流) - ├── 每 10 批更新一次 sync_metadata(断点续传) - └── 直到 current_ms >= end_ms - -3. 双写入库 - ├── 写入分表 (kline_5m / kline_1h 等) - └── 写入统一表 (kline_history) - -4. 更新元数据 - ├── first_timestamp / last_timestamp - ├── total_records - ├── status = 'completed' - └── last_sync_at -``` - -### 12.2 读取策略 - -``` -get_klines(exchange, symbol, timeframe, ...) - │ - ├── timeframe ∈ {5m, 15m, 1h, 4h, 1d} - │ ├── 优先查分表 kline_{tf} - │ └── 分表为空 → 回退查 kline_history - │ - └── 其他周期 (1m, 30m, 1w ...) - └── 直接查 kline_history -``` - ---- - -> **文档结束** | 如有疑问请联系开发团队 diff --git a/docs/Top50_Cryptocurrencies.md b/docs/Top50_Cryptocurrencies.md deleted file mode 100644 index 3b170c6..0000000 --- a/docs/Top50_Cryptocurrencies.md +++ /dev/null @@ -1,562 +0,0 @@ -# 主流 50 种加密货币详解 - -> 更新时间: 2026年1月 | 数据来源: CoinMarketCap, CoinGecko - ---- - -## 目录 - -1. [第一梯队: 蓝筹币 (Top 10)](#第一梯队-蓝筹币) -2. [第二梯队: 主流币 (11-25)](#第二梯队-主流币) -3. [第三梯队: 潜力币 (26-50)](#第三梯队-潜力币) -4. [分类汇总](#分类汇总) -5. [投资建议](#投资建议) - ---- - -## 第一梯队: 蓝筹币 - -### 1. Bitcoin (BTC) - 比特币 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #1 | -| 市值 | ~$1.9万亿 | -| 发行年份 | 2009 | -| 共识机制 | PoW (工作量证明) | -| 总供应量 | 2100万枚 | -| 创始人 | 中本聪 (Satoshi Nakamoto) | - -**简介**: 第一个去中心化加密货币,被称为"数字黄金"。是整个加密市场的基准和价值存储工具。 - -**特点**: -- 最高的市场认可度和流动性 -- 减半周期 (约4年一次) 影响价格 -- 被多国批准为合法支付手段 -- 机构投资者首选 - -**量化相关**: -- 波动性相对较低 (年化约 60-80%) -- 资金费率套利最稳定 -- 流动性最好,滑点最低 - ---- - -### 2. Ethereum (ETH) - 以太坊 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #2 | -| 市值 | ~$3800亿 | -| 发行年份 | 2015 | -| 共识机制 | PoS (权益证明) | -| 创始人 | Vitalik Buterin | - -**简介**: 首个支持智能合约的区块链平台,DeFi、NFT 生态的基础设施。 - -**特点**: -- 智能合约平台的领导者 -- Gas 费用波动影响使用成本 -- 2022年完成从 PoW 到 PoS 的转换 -- Layer2 生态蓬勃发展 - -**量化相关**: -- 与 BTC 高度相关 (相关系数 ~0.85) -- DeFi 套利机会丰富 -- Gas 费波动影响链上策略成本 - ---- - -### 3. Tether (USDT) - 泰达币 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #3 | -| 市值 | ~$1400亿 | -| 类型 | 稳定币 | -| 锚定 | 1:1 美元 | -| 发行方 | Tether Limited | - -**简介**: 最大的美元稳定币,是加密市场的主要交易媒介。 - -**特点**: -- 交易对最多,流动性最好 -- 中心化发行,存在审计争议 -- 多链部署 (ETH, TRX, SOL 等) - -**量化相关**: -- 计价货币,几乎所有策略都涉及 -- 脱锚风险需要监控 -- 跨链套利机会 - ---- - -### 4. XRP (XRP) - 瑞波币 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #4 | -| 市值 | ~$1300亿 | -| 发行年份 | 2012 | -| 共识机制 | RPCA | -| 发行方 | Ripple Labs | - -**简介**: 专注于跨境支付的加密货币,与传统金融机构合作紧密。 - -**特点**: -- 交易速度快 (3-5秒) -- 交易费用极低 -- 与银行合作,有实际应用场景 -- SEC 诉讼已基本结束 - -**量化相关**: -- 价格波动受监管消息影响大 -- 与 BTC 相关性中等 - ---- - -### 5. Solana (SOL) - -| 属性 | 值 | -|------|-----| -| 市值排名 | #5 | -| 市值 | ~$950亿 | -| 发行年份 | 2020 | -| 共识机制 | PoS + PoH | -| TPS | 65,000+ | - -**简介**: 高性能公链,以快速和低费用著称,是以太坊的主要竞争者。 - -**特点**: -- 极高的交易速度 -- 交易费用低廉 (~$0.00025) -- Meme 币和 NFT 生态活跃 -- 曾多次发生网络中断 - -**量化相关**: -- 波动性较高,适合趋势策略 -- Raydium、Jupiter 等 DEX 流动性好 -- 链上机器人套利活跃 - ---- - -### 6. BNB (BNB) - 币安币 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #6 | -| 市值 | ~$950亿 | -| 发行年份 | 2017 | -| 发行方 | Binance | -| 用途 | 交易手续费折扣、生态代币 | - -**简介**: 全球最大交易所 Binance 的平台币。 - -**特点**: -- 手续费折扣 (最高25%) -- BNB Chain 生态支持 -- 定期销毁机制 -- 与 Binance 命运绑定 - -**量化相关**: -- 用于节省交易手续费 -- 与 BTC 相关性高 -- Launchpool 挖矿收益 - ---- - -### 7. Dogecoin (DOGE) - 狗狗币 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #7 | -| 市值 | ~$480亿 | -| 发行年份 | 2013 | -| 共识机制 | PoW (Scrypt) | -| 总供应量 | 无上限 | - -**简介**: 最早的 Meme 币,因马斯克推文而爆发。 - -**特点**: -- 社区文化强 -- 无上限供应,年通胀约 5% -- 受名人效应影响大 -- 实际用途有限 - -**量化相关**: -- 波动极大,高风险高收益 -- 社交媒体情绪驱动 -- 适合短线交易 - ---- - -### 8. Cardano (ADA) - 艾达币 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #8 | -| 市值 | ~$350亿 | -| 发行年份 | 2017 | -| 共识机制 | PoS (Ouroboros) | -| 创始人 | Charles Hoskinson | - -**简介**: 学术研究驱动的智能合约平台,强调安全性和可持续性。 - -**特点**: -- 学术论文驱动开发 -- 开发进度较慢但稳健 -- 非洲市场布局 -- 质押收益约 4-5% - -**量化相关**: -- 波动性中等 -- 质押收益可纳入策略 - ---- - -### 9. TRON (TRX) - 波场 - -| 属性 | 值 | -|------|-----| -| 市值排名 | #9 | -| 市值 | ~$220亿 | -| 发行年份 | 2017 | -| 共识机制 | DPoS | -| 创始人 | 孙宇晨 | - -**简介**: 专注于内容分发和娱乐的公链,USDT 的主要承载链之一。 - -**特点**: -- USDT-TRC20 交易量巨大 -- 交易费用低 -- 争议性创始人 - -**量化相关**: -- USDT 跨链套利 -- 流动性好 - ---- - -### 10. Avalanche (AVAX) - -| 属性 | 值 | -|------|-----| -| 市值排名 | #10 | -| 市值 | ~$150亿 | -| 发行年份 | 2020 | -| 共识机制 | 雪崩共识 | -| TPS | 4,500+ | - -**简介**: 高性能智能合约平台,支持子网定制。 - -**特点**: -- 三链架构 (X/P/C 链) -- 子网功能强大 -- 机构合作较多 -- DeFi 生态活跃 - -**量化相关**: -- 跨链桥套利 -- DeFi 收益策略 - ---- - -## 第二梯队: 主流币 - -### 11. Chainlink (LINK) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$140亿 | -| 类型 | 预言机 | -| 发行年份 | 2017 | - -**简介**: 最大的去中心化预言机网络,为智能合约提供链下数据。 - -**特点**: -- DeFi 基础设施 -- 跨链互操作性 (CCIP) -- 质押功能上线 - ---- - -### 12. Shiba Inu (SHIB) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$130亿 | -| 类型 | Meme 币 | -| 发行年份 | 2020 | - -**简介**: 第二大 Meme 币,自称"狗狗币杀手"。 - -**特点**: -- 超大供应量 (销毁机制) -- Shibarium Layer2 -- 社区驱动 - ---- - -### 13. Polkadot (DOT) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$100亿 | -| 类型 | 跨链协议 | -| 创始人 | Gavin Wood | - -**简介**: 异构多链架构,支持平行链。 - -**特点**: -- 跨链互操作性 -- 平行链拍卖 -- 共享安全性 - ---- - -### 14. Polygon (MATIC/POL) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$80亿 | -| 类型 | Layer2 | -| 发行年份 | 2019 | - -**简介**: 以太坊 Layer2 扩容方案,已迁移至 POL 代币。 - -**特点**: -- 以太坊生态桥梁 -- zkEVM 技术领先 -- 企业合作多 (星巴克、Nike) - ---- - -### 15. Litecoin (LTC) - 莱特币 - -| 属性 | 值 | -|------|-----| -| 市值 | ~$70亿 | -| 类型 | 支付 | -| 发行年份 | 2011 | - -**简介**: 比特币的"银",专注于支付场景。 - -**特点**: -- 区块时间 2.5 分钟 -- 已完成多次减半 -- 老牌加密货币 - ---- - -### 16. Bitcoin Cash (BCH) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$90亿 | -| 类型 | 支付 | -| 来源 | 2017年比特币分叉 | - -**简介**: 比特币分叉币,更大区块支持更多交易。 - ---- - -### 17. Uniswap (UNI) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$80亿 | -| 类型 | DEX 治理代币 | -| 发行年份 | 2020 | - -**简介**: 最大的去中心化交易所治理代币。 - -**特点**: -- AMM 模式开创者 -- 多链部署 -- 费用切换提案 - ---- - -### 18. NEAR Protocol (NEAR) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$60亿 | -| 类型 | Layer1 公链 | -| 特点 | 分片扩容 | - -**简介**: 用户友好的智能合约平台,支持链抽象。 - ---- - -### 19. Stellar (XLM) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$100亿 | -| 类型 | 跨境支付 | -| 发行年份 | 2014 | - -**简介**: 专注于低成本跨境支付的网络。 - ---- - -### 20. Aptos (APT) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$45亿 | -| 类型 | Layer1 | -| 语言 | Move | - -**简介**: Meta (Facebook) 前 Diem 团队开发的新公链。 - ---- - -### 21. Internet Computer (ICP) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$50亿 | -| 类型 | 去中心化云计算 | -| 发行方 | DFINITY | - -**简介**: 去中心化的"世界计算机"。 - ---- - -### 22. Filecoin (FIL) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$35亿 | -| 类型 | 去中心化存储 | -| 发行年份 | 2020 | - -**简介**: 去中心化存储网络。 - ---- - -### 23. Cosmos (ATOM) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$35亿 | -| 类型 | 跨链协议 | -| 特点 | IBC 协议 | - -**简介**: "区块链的互联网",支持链间通信。 - ---- - -### 24. Arbitrum (ARB) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$35亿 | -| 类型 | Layer2 | -| 技术 | Optimistic Rollup | - -**简介**: 以太坊最大的 Layer2 网络。 - ---- - -### 25. Immutable (IMX) - -| 属性 | 值 | -|------|-----| -| 市值 | ~$30亿 | -| 类型 | NFT/游戏 Layer2 | - -**简介**: 专注于 NFT 和游戏的以太坊 Layer2。 - ---- - -## 第三梯队: 潜力币 - -| 排名 | 名称 | 代币 | 类型 | 市值 | 简介 | -|------|------|------|------|------|------| -| 26 | Hedera | HBAR | 企业级公链 | ~$110亿 | 哈希图共识,企业合作多 | -| 27 | Render | RNDR | GPU 渲染 | ~$45亿 | 去中心化 GPU 渲染网络 | -| 28 | Sui | SUI | Layer1 | ~$40亿 | Move 语言新公链 | -| 29 | Optimism | OP | Layer2 | ~$30亿 | 以太坊 Optimistic Rollup | -| 30 | Injective | INJ | DeFi | ~$30亿 | 跨链 DeFi 衍生品 | -| 31 | VeChain | VET | 供应链 | ~$28亿 | 企业供应链追踪 | -| 32 | The Graph | GRT | 索引协议 | ~$25亿 | 区块链数据索引 | -| 33 | Theta | THETA | 视频流 | ~$22亿 | 去中心化视频分发 | -| 34 | Fantom | FTM | Layer1 | ~$20亿 | DAG 共识高性能链 | -| 35 | Maker | MKR | 稳定币 | ~$18亿 | DAI 稳定币治理 | -| 36 | Aave | AAVE | 借贷协议 | ~$18亿 | 最大 DeFi 借贷平台 | -| 37 | Stacks | STX | 比特币 L2 | ~$30亿 | 比特币智能合约层 | -| 38 | Algorand | ALGO | Layer1 | ~$35亿 | 纯 PoS 共识 | -| 39 | Flow | FLOW | NFT 公链 | ~$12亿 | NBA Top Shot 底层 | -| 40 | Axie Infinity | AXS | GameFi | ~$10亿 | 链游先驱 | -| 41 | Sandbox | SAND | 元宇宙 | ~$10亿 | 虚拟土地平台 | -| 42 | Decentraland | MANA | 元宇宙 | ~$9亿 | 去中心化虚拟世界 | -| 43 | Gala | GALA | 游戏 | ~$8亿 | 区块链游戏平台 | -| 44 | Curve | CRV | DEX | ~$7亿 | 稳定币 DEX | -| 45 | 1inch | 1INCH | DEX 聚合 | ~$6亿 | DEX 聚合器 | -| 46 | Enjin | ENJ | NFT/游戏 | ~$5亿 | 游戏 NFT 平台 | -| 47 | Lido | LDO | 质押 | ~$20亿 | 最大流动性质押协议 | -| 48 | Rocket Pool | RPL | 质押 | ~$5亿 | 去中心化 ETH 质押 | -| 49 | Pendle | PENDLE | DeFi | ~$6亿 | 收益代币化协议 | -| 50 | Jupiter | JUP | DEX 聚合 | ~$15亿 | Solana DEX 聚合器 | - ---- - -## 分类汇总 - -### 按功能分类 - -| 分类 | 代币 | 特点 | -|------|------|------| -| **支付/价值存储** | BTC, LTC, BCH, XRP, XLM | 交易媒介,相对稳定 | -| **智能合约平台** | ETH, SOL, ADA, AVAX, DOT, NEAR, APT, SUI | 基础设施,生态竞争 | -| **稳定币** | USDT, USDC, DAI | 锚定美元,交易媒介 | -| **DeFi** | UNI, AAVE, MKR, CRV, LINK, INJ | 去中心化金融 | -| **Layer2** | MATIC, ARB, OP, IMX, STX | 扩容解决方案 | -| **Meme 币** | DOGE, SHIB | 社区驱动,高波动 | -| **存储/计算** | FIL, RNDR, ICP | 去中心化基础设施 | -| **游戏/NFT** | AXS, SAND, MANA, GALA, FLOW | 链游和元宇宙 | - -### 按波动性分类 - -| 波动性 | 代币 | 年化波动率 | 适合策略 | -|--------|------|-----------|----------| -| **低** | BTC, ETH, USDT | 50-80% | 套利、网格 | -| **中** | SOL, ADA, DOT, LINK | 80-120% | 趋势跟踪 | -| **高** | DOGE, SHIB, Meme币 | 150%+ | 短线、动量 | - ---- - -## 投资建议 - -### 新手配置建议 - -| 类型 | 比例 | 代币 | -|------|------|------| -| 核心持仓 | 60% | BTC, ETH | -| 主流配置 | 25% | SOL, BNB, ADA | -| 风险敞口 | 15% | 自选潜力币 | - -### 量化策略建议 - -| 策略类型 | 推荐标的 | 原因 | -|----------|----------|------| -| **资金费率套利** | BTC, ETH | 流动性最好,费率稳定 | -| **跨交易所套利** | BTC, ETH, SOL | 深度好,滑点小 | -| **网格交易** | BTC, ETH, SOL | 波动适中 | -| **趋势跟踪** | SOL, AVAX, DOT | 波动大,趋势明显 | -| **Meme 投机** | DOGE, SHIB | 社交媒体监控 | - ---- - -## 风险提示 - -1. **市场风险**: 加密货币市场波动剧烈,可能损失全部本金 -2. **监管风险**: 各国政策不确定性 -3. **技术风险**: 智能合约漏洞、黑客攻击 -4. **流动性风险**: 小币种可能无法及时成交 -5. **交易所风险**: FTX 事件的教训 - -> ⚠️ 本文档仅供学习参考,不构成投资建议。加密货币投资风险极高,请谨慎决策。 diff --git a/docs/ARCHITECTURE.md b/docs/architecture.md similarity index 99% rename from docs/ARCHITECTURE.md rename to docs/architecture.md index e53d001..b03b331 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/architecture.md @@ -1,6 +1,6 @@ # QuantBase 技术架构 -本文档面向开发者、维护者和 AI Agent,说明 QuantBase 的主要运行层、数据流、持久化边界和验证方式。README 只保留入口视角,长期产品行为以 [docs/spec.md](spec.md) 为准,开源社区版边界以 [docs/OPEN_SOURCE_SCOPE.md](OPEN_SOURCE_SCOPE.md) 为准。 +本文档面向开发者、维护者和 AI Agent,说明 QuantBase 的主要运行层、数据流、持久化边界和验证方式。README 只保留入口视角,长期产品行为以 [docs/spec.md](spec.md) 为准,开源社区版边界以 [docs/open-source-scope.md](open-source-scope.md) 为准。 ## 1. 架构目标 diff --git a/docs/codebase-guide.md b/docs/codebase-guide.md index d145c88..ff46c75 100644 --- a/docs/codebase-guide.md +++ b/docs/codebase-guide.md @@ -7,8 +7,8 @@ 1. `README.md`:了解产品定位、主要页面和运行边界。 2. `docs/README.md`:按产品、架构、页面、合同、研究、部署、QA 和截图找到文档入口。 3. `docs/spec.md`:了解当前产品合同、行为约束和长期规格。 -4. `docs/ARCHITECTURE.md`:了解分层架构、核心数据流和部署边界。 -5. `docs/OPEN_SOURCE_SCOPE.md`:了解社区版保留和剥离范围。 +4. `docs/architecture.md`:了解分层架构、核心数据流和部署边界。 +5. `docs/open-source-scope.md`:了解社区版保留和剥离范围。 6. `docs/progress.md`:了解整理时间线、验证记录和遗留事项。 本仓库把文档当作系统状态的一部分。只要行为、接口、页面或运行方式发生变化,就应该同步更新对应规格、页面文档和进度记录。 @@ -132,19 +132,19 @@ K 线数据有两个真实数据来源: - `/data` - `/ai-lab` -页面模块使用 lazy loading。主布局和登录态 provider 保留在页面路由外层,避免懒加载或 Vite chunk 替换时整页布局被 fallback 顶掉。 +页面模块使用 lazy loading。主布局保留在页面路由外层,避免懒加载或 Vite chunk 替换时整页布局被 fallback 顶掉。社区版前端不提供登录页面或访客只读 UI;如需访问控制,请在二次开发或部署层接入。 `frontend/src/api/client.ts` 统一管理 REST 行为: - Axios base URL 是 `/api/v2`。 -- 请求携带 credentials,以支持服务端 session cookie。 +- 请求携带 credentials,以兼容二次开发中的服务端 session cookie。 - API envelope 在客户端边界统一 unwrap。 - snake_case 和 camelCase 在客户端边界互转。 - 长时间的数据同步和同步式回测使用比普通 REST 更长的 timeout。 ## 文档维护 -长期产品边界写在 `docs/spec.md`,开源社区版范围写在 `docs/OPEN_SOURCE_SCOPE.md`。当一级页面发生变化时,应同步更新 `docs/pages/`。页面文档需要说明页面目的、布局、数据来源、交互、空态/错误态和截图要求。 +长期产品边界写在 `docs/spec.md`,开源社区版范围写在 `docs/open-source-scope.md`。当一级页面发生变化时,应同步更新 `docs/pages/`。页面文档需要说明页面目的、布局、数据来源、交互、空态/错误态和截图要求。 ## 部署与运行 @@ -154,7 +154,7 @@ K 线数据有两个真实数据来源: ./scripts/check.sh ``` -`./init.sh` 会安装依赖、初始化 SQLite,并导入 `data/seed/strategies.json` 中的 10 个公开 demo 策略。`./start.sh`、`./stop.sh`、`./status.sh` 面向本地演示和开发;生产部署、远程数据库同步、域名、反向代理和密钥注入由使用者自行配置。 +`./init.sh` 会安装依赖、初始化 SQLite,并导入 `data/seed/strategies.json` 中的 10 个公开 demo 策略。`./start.sh`、`./stop.sh`、`./status.sh` 面向本地演示和开发;详细运行手册见 `docs/local-deployment.md`。生产部署、远程数据库同步、域名、反向代理和密钥注入由使用者自行配置。 ## 安全扩展方式 diff --git a/docs/DISCLAIMER.md b/docs/disclaimer.md similarity index 100% rename from docs/DISCLAIMER.md rename to docs/disclaimer.md diff --git a/docs/local-deployment.md b/docs/local-deployment.md new file mode 100644 index 0000000..a790247 --- /dev/null +++ b/docs/local-deployment.md @@ -0,0 +1,129 @@ +# Local Deployment Guide + +This guide covers the repository-owned local workflow for running QuantBase on a developer machine or demo host. It is not a production deployment guide. + +## Requirements + +- Python 3.11 or newer +- Node.js 18 or newer +- npm +- `curl` and `lsof` for health checks and port inspection + +QuantBase uses local files, SQLite, and safe disabled defaults for the community edition. Do not place real credentials in tracked files. + +## First Run + +```bash +./init.sh +``` + +The initialization script: + +1. checks Python, pip, Node.js, and npm; +2. creates `backend/venv` when missing; +3. installs backend dependencies from `backend/requirements.txt`; +4. installs frontend dependencies; +5. copies `backend/.env.example` to `backend/.env` only when `.env` is missing; +6. initializes SQLite tables; +7. imports the 10 public demo strategy seeds from `data/seed/strategies.json`. + +Use `./init.sh --force-seed` only when you intentionally want to overwrite matching demo seed entries. + +## Start Services + +```bash +./start.sh +``` + +Default local ports: + +| Service | URL | +| --- | --- | +| Frontend | `http://localhost:8888` | +| Backend | `http://localhost:8889` | +| API docs | `http://localhost:8889/docs` | +| Backend health | `http://localhost:8889/api/v1/health` | +| Backend v2 health | `http://localhost:8889/api/v2/system/health` | + +Component-only startup is available for local debugging: + +```bash +./start.sh --backend-only +./start.sh --frontend-only +``` + +Logs and PID files are written under `logs/`. + +## Inspect And Stop + +```bash +./status.sh +./status.sh --json +./stop.sh +./restart.sh +``` + +`status.sh` checks PID files, ports, health endpoints, log files, database files, disk space, and URLs. `stop.sh` first uses PID files, then process patterns and port fallback. `restart.sh` composes stop and start with the same component flags. + +## Non-Service Verification + +```bash +./scripts/check.sh +``` + +The check script runs the frontend build, frontend lint, backend compile checks, and a focused public-boundary test suite. It uses `backend/venv/bin/python` when the virtual environment exists. + +Use targeted checks for focused changes: + +```bash +pytest -q tests/test_project_disclaimers.py +npm --prefix frontend run build +python3 -m compileall -q backend/app +``` + +## Configuration + +Copy the template only for local use: + +```bash +cp backend/.env.example backend/.env +``` + +Important defaults: + +| Variable | Default | Meaning | +| --- | --- | --- | +| `OKX_TESTNET` | `true` | OKX private API examples default to testnet placeholders. | +| `QUANTBASE_AUTH_ENABLED` | `false` | Frontend community build has no login page; enabling this protects v2 APIs and requires custom access handling. | +| `QUANTBASE_LIVE_TRADING_ENABLED` | `false` | Real-account reads and live execution are disabled. | +| `QUANTBASE_MCP_ENABLE_LIVE_TRADING` | `0` | MCP live mutation tools are disabled. | +| `HERMES_AGENT_ENABLED` | `false` | Optional external agent integration is disabled. | + +Never commit `.env`, API keys, exchange credentials, webhook URLs, local databases, logs, or screenshots with private account data. + +## Expected Local Smoke Test + +After `./start.sh`, a healthy local run should satisfy: + +```bash +curl -fsS http://127.0.0.1:8889/api/v1/health +curl -fsS http://127.0.0.1:8889/api/v2/system/health +curl -fsS http://127.0.0.1:8888/ +./status.sh --json +``` + +Stop services after verification when you do not need them running: + +```bash +./stop.sh +``` + +## Troubleshooting + +| Symptom | Check | +| --- | --- | +| Port 8888 or 8889 is occupied | Run `./status.sh`, then stop the existing QuantBase process or choose a clean shell. | +| Backend exits during startup | Inspect `logs/backend.log`; confirm `backend/venv` exists and dependencies are installed. | +| Frontend exits during startup | Inspect `logs/frontend.log`; confirm `frontend/node_modules` exists. | +| API returns 401 | Confirm `QUANTBASE_AUTH_ENABLED=false` for the community frontend, or provide your own auth flow. | +| Real-account endpoints return disabled errors | This is expected unless `QUANTBASE_LIVE_TRADING_ENABLED=1` is intentionally set. | diff --git a/docs/okx_signal_bot_json_format.md b/docs/okx-signal-bot-json-format.md similarity index 100% rename from docs/okx_signal_bot_json_format.md rename to docs/okx-signal-bot-json-format.md diff --git a/docs/open-source-release-checklist.md b/docs/open-source-release-checklist.md new file mode 100644 index 0000000..37aa66d --- /dev/null +++ b/docs/open-source-release-checklist.md @@ -0,0 +1,30 @@ +# Open Source Release Checklist + +Use this checklist before publishing or tagging a public QuantBase release. + +## Scope + +- [ ] README and `docs/open-source-scope.md` describe the community edition boundary. +- [ ] `docs/spec.md` still states that QuantBase is paper/simulation first. +- [ ] `docs/local-deployment.md` matches the current `init.sh`, `start.sh`, `status.sh`, `stop.sh`, and `scripts/check.sh` behavior. +- [ ] Demo seeds are public examples only and do not include private research parameters or return claims. + +## Sensitive Data + +- [ ] No API keys, exchange credentials, webhook URLs, production hosts, private databases, logs, screenshots, or local runtime files are committed. +- [ ] `.env.example` contains placeholders and safe defaults only. +- [ ] Generated reports, caches, and local data stores are ignored or absent. + +## Risk Language + +- [ ] No docs, examples, UI copy, seeds, or tests present the project as investment advice. +- [ ] No docs, examples, UI copy, seeds, or tests promise returns, low risk, managed accounts, or copy-trading outcomes. +- [ ] Real-account and MCP mutation paths require explicit opt-in flags. + +## Verification + +- [ ] `./scripts/check.sh` +- [ ] `./init.sh` on a clean checkout or documented equivalent setup validation. +- [ ] Temporary local smoke test with `./start.sh`, health curls, `./status.sh --json`, and `./stop.sh`. +- [ ] Targeted tests for changed behavior. +- [ ] Frontend build if UI changed. diff --git a/docs/OPEN_SOURCE_SCOPE.md b/docs/open-source-scope.md similarity index 56% rename from docs/OPEN_SOURCE_SCOPE.md rename to docs/open-source-scope.md index 814e16f..f79c9af 100644 --- a/docs/OPEN_SOURCE_SCOPE.md +++ b/docs/open-source-scope.md @@ -2,6 +2,8 @@ QuantBase 是公开社区版。它用于展示量化研究和工程验证框架,同时把私有策略资产和生产运维细节留在私有仓库之外。 +社区版的目标是让开发者可以审阅架构、运行本地工作台、扩展策略合同、复现 paper/simulation 流程,并理解风险边界。它不是投资产品、托管服务或生产部署模板。 + ## 保留内容 - FastAPI 后端和 React/TypeScript 前端。 @@ -23,7 +25,15 @@ QuantBase 是公开社区版。它用于展示量化研究和工程验证框架 ## 可选能力 -部分模块支持交易所私有 API、AI provider、通知渠道或真实执行研究路径。QuantBase 社区版要求这些能力默认关闭,只有操作者自行配置后才启用。公开示例应聚焦研究和模拟。 +部分模块支持交易所私有 API、AI provider、通知渠道或真实执行研究路径。QuantBase 社区版要求这些能力默认关闭,只有操作者自行配置后才启用。真实账户读取和实盘执行需要 `QUANTBASE_LIVE_TRADING_ENABLED=1`;MCP 实盘变更工具还需要 `QUANTBASE_MCP_ENABLE_LIVE_TRADING=1`。公开示例应聚焦研究和模拟。 + +前端社区版不包含登录页面。后端仍保留可选 session 中间件和 auth API,供二次开发或部署层集成;公开默认配置必须保持关闭。 + +## 本地运行边界 + +- 本地运行脚本只面向开发和演示:`init.sh`、`start.sh`、`status.sh`、`stop.sh`、`restart.sh`。 +- `docs/local-deployment.md` 记录本地初始化、启动、健康检查和故障排查。 +- 生产域名、反向代理、远程数据库、runner、服务器路径、密钥注入和监控告警由使用者自行设计,不随社区版发布。 ## 公开表述规则 diff --git a/docs/pages/README.md b/docs/pages/README.md index 641589d..f25b6d6 100644 --- a/docs/pages/README.md +++ b/docs/pages/README.md @@ -6,7 +6,6 @@ When a page changes, update the matching page document in the same pull request. | Page | Route | Design doc | Screenshot status | | --- | --- | --- | --- | -| 登录门禁 | 全站门禁 | [login.md](login.md) | not bundled | | 首页 | `/` | [home.md](home.md) | not bundled | | 行情 | `/market` | [market.md](market.md) | not bundled | | 策略 | `/strategy` | [strategy.md](strategy.md) | not bundled | @@ -14,8 +13,8 @@ When a page changes, update the matching page document in the same pull request. | 套利中心 | `/arbitrage` | [arbitrage.md](arbitrage.md) | not bundled | | 链上 | `/onchain` | [onchain.md](onchain.md) | not bundled | | 模拟盘 | `/live` | [simulation.md](simulation.md) | not bundled | -| 实盘 | `/live-real` | [live-real.md](live-real.md) | not bundled | -| 盯盘 | `/watch` | [watch.md](watch.md) | not bundled | +| 实盘 | `/live-real` | [live-real.md](live-real.md) | hidden from sidebar | +| 盯盘 | `/watch` | [watch.md](watch.md) | hidden from sidebar | | 信号中心 | `/signals` | [signals.md](signals.md) | not bundled | | 监控 | `/monitor` | [monitor.md](monitor.md) | not bundled | | 数据中心 | `/data` | [data.md](data.md) | not bundled | diff --git a/docs/pages/login.md b/docs/pages/login.md deleted file mode 100644 index 80f6252..0000000 --- a/docs/pages/login.md +++ /dev/null @@ -1,54 +0,0 @@ -# Login Page - -## Purpose - -The login gate protects QuantBase when `QUANTBASE_AUTH_ENABLED=1` while preserving a lightweight demo workflow. It supports administrator account/password login and temporary guest-code login without SMS, email verification, browser-stored JWTs, or self-registration. - -## Route - -- There is no standalone public app route for login. `AuthProvider` checks `/api/v2/auth/me` on startup; when auth is enabled and no valid session exists, `Login` renders instead of `MainLayout`. -- Visitor deep links may include a hash invite, for example `/#invite=BP-...` or `/#guest_code=BP-...`. The login page reads only `window.location.hash`, auto-selects guest mode, submits the invite through `/api/v2/auth/guest/login`, and clears the hash from the address bar with `history.replaceState`. -- A successful login returns to the original QuantBase shell and keeps the session in a server-side `auth_sessions` row plus an HttpOnly cookie. Administrator login is remembered by default across browser restarts until the operator clicks logout or the server session is revoked. -- If auth is disabled, the app renders the main shell as an admin-compatible local operator. - -## First-Screen Layout - -- Full-screen dark financial workspace. -- Desktop: left informational rail with QuantBase identity and two compact permission summaries; right side contains the login form. -- Mobile/narrow: form remains the primary first-screen element. -- The form has a segmented control with `访客邀请码` first and `管理员登录` second. - -## Interactions - -- Guest mode accepts a temporary code such as `BP-...` and submits to `POST /api/v2/auth/guest/login`. -- Guest hash-link mode accepts `/#invite=BP-...` and `/#guest_code=BP-...`; query-string invites such as `?invite=...` are intentionally not supported so the code is not sent as a normal HTTP query. -- Admin mode pre-fills the current deployment's administrator username `Shadowell`, accepts the password, and submits to `POST /api/v2/auth/admin/login`. -- Errors from the backend are shown inline in the form. -- Logout is available from the sidebar when auth is enabled. -- Guest-code sessions expire with the source code, have no separate click-time hours cap, and cannot use the administrator long-lived login behavior. - -## Data Sources - -- `/api/v2/auth/me` -- `/api/v2/auth/admin/login` -- `/api/v2/auth/guest/login` -- `/api/v2/auth/logout` -- `/api/v2/auth/guest-codes` - -## Permission-Driven UI - -- Guests see the same first-level product pages in the sidebar as administrators, including 实盘、盯盘、监控、数据 and AI研发. -- Guests can read page data outside Settings configuration, but backend auth rejects `/api/v2/settings/*`, live trading operations, position close, strategy pause/start/stop, sync writes, signal writes, AI mutations, and trading order/transfer/cancel calls. -- Guest sessions show a sticky top notice inside the main shell: `访客模式:部分页面功能不可用,仅支持查看和受限回测;策略启停、实盘控制、配置修改、数据/AI 写入需管理员权限。` -- Administrators see the full sidebar and can open Settings. -- Settings includes `访客邀请码管理` for administrators only. Its code-generation form pairs each field label with its input in the same responsive grid cell so labels remain visually aligned on desktop and mobile. The manager list shows active codes only; deleting a row revokes that code and removes it from the visible list while preserving backend audit history. - -## Empty And Error States - -- Loading: full-screen `正在检查登录态…`. -- Missing or expired session: login page remains visible and shows a clear expired/revoked message when `/auth/me` reports unauthenticated after a previous session. -- Invalid credentials or guest code: inline error; no main layout is rendered. - -## Screenshot Contract - -README screenshots should not be refreshed from a mocked login state. If login screenshots are added later, capture them from a real running app and document the session/auth state, source URL, viewport, and data state. diff --git a/docs/spec.md b/docs/spec.md index 9aa9546..726fe0b 100644 --- a/docs/spec.md +++ b/docs/spec.md @@ -9,6 +9,9 @@ QuantBase 是面向量化策略研究、工程验证和模拟运行的开源框 - 默认运行 paper/simulation。 - Demo seed 仅用于展示配置形状和平台流程。 - 真实账户、交易所私有 API、通知 webhook 和 AI provider key 都必须由操作者本地配置,并默认关闭。 +- 真实账户读取和实盘执行默认关闭;相关 HTTP 入口需要操作者显式设置 `QUANTBASE_LIVE_TRADING_ENABLED=1`。 +- MCP 实盘变更工具需要单独显式设置 `QUANTBASE_MCP_ENABLE_LIVE_TRADING=1`,不能因为配置了交易所密钥而自动开启。 +- 前端社区版不提供登录页面;`QUANTBASE_AUTH_ENABLED=1` 仅适合二次开发、API 调试或由部署层提供访问控制的场景。 - 任何真实交易、信号投递或账户读取风险都由操作者自行承担。 - 文档、示例、回测和模型输出不得被描述为收益承诺。 @@ -36,6 +39,15 @@ QuantBase 是面向量化策略研究、工程验证和模拟运行的开源框 - Seeds:`data/seed/strategies.json` 提供公开 demo 策略配置。 - Optional AI:Kairos/SuperPnL 本地模型依赖放在 `backend/requirements-ai.txt`,基础安装不拉取 torch 或模型仓库。 +## 本地运行合同 + +- `./init.sh` 是首次运行入口,负责依赖安装、`.env` 模板复制、SQLite 初始化和 demo seed 导入。 +- `./start.sh` 启动本地后端和前端,默认端口为后端 8889、前端 8888。 +- `./status.sh` 检查 PID、端口、健康接口、日志和本地数据库。 +- `./stop.sh` 停止本地服务。 +- `./scripts/check.sh` 是不启动长服务的默认验证入口。 +- 详细说明维护在 `docs/local-deployment.md`。 + ## 非目标 - 不提供投资建议、跟单、托管账户或收益承诺。 @@ -46,9 +58,9 @@ QuantBase 是面向量化策略研究、工程验证和模拟运行的开源框 ## 文档维护规则 - 长期产品边界写在本文件。 -- 架构和数据流写在 `docs/ARCHITECTURE.md`。 +- 架构和数据流写在 `docs/architecture.md`。 - 页面工作流写在 `docs/pages/`。 -- 开源边界写在 `docs/OPEN_SOURCE_SCOPE.md`。 +- 开源边界写在 `docs/open-source-scope.md`。 - 每轮有意义的项目整理写入 `docs/progress.md`。 ## 验收方向 diff --git a/docs/strategy_development_guide.md b/docs/strategy-development-guide.md similarity index 98% rename from docs/strategy_development_guide.md rename to docs/strategy-development-guide.md index 3a06e61..7cdcb90 100644 --- a/docs/strategy_development_guide.md +++ b/docs/strategy-development-guide.md @@ -58,6 +58,8 @@ QuantBase 的核心设计理念是**"一套代码,三处运行"**: | **实盘** | `LiveBroker` | OKX 实时 K 线 | 通过 CCXT 发送真实订单 | | **回测** | `BacktraderBroker` | 本地历史数据 | Backtrader 引擎撮合 | +> 社区版默认关闭实盘执行。HTTP 实盘变更入口需要服务端显式设置 `QUANTBASE_LIVE_TRADING_ENABLED=1`,MCP 实盘变更工具还需要单独设置 `QUANTBASE_MCP_ENABLE_LIVE_TRADING=1`。仅配置交易所 API key 不会自动启用真实下单路径。 + 策略代码**完全不需要关心**当前运行在哪种环境中。你只需要调用 `await self.buy(...)`,底层 Broker 会自动处理撮合逻辑。 **这意味着:** diff --git "a/docs/\345\205\250\347\220\203\344\272\244\345\211\262\346\227\245\345\256\214\345\205\250\346\214\207\345\215\227.md" "b/docs/\345\205\250\347\220\203\344\272\244\345\211\262\346\227\245\345\256\214\345\205\250\346\214\207\345\215\227.md" deleted file mode 100644 index 66edfb5..0000000 --- "a/docs/\345\205\250\347\220\203\344\272\244\345\211\262\346\227\245\345\256\214\345\205\250\346\214\207\345\215\227.md" +++ /dev/null @@ -1,825 +0,0 @@ -# 全球交割日完全指南 - -> 股票、期权、期货、加密货币 — 各类交割日时间表与市场影响 - ---- - -## 目录 - -1. [交割日是什么](#1-交割日是什么) -2. [美股相关交割日](#2-美股相关交割日) -3. [A股相关交割日](#3-a股相关交割日) -4. [港股相关交割日](#4-港股相关交割日) -5. [加密货币交割日](#5-加密货币交割日) -6. [商品期货交割日](#6-商品期货交割日) -7. [四巫日 — 史诗级交割日](#7-四巫日) -8. [全年交割日历总表](#8-全年交割日历总表) -9. [交割日对市场的影响](#9-交割日对市场的影响) -10. [交易者应对策略](#10-交易者应对策略) - ---- - -## 1. 交割日是什么 - -### 一句话解释 - -交割日 = 衍生品合约**到期结算**的日子。到了这天,期货/期权合约必须"了结"——要么实物交割,要么现金结算,合约不复存在。 - -### 为什么交割日重要? - -``` -1. 大量合约集中到期 → 巨额资金重新布局 → 市场波动放大 -2. 期权/期货的"钉扎效应" → 价格被吸引到特定行权价附近 -3. 套利头寸平仓 → 可能引发连锁反应 -4. 交易量激增 → 流动性突然变化 - -交割日前后1~2天,市场波动通常比平时大 30%~100% -``` - -### 交割 vs 到期 vs 结算 - -``` -到期日 (Expiration) = 合约最后有效的那天 -交割日 (Delivery) = 实际完成交割/结算的那天 -结算日 (Settlement) = 资金/标的实际到账的那天 - -多数情况下三者是同一天或相差1~2天 -口语中经常混用,通常说的"交割日"指的就是到期结算日 -``` - ---- - -## 2. 美股相关交割日 - -### 2.1 股票交割日(T+1) - -``` -美股股票交割周期:T+1(2024年5月28日起,之前是T+2) - -含义:今天买入股票 → 明天完成交割(资金和股票真正过户) - -影响: - - 卖出股票后次日资金才可用 - - 除权除息日前 T+1 天必须持有才能获得分红 - - 对普通投资者影响不大(券商通常允许即时交易) - -⚠️ 这不是通常说的"交割日",只是股票清算周期 - 真正影响市场的是下面的衍生品交割日 -``` - -### 2.2 股票期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 美股股票期权(个股 + ETF 期权) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期频率: - 月度期权 → 每月第三个周五 - 周度期权 → 每周五(主流标的) - 0DTE → 当天到期(SPY/QQQ/IWM 每个交易日都有) - -到期时间: - 美东时间 下午 4:00(收盘时) - -行权规则: - 实值期权(ITM)自动行权 - 虚值期权(OTM)自动作废 - 持有人可以在到期日前通知券商放弃行权 - -交割方式: - 实物交割 — 行权后真的给你100股(Call)或收走100股(Put) - -2026年月度期权到期日(每月第三个周五): - 1月16日, 2月20日, 3月20日, 4月17日, 5月15日, 6月19日 - 7月17日, 8月21日, 9月18日, 10月16日, 11月20日, 12月18日 -``` - -### 2.3 指数期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - SPX(标普500指数期权) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -月度到期:每月第三个周五 -周度到期:每周一/三/五(SPX 有3天一到期) -0DTE:每个交易日 - -⚠️ SPX 的月度期权是 AM-settled(上午结算) - 结算价 = 第三个周五开盘时的特殊开盘价(SOQ) - 不是收盘价!这是 SPX 期权的重要特点 - -到期时间: - PM-settled(周度/0DTE)→ 下午 4:00 - AM-settled(月度标准)→ 上午开盘时 - -交割方式:现金结算(不需要交割股票) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - VIX 期权 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月第三个周三(注意!是周三,不是周五) -结算:AM-settled(周三上午开盘) -方式:现金结算 - -VIX 期权到期日比其他期权早2天(周三 vs 周五) -``` - -### 2.4 股指期货交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - E-mini S&P 500 期货(ES) - E-mini Nasdaq 100 期货(NQ) - E-mini Dow 期货(YM) - E-mini Russell 2000 期货(RTY) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期频率:季度合约(3月/6月/9月/12月的第三个周五) -结算方式:现金结算 -结算价:到期日上午的特殊开盘价(SOQ) - -2026年季度到期日: - 3月20日(周五) - 6月19日(周五) - 9月18日(周五) - 12月18日(周五) - -也有月度和周度的 Micro E-mini 合约,但流动性集中在季度合约 -``` - -### 2.5 个股期货(SSF) - -``` -美国的个股期货已基本消亡(OneChicago 2020年关闭) -目前个股期货主要在欧洲(Eurex)和亚洲市场交易 -``` - ---- - -## 3. A股相关交割日 - -### 3.1 股票交割日(T+1 交易, T+0 资金) - -``` -A股交割特点: - 股票:T+1 交割(今天买,明天才能卖) - 资金:T+0 可用(卖出后资金当天可用于买入) - 资金提现:T+1(卖出后次日可转出到银行) - -股权登记日: - 分红/配股前的关键日期 - 在股权登记日收盘时持有股票 → 有权获得分红 - 次日为"除权除息日" → 股价相应调整 - -2026年集中分红季:通常 4月~7月(年报分红) -``` - -### 3.2 股指期货交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 沪深300股指期货(IF) - 上证50股指期货(IH) - 中证500股指期货(IC) - 中证1000股指期货(IM) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -交割日:每月第三个周五 -交割时间:15:00(收盘时) -结算方式:现金交割 -结算价:到期日最后2小时的算术平均价(防止操纵) - -合约月份:当月、下月、随后两个季月 - 例如2月:IF2602(当月), IF2603(下月), IF2606(季月), IF2609(季月) - -2026年交割日: - 1月16日, 2月20日, 3月20日, 4月17日, 5月15日, 6月19日 - 7月17日, 8月21日, 9月18日, 10月16日, 11月20日, 12月18日 - -⚠️ 如遇节假日,提前到前一个交易日 - -A股"交割日魔咒": - 传统说法认为股指期货交割日前后A股波动加大 - 2015年前确实明显(大量投机盘),近年已弱化 - 但交割日当天下午2~3点的波动仍然值得关注 -``` - -### 3.3 ETF 期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 50ETF期权 / 300ETF期权 / 500ETF期权 等 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月第四个周三 -行权日:到期日当天(T日) -交割日:T+1(行权后次日完成ETF份额交割) - -到期时间:15:00(收盘时) - -行权方式: - 实物交割(行权后给你/收走 ETF 份额) - 实值期权自动行权(也可放弃) - -⚠️ 注意:A股期权到期日是周三!不是周五! - 和股指期货交割日(周五)不同 - -2026年ETF期权到期日(每月第四个周三): - 1月28日, 2月25日, 3月25日, 4月22日, 5月27日, 6月24日 - 7月22日, 8月26日, 9月23日, 10月28日, 11月25日, 12月23日 -``` - -### 3.4 股指期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 沪深300股指期权(IO) - 中证1000股指期权(MO) - 上证50股指期权(HO) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月第三个周五(和股指期货同一天!) -结算方式:现金结算 -结算价:到期日最后2小时的算术平均价(和股指期货相同) - -2026年到期日:同股指期货,每月第三个周五 -``` - -### 3.5 A股"三重交割日" - -``` -极少出现但影响巨大的情况: - -当 ETF期权(周三)、股指期权(周五)、股指期货(周五) -在同一周内集中到期时,该周被称为"三重交割周" - -2026年可能出现的三重交割周: - 月份中 第三个周五 和 第四个周三 相距不到一周的月份 - -影响: - - 该周市场波动明显放大 - - 大量套利和对冲头寸集中调整 - - 蓝筹股和权重股受影响最大 -``` - ---- - -## 4. 港股相关交割日 - -### 4.1 股票交割日(T+2) - -``` -港股交割周期:T+2 - -今天买入 → 后天完成交割 -比美股(T+1)慢一天 - -影响: - - 除净日(除权日)前 T+2 天必须持有 - - 月结日(每月最后交易日)有时波动较大 -``` - -### 4.2 股票期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 港股股票期权 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月倒数第二个交易日(注意不是周五!) -到期时间:16:00(港时收盘时) -行权方式:美式(随时可行权) -交割方式:实物交割 - -2026年大致到期日(每月倒数第二个交易日): - 会根据港交所假期调整,通常是月底倒数第2天 -``` - -### 4.3 恒生指数期货/期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 恒生指数期货(HSI Futures) - 恒生指数期权(HSI Options) - 恒生科技指数期货/期权(HSTECH) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月倒数第二个交易日 -结算方式:现金结算 -结算价:到期日当天恒生指数每5分钟采样的平均值(EAS) - -合约月份:即月、下月、之后两个季月 - -⚠️ 港股的期指和期权到期日相同(都是月底倒数第二个交易日) - 和美股(第三个周五)完全不同,注意区分 -``` - -### 4.4 窝轮和牛熊证到期 - -``` -窝轮(Warrants): - 到期日:由发行券商设定,每只不同 - 通常为发行后 6个月~2年 - 到期自动结算(现金结算) - 虚值窝轮到期归零 - -牛熊证(CBBC): - 到期日:由发行券商设定 - 但更重要的是"回收价" — 触及即提前终止 - 强制回收后以残余价值现金结算(可能为零) - -⚠️ 窝轮/牛熊证没有固定的"交割日", - 每只的到期日都不同,购买前必须查看 -``` - ---- - -## 5. 加密货币交割日 - -### 5.1 BTC/ETH 期货交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - OKX 交割合约 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期频率: - 当周合约 → 每周五 16:00 UTC+8 - 次周合约 → 下一个周五 - 当季合约 → 季度最后一个周五 - 次季合约 → 再下一个季度最后一个周五 - -结算时间:北京时间 下午 4:00(16:00 UTC+8) -结算方式:现金结算(USDT) -结算价:到期前1小时的时间加权平均价(TWAP) - -2026年季度合约到期日(OKX): - 3月27日, 6月26日, 9月25日, 12月25日 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Binance 交割合约 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期频率:季度(3月/6月/9月/12月最后一个周五) -结算时间:08:00 UTC -结算方式:现金结算 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - CME BTC/ETH 期货 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月最后一个周五 -结算方式:现金结算(美元) -结算价:CME CF BTC Reference Rate - -⚠️ 永续合约(Perpetual)没有到期日! - 永续合约通过"资金费率"机制锚定现货价格 - 不存在交割的概念 -``` - -### 5.2 BTC/ETH 期权交割日 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Deribit(全球最大加密期权交易所) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期频率: - 每日期权 → 每天 08:00 UTC 到期 - 每周期权 → 每周五 08:00 UTC - 月度期权 → 每月最后一个周五 08:00 UTC - 季度期权 → 3月/6月/9月/12月最后一个周五 - -结算时间:08:00 UTC(北京时间 16:00) -结算价:到期前30分钟的 BTC 指数平均价 -行权方式:自动行权(实值 ≥ $0.01 自动行权) -交割方式:币本位现金结算(BTC期权用BTC结算) - -2026年季度到期日(Deribit): - 3月27日, 6月26日, 9月25日, 12月25日 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - OKX 期权 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期频率:每周五 + 月末 + 季末 -结算时间:16:00 UTC+8 -结算方式:USDT 现金结算 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - CME BTC 期权 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:每月最后一个周五 16:00 纽约时间 -结算方式:美元现金结算 -``` - -### 5.3 加密市场"超级交割日" - -``` -当 BTC 期权 + 期货 在同一天到期时,影响叠加 - -大规模到期的典型数据: - 季度交割日 BTC 期权到期名义价值通常在 $5B~$15B - 比非季度周五大 3~5 倍 - -典型表现: - 交割前 1~2 天:波动率上升,市场方向不明 - 交割日当天:大幅波动后趋于稳定 - 交割后 1~2 天:"释放效应",市场可能选择新方向 - -历史案例: - 2024年3月29日季度交割:$15B BTC期权到期 - → 交割前一周 BTC 在 $69,000~$71,000 剧烈震荡 - → 交割后突破创新高 -``` - ---- - -## 6. 商品期货交割日 - -### 6.1 国际商品期货 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 原油期货(WTI, NYMEX) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -到期日:交割月前一个月的第25个日历日前第3个交易日 - (复杂的规则,通常是每月20日前后) -结算:实物交割(在俄克拉荷马州库欣交割) - ⚠️ 2020年4月WTI跌至 -$37 就是因为临近交割无人接货! - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 黄金期货(COMEX) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -活跃合约月:2月/4月/6月/8月/10月/12月 -到期日:交割月倒数第三个交易日 -结算:可实物交割(100盎司金条)或展期到下一合约 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 白银期货(COMEX) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -活跃合约月:3月/5月/7月/9月/12月 -结算:可实物交割(5,000盎司银条) -``` - -### 6.2 中国商品期货 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 主要品种交割日 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -上期所(SHFE): - 铜/铝/锌/铅/锡/镍 → 交割月第15个日历日(遇假顺延) - 黄金/白银 → 同上 - 原油(INE) → 交割月最后一个交易日 - -大商所(DCE): - 铁矿石/焦煤/焦炭 → 交割月第10个交易日 - 豆粕/玉米/大豆 → 交割月第10个交易日 - -郑商所(CZCE): - 白糖/棉花/PTA/甲醇 → 交割月第10个交易日 - -交割方式: - 个人投资者不允许进入交割月! - → 必须在交割月前一个月最后交易日前平仓 - → 否则强制平仓 - - 只有法人户(企业)才能进行实物交割 -``` - ---- - -## 7. 四巫日 - -### 7.1 什么是四巫日(Quadruple Witching) - -``` -四巫日 = 美股一年四次的"超级交割日" - -四种合约在同一天到期: - 1. 股指期货(ES, NQ, YM, RTY) - 2. 股指期权(SPX, NDX, RUT) - 3. 个股期权(AAPL, TSLA 等所有个股) - 4. 个股期货(已基本消亡,现在实际是"三巫") - -日期:3月/6月/9月/12月 的第三个周五 - -2026年四巫日: - 3月20日(周五) - 6月19日(周五) - 9月18日(周五) - 12月18日(周五) -``` - -### 7.2 四巫日的市场影响 - -``` -典型表现: - -交易量:四巫日交易量通常是普通日的 2~3 倍 -波动率:日内波动增加 30%~80% -价格行为: - - 开盘前 → 期指结算(AM-settled),可能跳空 - 上午 → 大量期权到期平仓,波动剧烈 - 下午 → "再平衡"交易(大量指数基金调仓) - 最后1小时 → "再平衡高峰",成交量暴增 - -数据: - 普通日 SPY 成交量:~8,000万股 - 四巫日 SPY 成交量:~2亿股 (2.5倍) - 最后1小时占全天成交量的 40%+ - -⚠️ 四巫日不一定是涨或跌 - 而是"不确定性最大的日子" - 方向取决于到期合约的分布和市场情绪 -``` - -### 7.3 OPEX(期权到期日) - -``` -每月第三个周五(月度期权到期),即使不是四巫日也很重要 - -"Max Pain"(最大痛点)理论: - 股价倾向于收在"让最多期权买方亏损"的价位 - = 让最多的 Call 和 Put 同时归零的行权价 - - 这是因为期权卖方(机构/做市商)有动力 - 通过对冲操作将价格推向 Max Pain 附近 - - 例子:AAPL 期权到期日 - 行权价 $230 的 Call 持仓量巨大 - 行权价 $220 的 Put 持仓量巨大 - Max Pain 可能在 $225 附近 - → 到期日股价被"钉"在 $225 附近的概率增大 -``` - ---- - -## 8. 全年交割日历总表 - -### 2026年关键交割日(示意) - -``` -┌─────┬────────────────────────────────────────────────────────┐ -│ 月份 │ 关键交割日 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 1月 │ 16(五) A股期指+美股月度OPEX │ -│ │ 28(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 2月 │ 20(五) A股期指+美股月度OPEX │ -│ │ 25(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 3月 │ 20(五) ★★★ 四巫日 + A股期指 ★★★ │ -│ │ 25(三) A股ETF期权 │ -│ │ 27(五) BTC/ETH 季度交割(Deribit/OKX/Binance) │ -├─────┼────────────────────────────────────────────────────────┤ -│ 4月 │ 17(五) A股期指+美股月度OPEX │ -│ │ 22(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 5月 │ 15(五) A股期指+美股月度OPEX │ -│ │ 27(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 6月 │ 19(五) ★★★ 四巫日 + A股期指 ★★★ │ -│ │ 24(三) A股ETF期权 │ -│ │ 26(五) BTC/ETH 季度交割(Deribit/OKX/Binance) │ -├─────┼────────────────────────────────────────────────────────┤ -│ 7月 │ 17(五) A股期指+美股月度OPEX │ -│ │ 22(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 8月 │ 21(五) A股期指+美股月度OPEX │ -│ │ 26(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 9月 │ 18(五) ★★★ 四巫日 + A股期指 ★★★ │ -│ │ 23(三) A股ETF期权 │ -│ │ 25(五) BTC/ETH 季度交割(Deribit/OKX/Binance) │ -├─────┼────────────────────────────────────────────────────────┤ -│ 10月 │ 16(五) A股期指+美股月度OPEX │ -│ │ 28(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 11月 │ 20(五) A股期指+美股月度OPEX │ -│ │ 25(三) A股ETF期权 │ -├─────┼────────────────────────────────────────────────────────┤ -│ 12月 │ 18(五) ★★★ 四巫日 + A股期指 ★★★ │ -│ │ 23(三) A股ETF期权 │ -│ │ 25(五) BTC/ETH 季度交割(Deribit/OKX/Binance) │ -└─────┴────────────────────────────────────────────────────────┘ - -★★★ = 年度最高波动日(四巫日 + 加密季度交割同周) -``` - -### 每周常规交割 - -``` -每周五固定到期的合约: - - 美股周度期权(SPY, QQQ, AAPL, TSLA 等) - - BTC/ETH 周度期权(Deribit) - - OKX 当周交割合约 - - 港股期权(月末) - -每天到期: - - SPY/QQQ/IWM 0DTE 期权 - - Deribit 每日 BTC/ETH 期权 -``` - ---- - -## 9. 交割日对市场的影响 - -### 9.1 价格钉扎效应(Pinning) - -``` -现象:到期日股价被"钉"在某个行权价附近 - -原理: - 做市商卖出了大量期权 → 需要 Delta 对冲 - → 在行权价附近不断买卖标的来维持 Delta 中性 - → 这个行为本身就把价格推向行权价 - -最容易被钉的价位 = Max Pain(最大痛点) - = 让 Call + Put 的总内在价值最小的行权价 - -工具:可以在 www.maximum-pain.com 查看各股票的 Max Pain -``` - -### 9.2 Gamma Squeeze(伽马挤压) - -``` -现象:交割日前价格突然剧烈单方向运动 - -原理: - 大量看涨期权接近平值 - → 做市商需要买入大量股票对冲 Gamma - → 买盘推高股价 - → 更多期权变为实值 - → 需要买更多股票对冲 - → 正反馈循环 → 价格飙升 - -经典案例: - 2021年1月 GameStop(GME)事件 - 散户集中买入 Call → 做市商被迫大量对冲 - → 股价从 $20 飙到 $483 - -反向也可能发生(Gamma 下杀) -``` - -### 9.3 波动率坍缩(IV Crush) - -``` -现象:交割日后隐含波动率骤降 - -原理: - 到期前市场不确定性高 → IV 升高 - 到期后不确定性消除 → IV 回落 - → 期权价格即使方向对了也可能下跌 - -对交易者的影响: - 如果你在交割日前买了期权(IV高), - 交割后 IV 下降 → 你的期权贬值 - -策略: - 交割日前卖期权(收取高IV溢价) - 交割日后买期权(IV便宜) -``` - -### 9.4 各市场交割日影响力排名 - -``` -影响力从大到小: - -1. 美股四巫日 ████████████████████ 影响全球市场 -2. BTC季度交割 ██████████████████ 加密市场巨震 -3. A股股指期货交割日 ████████████████ 影响A股 -4. 美股月度OPEX ██████████████ 影响美股 -5. 港股期指到期日 ████████████ 影响港股 -6. BTC周度交割 ██████████ 常规波动 -7. 美股周度OPEX ████████ 日常影响 -8. 0DTE到期 ██████ 盘中波动 -``` - ---- - -## 10. 交易者应对策略 - -### 10.1 交割日前(提前1~3天) - -``` -✅ 应该做的: - - 检查日历,标记即将到来的交割日 - - 查看持仓中是否有即将到期的期权/期货 - - 减小仓位规模(波动加大 → 风险加大) - - 查看 Max Pain 位置(期权钉扎参考) - - 关注未平仓合约(OI)的分布 - - 设置好止损/止盈 - -❌ 不应该做的: - - 在交割日前大幅加仓 - - 持有即将到期的深度虚值期权(大概率归零) - - 忽视交割日带来的额外波动 -``` - -### 10.2 交割日当天 - -``` -✅ 应该做的: - - 盯盘关键时段: - 美股:开盘第1小时 + 最后1小时 - A股:14:00~15:00 - 加密:到期前1小时 - - 谨慎交易,降低杠杆 - - 如果有到期期权,决定是行权、平仓还是让其作废 - -❌ 不应该做的: - - 试图在交割日"抄底"或"追涨"(方向不确定) - - 开新的大额头寸 - - 忽视尾盘的剧烈波动 -``` - -### 10.3 交割日后 - -``` -✅ 应该做的: - - 观察市场是否选择了新方向 - - IV 下降后考虑建立新的期权头寸(便宜了) - - 复盘交割日的市场行为,积累经验 - -利用交割日的策略: - 1. "交割日后突破"策略 - → 等交割完成,市场选方向后顺势跟入 - - 2. "IV Crush"收割策略 - → 在交割前卖出高IV期权(收权利金) - → 交割后IV下降,期权贬值,买回平仓 - ⚠️ 高级策略,新手不建议 - - 3. "日历价差"策略 - → 利用近月/远月期权的IV差异 -``` - -### 10.4 加密市场特别注意 - -``` -加密货币交割日的特殊之处: - -1. 24/7市场 → 交割前的波动可能在任何时间发生 -2. 杠杆极高 → 交割日爆仓金额经常超过 $1B -3. 信息来源: - - Deribit 官网可以看到即将到期的期权名义价值 - - Coinglass.com 可以看到期权到期日历和持仓分布 - - Laevitas.ch 可以看到 Max Pain 和 Greeks - -4. 典型的交割日行情模式: - 交割前3天:波动率上升,价格震荡 - 交割前1天:可能出现"洗盘"(先跌后涨或先涨后跌) - 交割当天:大量平仓 → 波动高峰 → 结算后平静 - 交割后1天:市场重新定价 → 可能出现趋势性行情 -``` - ---- - -## 附录:各市场交割时间速查表 - -``` -┌──────────────────┬───────────────┬──────────────┬──────────┐ -│ 品种 │ 交割日 │ 结算时间 │ 结算方式 │ -├──────────────────┼───────────────┼──────────────┼──────────┤ -│ 美股股票 │ T+1 │ 次日 │ 实物 │ -│ 美股月度期权 │ 每月第3个周五 │ 16:00 EST │ 实物/现金 │ -│ 美股周度期权 │ 每周五 │ 16:00 EST │ 实物/现金 │ -│ SPX 月度期权 │ 每月第3个周五 │ AM开盘 │ 现金 │ -│ VIX 期权 │ 每月第3个周三 │ AM开盘 │ 现金 │ -│ 美股指期货(ES) │ 季度第3个周五 │ AM开盘 │ 现金 │ -├──────────────────┼───────────────┼──────────────┼──────────┤ -│ A股股票 │ T+1 │ 次日 │ 实物 │ -│ A股股指期货(IF) │ 每月第3个周五 │ 15:00 CST │ 现金 │ -│ A股股指期权(IO) │ 每月第3个周五 │ 15:00 CST │ 现金 │ -│ A股ETF期权 │ 每月第4个周三 │ 15:00 CST │ 实物 │ -├──────────────────┼───────────────┼──────────────┼──────────┤ -│ 港股股票 │ T+2 │ 2天后 │ 实物 │ -│ 港股股票期权 │ 月末倒数第2天 │ 16:00 HKT │ 实物 │ -│ 恒生指数期货 │ 月末倒数第2天 │ 16:00 HKT │ 现金 │ -├──────────────────┼───────────────┼──────────────┼──────────┤ -│ BTC期权(Deribit) │ 每天/周五/季末 │ 08:00 UTC │ BTC现金 │ -│ BTC期权(OKX) │ 每周五/季末 │ 16:00 UTC+8 │ USDT现金 │ -│ BTC期货(OKX) │ 每周五/季末 │ 16:00 UTC+8 │ USDT现金 │ -│ BTC期货(CME) │ 每月最后周五 │ 16:00 EST │ USD现金 │ -├──────────────────┼───────────────┼──────────────┼──────────┤ -│ 黄金期货(COMEX) │ 交割月倒数第3天│ 交割月内 │ 实物 │ -│ 原油期货(WTI) │ 月前~20日 │ 交割月内 │ 实物 │ -│ 中国商品期货 │ 交割月第10~15日│ 交割日 │ 实物 │ -└──────────────────┴───────────────┴──────────────┴──────────┘ -``` - ---- - -*文档版本:v1.0 | 更新日期:2026-02-08* -*注意:具体交割日可能因交易所假期调整,请以各交易所官方公告为准* diff --git "a/docs/\345\205\250\347\220\203\346\234\237\346\235\203\345\270\202\345\234\272\345\205\250\346\231\257\346\214\207\345\215\227.md" "b/docs/\345\205\250\347\220\203\346\234\237\346\235\203\345\270\202\345\234\272\345\205\250\346\231\257\346\214\207\345\215\227.md" deleted file mode 100644 index be25c9e..0000000 --- "a/docs/\345\205\250\347\220\203\346\234\237\346\235\203\345\270\202\345\234\272\345\205\250\346\231\257\346\214\207\345\215\227.md" +++ /dev/null @@ -1,881 +0,0 @@ -# 全球期权市场全景指南 - -> 美股、港股、A股、加密货币、商品期货 — 各市场期权的异同与实操要点 - ---- - -## 目录 - -1. [全球期权市场总览](#1-全球期权市场总览) -2. [美股期权(最成熟的市场)](#2-美股期权) -3. [港股期权](#3-港股期权) -4. [A股期权(中国大陆)](#4-a股期权) -5. [加密货币期权](#5-加密货币期权) -6. [商品期货期权](#6-商品期货期权) -7. [外汇期权](#7-外汇期权) -8. [各市场横向对比](#8-各市场横向对比) -9. [期权分类体系](#9-期权分类体系) -10. [各市场开户与门槛](#10-各市场开户与门槛) -11. [新手选择建议](#11-新手选择建议) - ---- - -## 1. 全球期权市场总览 - -``` -全球期权日均交易量(2025年估算): - -美股期权 ████████████████████████████████████ 5,500万张/天 (全球最大) -加密期权 ████████████ 1,800万张/天 (增长最快) -欧洲期权 ██████████ 1,500万张/天 -印度期权 ████████████████████████████ 4,000万张/天 (按张数最多) -港股期权 ████ 600万张/天 -A股期权 ███ 500万张/天 -商品期权 ██ 300万张/天 -``` - ---- - -## 2. 美股期权 - -### 2.1 基本信息 - -| 项目 | 说明 | -|------|------| -| **交易所** | CBOE(芝加哥期权交易所)、NYSE ARCA、NASDAQ | -| **标的** | 个股(AAPL、TSLA等)、ETF(SPY、QQQ等)、指数(SPX、VIX) | -| **类型** | 美式期权(可提前行权) | -| **合约单位** | 1张 = 100股 | -| **到期日** | 每周五(周期权)、每月第三个周五(月度)、季度、LEAPS(长期,1~3年) | -| **结算方式** | 实物交割(个股/ETF)或现金结算(指数) | -| **交易时间** | 美东 9:30~16:00(部分支持盘前盘后) | -| **最小变动** | $0.01(权利金 < $3)或 $0.05(权利金 ≥ $3) | - -### 2.2 美股期权的种类 - -#### ① 个股期权(Stock Options) - -``` -最常交易的品种,几乎所有美股都有期权 - -热门标的: - AAPL — 苹果,流动性最好 - TSLA — 特斯拉,波动大,投机者最爱 - NVDA — 英伟达,AI概念 - AMZN — 亚马逊 - META — Meta - GOOG — 谷歌 - SPY — 标普500 ETF(流动性之王) - QQQ — 纳斯达克100 ETF - -特点: - - 1张合约 = 100股 - - 美式期权,随时可以行权 - - 到期实物交割(真的给你100股或要你交100股) -``` - -**实例**: - -``` -AAPL 250221 C 230 - -AAPL — 标的(苹果) -250221 — 到期日(2025年2月21日) -C — Call(看涨) -230 — 行权价 $230 - -假设权利金 = $5.00 -买入成本 = $5.00 × 100 = $500(1张合约) - -如果苹果涨到 $250: - 利润 = ($250 - $230 - $5) × 100 = $1,500 - 回报率 = 300% - -如果苹果跌到 $220: - 亏损 = $500(权利金全部) -``` - -#### ② 指数期权(Index Options) - -``` -标的是指数本身,不是 ETF - -主要品种: - SPX — 标普500指数期权(最活跃的指数期权) - NDX — 纳斯达克100指数期权 - RUT — 罗素2000指数期权 - VIX — 波动率指数期权(特殊!) - -特点: - - 欧式期权(只能到期行权) - - 现金结算(不需要交割股票) - - 合约乘数通常 = $100 - - 税务优惠:美国60/40税率规则(60%长期+40%短期) - - SPX 有 0DTE(当天到期)期权,非常热门 - -SPX vs SPY 期权对比: - SPX:指数,欧式,现金结算,合约大(≈$500,000名义) - SPY:ETF,美式,实物交割,合约小(≈$50,000名义) -``` - -#### ③ VIX 期权(波动率期权) - -``` -VIX = "恐慌指数",衡量市场对未来30天波动的预期 - -VIX 期权非常特殊: - - 标的不是股票,是"波动率"本身 - - 只有 Call 和 Put,没有对应的"现货"可以直接买卖 - - 欧式期权,现金结算 - - VIX 通常在 12~20 之间,恐慌时飙到 40~80 - -用途: - - 买 VIX Call = 押注市场恐慌(对冲"黑天鹅") - - 买 VIX Put = 押注市场平静 - - 组合对冲策略的重要组件 - -例子:2020年3月疫情暴发,VIX 从 15 飙到 82 - 如果你提前买了 VIX Call (行权价20),回报超过 1000% -``` - -#### ④ LEAPS(长期期权) - -``` -LEAPS = Long-Term Equity Anticipation Securities - -到期日在 1~3年 后的长期期权 - -用途: - - 替代买入股票(用更少的资金获得类似收益) - - 长期看涨某只股票但不想占用太多资金 - -例子: - 买 AAPL 2027年1月 Call,行权价 $200 - 权利金 $40 × 100 = $4,000 - - vs 直接买100股 AAPL = $23,000 - - 只用 $4,000 就控制了 $23,000 的仓位 - 但风险是:2年后如果苹果没涨过 $240,全部归零 -``` - -#### ⑤ Mini 期权和 Micro 期权 - -``` -迷你期权(部分标的可用): - 1张 = 10股(而非100股) - 适合资金量小的散户 - -微型期权: - SPX 有 XSP 迷你版(1/10规模) - 适合小资金交易指数期权 -``` - -### 2.3 美股期权交易平台 - -| 平台 | 特点 | 适合 | -|------|------|------| -| **Interactive Brokers(盈透)** | 专业级,费用低,全球市场 | 专业交易者 | -| **TD Ameritrade(thinkorswim)** | 分析工具强大 | 期权分析 | -| **Robinhood** | 零佣金,界面简单 | 新手 | -| **Webull** | 中文界面,零佣金 | 华人用户 | -| **老虎证券** | 中文,支持港美股 | 国内出海用户 | -| **富途(moomoo)** | 中文,工具丰富 | 国内出海用户 | - -### 2.4 美股期权手续费 - -``` -盈透证券 (IBKR): - $0.65/张 (量大可低至 $0.15/张) - -老虎证券: - $0.65/张 + $0.005/股行权费 - -富途/Moomoo: - $0.65/张 - -Robinhood: - $0(零佣金)但有 PFOF -``` - ---- - -## 3. 港股期权 - -### 3.1 基本信息 - -| 项目 | 说明 | -|------|------| -| **交易所** | 港交所(HKEX)衍生品市场 | -| **标的** | 个股(腾讯、阿里、汇丰等)、恒生指数、恒生科技指数 | -| **类型** | 美式期权(股票期权)/ 欧式期权(指数期权) | -| **合约单位** | 因标的而异(每手股数不同) | -| **到期日** | 每月最后第二个交易日(股票)/ 倒数第二个交易日(指数) | -| **结算** | 实物交割(股票期权)/ 现金结算(指数期权) | -| **交易时间** | 9:30~12:00, 13:00~16:00(港时) | -| **货币** | 港币(HKD) | - -### 3.2 港股期权的种类 - -#### ① 股票期权 - -``` -港交所股票期权覆盖约 100+ 只股票 - -热门标的: - 700.HK — 腾讯控股 - 9988.HK — 阿里巴巴 - 5.HK — 汇丰控股 - 1299.HK — 友邦保险 - 9618.HK — 京东 - 9888.HK — 百度 - 2318.HK — 中国平安 - -合约格式: - TCH 25 Feb 400 Call - - TCH — 腾讯(代码) - 25 Feb — 2025年2月到期 - 400 — 行权价 400港元 - Call — 看涨 - -特点: - - 合约单位 = 该股票的1手(腾讯=100股,汇丰=400股) - - 美式期权,可提前行权 - - 实物交割 -``` - -#### ② 恒生指数期权 - -``` -HSI Options — 恒生指数期权 - - 合约乘数:$50 HKD / 点 - 类型:欧式 - 结算:现金 - - 例子:恒生指数 = 20,000 点 - 买入 HSI Call 行权价 20,500 - 权利金 = 300 点 = 300 × $50 = $15,000 HKD - -恒生科技指数期权(HSTECH)也很活跃 -``` - -#### ③ 窝轮和牛熊证(港股独有!) - -``` -⚠️ 严格来说不是标准期权,但和期权非常类似 - -窝轮(Warrants): - - 由券商发行的期权类产品 - - 类似看涨/看跌期权的买方 - - 有到期日、行权价 - - 在港交所像股票一样交易 - - 每手通常 1,000~10,000 份 - - 门槛极低,几百港元就能买 - - 分类: - 认购证(Call Warrant)= 看涨 - 认沽证(Put Warrant)= 看跌 - -牛熊证(CBBC): - - 带强制回收机制的杠杆产品 - - 有"回收价":价格触及回收价 → 立即作废(类似爆仓) - - 杠杆更高(10x~20x),风险也更大 - - 分类: - 牛证 = 看涨 - 熊证 = 看跌 - -窝轮 vs 标准期权: - 窝轮:券商发行,品种多但有对手方风险,时间衰减更快 - 期权:交易所标准化,对手方是清算所,更公平 -``` - -### 3.3 港股期权交易平台 - -| 平台 | 特点 | -|------|------| -| **富途牛牛** | 中文最友好,窝轮/期权都支持 | -| **老虎证券** | 支持港股期权 | -| **盈透证券** | 专业级,港股期权全覆盖 | -| **辉立证券** | 本地老牌,窝轮齐全 | - -### 3.4 港股期权手续费 - -``` -标准期权: - 港交所费用:$3 HKD/张 - 券商佣金:$10~$30 HKD/张(因券商而异) - 总计约 $15~$35 HKD/张 - -窝轮/牛熊证: - 佣金:和买卖股票一样(0.03%~0.08%) - 印花税:豁免!(比股票交易便宜) -``` - ---- - -## 4. A股期权(中国大陆) - -### 4.1 基本信息 - -| 项目 | 说明 | -|------|------| -| **交易所** | 上交所(SSE)、深交所(SZSE)、中金所(CFFEX) | -| **标的** | ETF期权 + 股指期权 | -| **类型** | 欧式期权 | -| **交易时间** | 9:30~11:30, 13:00~15:00 | -| **货币** | 人民币(CNY) | -| **门槛** | 非常高(50万+考试+模拟交易经验) | - -### 4.2 A股期权的种类 - -#### ① ETF 期权 - -``` -上交所: - 50ETF 期权(510050)— 最早上市,2015年开始 - 300ETF 期权(510300)— 沪深300 - 500ETF 期权(510500)— 中证500 - 创业板ETF 期权(159915) - 科创50ETF 期权(588000) - -深交所: - 300ETF 期权(159919) - 创业板ETF 期权(159915) - 中证500ETF 期权 - -合约格式: - 50ETF 购 2月 2.700 - - 50ETF — 标的 - 购 — 认购(Call),"沽"就是 Put - 2月 — 到期月份 - 2.700 — 行权价 2.700 元 - -合约单位:10,000 份 ETF -最小变动:0.0001 元 - -例子: - 50ETF 当前 = 2.750 元 - 买入 "50ETF 购 3月 2.800" - 权利金 = 0.0350 元 - 成本 = 0.0350 × 10,000 = 350 元/张 -``` - -#### ② 股指期权 - -``` -中金所(CFFEX): - - 沪深300股指期权(IO)— 最活跃 - 中证1000股指期权(MO) - 上证50股指期权(HO) - -合约格式: - IO2503-C-4000 - - IO — 沪深300股指期权 - 2503 — 2025年3月 - C — Call(P = Put) - 4000 — 行权价 4000 点 - -合约乘数:100 元/点 - -例子: - 沪深300 = 3,900 点 - 买入 IO2503-C-4000 - 权利金 = 50 点 = 50 × 100 = 5,000 元/张 - -特点: - - 欧式期权,到期现金结算 - - 合约规模较大(1张约5万元名义) - - 流动性好,做市商报价 -``` - -### 4.3 A股期权的门槛(⚠️ 非常高) - -``` -个人投资者开通条件: - -1. 资金门槛 - ETF期权:前20个交易日日均资产 ≥ 50万元 - 股指期权:前20个交易日日均资产 ≥ 50万元 - -2. 知识测试 - 通过交易所期权知识考试(80分及格) - -3. 交易经验 - 开户满6个月 - 有融资融券或期货交易经验 - 在模拟交易中完成规定笔数 - -4. 分级管理 - 一级:只能买入认购/认沽(买方)+ 备兑 - 二级:可以做普通卖方(需要保证金) - 三级:可以做所有策略(包括裸卖) - - 从一级升到三级需要逐步通过考试和积累交易经验 - -5. 风险承受能力 - C4(积极型)及以上 -``` - -### 4.4 A股期权交易平台 - -``` -必须通过正规券商开通: - 华泰证券 - 中信证券 - 国泰君安 - 招商证券 - 海通证券 - 等主流券商 - -手续费: - ETF期权:约 1.5~5 元/张(双边) - 股指期权:约 15~30 元/张 - 行权费:0.05% 左右 -``` - ---- - -## 5. 加密货币期权 - -### 5.1 基本信息 - -| 项目 | 说明 | -|------|------| -| **交易所** | Deribit(最大)、OKX、Binance、Bybit、CME | -| **标的** | BTC、ETH(主要),部分交易所支持 SOL 等 | -| **类型** | 欧式期权(Deribit/OKX)、美式(部分DEX) | -| **结算** | 币本位(Deribit 用 BTC/ETH 结算)或 USDT 结算(OKX) | -| **交易时间** | **24/7 全天候**(和传统市场最大区别) | -| **门槛** | 几乎无门槛,几十美元起 | - -### 5.2 加密期权的种类和平台 - -#### ① Deribit(全球最大加密期权交易所) - -``` -市场份额:~85% 以上的加密期权交易量 - -标的:BTC、ETH -结算:币本位(BTC 期权用 BTC 结算) -到期日:每天、每周五、月末、季末 -合约大小:1 BTC / 1 ETH -杠杆:无(买方),保证金(卖方) - -合约格式: - BTC-28MAR26-100000-C - -特点: - - 流动性最好 - - 机构参与度高 - - 有组合保证金制度 - - 需要科学上网 - -注意:Deribit 不对中国大陆用户开放(KYC限制) -``` - -#### ② OKX - -``` -标的:BTC、ETH -结算:USDT 结算(更直观) -到期日:每周五、月末、季末 -最小交易量:0.01 BTC - -优势: - - USDT 结算,不需要持有 BTC - - 中文界面 - - 手续费较低 - - 支持组合策略 - -格式:BTC-20260328-100000-C -``` - -#### ③ CME(芝商所)加密期权 - -``` -CME 的 BTC/ETH 期权是合规的传统金融产品 - -特点: - - 受 CFTC 监管 - - 合约大(1 BTC = 1张标准,0.1 BTC = 迷你) - - 现金结算(美元) - - 仅限工作日交易 - - 通过传统期货券商交易(如盈透) - - 机构最爱 - -适合:想在合规环境下交易加密期权的投资者 -``` - -#### ④ 链上期权(DeFi) - -``` -去中心化期权协议: - - Lyra Finance — Arbitrum/Optimism 上 - Opyn (Squeeth) — 以太坊上的"平方ETH" - Hegic — 简化的期权购买 - Dopex — Arbitrum 上 - -特点: - - 无 KYC、无中心化风险 - - 智能合约自动结算 - - 流动性较差 - - gas 费可能很高 - - 品种有限 - -目前规模很小,不建议新手参与 -``` - ---- - -## 6. 商品期货期权 - -### 6.1 国际商品期权 - -``` -交易所:CME/CBOT/NYMEX/ICE - -主要品种: -┌─────────────┬──────────────────────────┐ -│ 类别 │ 品种 │ -├─────────────┼──────────────────────────┤ -│ 能源 │ 原油(WTI/Brent)、天然气 │ -│ 金属 │ 黄金、白银、铜 │ -│ 农产品 │ 大豆、玉米、小麦、棉花 │ -│ 软商品 │ 咖啡、可可、糖 │ -└─────────────┴──────────────────────────┘ - -特点: - - 标的是期货合约(不是现货) - - 美式期权为主 - - 行权后变成期货头寸 - - 合约规模大(1手黄金期权 = 100盎司 ≈ $200,000) - - 有迷你合约(Micro Gold = 10盎司) -``` - -### 6.2 中国商品期权 - -``` -交易所: - 大连商品交易所(DCE) - 郑州商品交易所(CZCE) - 上海期货交易所(SHFE) - 上海国际能源交易中心(INE) - -主要品种: -┌─────────────┬──────────────────────────┐ -│ 交易所 │ 品种 │ -├─────────────┼──────────────────────────┤ -│ DCE │ 豆粕期权、铁矿石期权、棕榈油│ -│ CZCE │ 白糖期权、棉花期权、PTA │ -│ SHFE │ 铜期权、黄金期权、橡胶期权 │ -│ INE │ 原油期权 │ -└─────────────┴──────────────────────────┘ - -门槛: - - 资金:10万元(部分品种无门槛) - - 知识测试 - - 交易经验:期货交易经验 - - 比A股ETF期权门槛低一些 -``` - ---- - -## 7. 外汇期权 - -### 7.1 场内外汇期权 - -``` -交易所:CME(最大) - -主要品种: - EUR/USD、GBP/USD、USD/JPY、AUD/USD 等 - -特点: - - 合约标准化 - - 美式期权 - - 合约规模大(1手EUR = 125,000欧元) - - 有 E-micro 迷你合约 -``` - -### 7.2 场外(OTC)外汇期权 - -``` -银行间市场: - - 全球最大的期权市场之一(日交易量万亿美元级) - - 只对机构和高净值客户开放 - - 完全定制化(行权价、到期日、数量都可自定) - -零售外汇平台: - 部分外汇经纪商提供简化版期权产品 - 如 IQ Option、Saxo Bank 等 - - ⚠️ 注意区分合规平台和"二元期权"骗局 -``` - -### 7.3 二元期权(⚠️ 警告) - -``` -二元期权 ≠ 正规期权 - -二元期权特征: - - 只有两种结果:赢(固定赔付70%~90%)或输(亏100%) - - 类似赌博,期望值为负 - - 大多数国家已禁止(欧盟、以色列、澳洲等) - - 中国明确定性为诈骗工具 - -⚠️ 任何宣传"1分钟交易"、"固定收益80%"的期权平台都是骗局! -``` - ---- - -## 8. 各市场横向对比 - -### 8.1 核心参数对比 - -| 特性 | 美股期权 | 港股期权 | A股期权 | 加密期权 | 商品期权 | -|------|---------|---------|---------|---------|---------| -| **行权方式** | 美式 | 美式(股票)/欧式(指数) | 欧式 | 欧式 | 美式 | -| **交割方式** | 实物/现金 | 实物/现金 | 实物/现金 | 现金(USDT/币) | 转为期货 | -| **交易时间** | 工作日6.5h | 工作日5.5h | 工作日4h | **24/7** | 工作日 | -| **最短到期** | 当天(0DTE) | 月度 | 月度 | **当天** | 月度 | -| **合约规模** | 100股 | 1手(股数不同) | 10,000份ETF | 0.01 BTC起 | 大 | -| **资金门槛** | 几百美元 | 几千港元 | **50万人民币** | **几十美元** | 10万人民币 | -| **流动性** | ★★★★★ | ★★★ | ★★★ | ★★★★ | ★★★ | -| **品种丰富度** | ★★★★★ | ★★★ | ★★ | ★★ | ★★★★ | -| **适合散户** | ★★★★★ | ★★★ | ★★ | ★★★★ | ★★ | - -### 8.2 成本对比 - -``` -买1张平值期权的大致成本(权利金 + 手续费): - -美股(SPY Call) :$300~$800 + $0.65 手续费 -港股(腾讯 Call) :HKD 500~2000 + HKD 15 手续费 -A股(50ETF 购) :RMB 300~800 + RMB 3 手续费 -加密(BTC Call) :$200~$5,000 + 0.03% 手续费 -黄金期权(CME) :$2,000~$5,000 + $2.50 手续费 -``` - -### 8.3 波动率对比 - -``` -不同市场的典型隐含波动率(IV): - -加密货币(BTC) ████████████████████████ 50%~80% (最高) -个股(TSLA) ████████████████████ 45%~70% -商品(原油) ██████████████ 30%~50% -指数(SPX) ██████████ 20%~30% -外汇(EUR/USD) ████ 6%~12% (最低) - -波动率越高 → 期权越贵 → 赚钱机会多但成本也高 -``` - ---- - -## 9. 期权分类体系 - -### 9.1 按行权时间分 - -``` -┌─────────────┬──────────────────────────────────────┐ -│ 类型 │ 说明 │ -├─────────────┼──────────────────────────────────────┤ -│ 美式期权 │ 到期前任何时间都可以行权 │ -│ (American) │ 常见于:美股个股期权、港股股票期权 │ -├─────────────┼──────────────────────────────────────┤ -│ 欧式期权 │ 只能在到期日行权 │ -│ (European) │ 常见于:A股、加密货币、指数期权 │ -├─────────────┼──────────────────────────────────────┤ -│ 百慕大期权 │ 在特定日期可以行权(介于美式和欧式之间) │ -│ (Bermudan) │ 常见于:可转债、部分结构化产品 │ -└─────────────┴──────────────────────────────────────┘ - -实际影响: - 美式期权权利金 ≥ 欧式期权(因为灵活性更高) - 但对买方来说,提前行权很少是最优选择 - → 实际交易中区别不大,新手不用太纠结 -``` - -### 9.2 按标的资产分 - -``` -┌───────────────────────────────────────────────┐ -│ 期权 │ -├──────────┬──────────┬──────────┬──────────────┤ -│ 股票期权 │ 指数期权 │ 商品期权 │ 其他 │ -│ │ │ │ │ -│ 个股 │ SPX │ 黄金 │ 外汇期权 │ -│ ETF │ 恒生指数 │ 原油 │ 利率期权 │ -│ ADR │ 沪深300 │ 铜 │ 加密货币期权 │ -│ │ VIX │ 大豆 │ 天气期权 │ -│ │ │ 铁矿石 │ 波动率期权 │ -└──────────┴──────────┴──────────┴──────────────┘ -``` - -### 9.3 按交易场所分 - -``` -场内期权(Exchange-traded): - - 标准化合约 - - 交易所清算(无对手方风险) - - 流动性好 - - 透明度高 - 例如:所有上面提到的交易所期权 - -场外期权(OTC, Over-the-counter): - - 非标准化,可定制 - - 双方直接交易 - - 有对手方信用风险 - - 主要是机构间交易 - - 个人散户一般接触不到 - 例如:银行间外汇期权、结构化产品 -``` - -### 9.4 特殊/奇异期权 - -``` -除了标准的 Call/Put,还有很多变体: - -障碍期权(Barrier): - 价格触及某水平后激活或失效 - → 港股的"牛熊证"就是一种障碍期权 - -亚式期权(Asian): - 按一段时间的平均价格结算,而非到期瞬时价格 - -回望期权(Lookback): - 用期间最高/最低价格结算 - -彩虹期权(Rainbow): - 标的是多个资产中的最优/最差表现 - -数字期权/二元期权(Binary/Digital): - 固定赔付,非赢即输(多数国家已禁止零售交易) - -以上奇异期权通常只在机构市场或结构化产品中出现, -散户一般不需要了解。 -``` - ---- - -## 10. 各市场开户与门槛 - -### 10.1 从易到难排序 - -``` -1. 加密货币期权 ← 最容易 - 门槛:OKX/Deribit 账户 + 几十USDT - KYC:部分平台需要 - 时间:几分钟 - -2. 美股期权 ← 较容易 - 门槛:海外券商账户 + 几百美元 - KYC:需要护照/身份证 - 时间:1~3个工作日 - 推荐:盈透、老虎、富途 - -3. 港股期权 ← 中等 - 门槛:港股券商账户 + 几千港元 - KYC:需要 - 时间:1~5个工作日 - 推荐:富途、老虎、盈透 - -4. 中国商品期权 ← 较难 - 门槛:期货账户 + 10万元 + 考试 - 时间:1~2周 - -5. A股ETF/股指期权 ← 最难 - 门槛:50万元 + 考试 + 模拟经验 + 分级 - 时间:数周到数月 -``` - -### 10.2 中国大陆投资者的路径 - -``` -方案A:直接交易加密期权(最快) - OKX → 充值USDT → 交易BTC/ETH期权 - 优点:即时开始,门槛最低 - 缺点:监管灰色地带 - -方案B:通过港美股券商(合规) - 富途/老虎/盈透 → 入金 → 交易美股/港股期权 - 优点:合规,品种丰富 - 缺点:需要出金通道(港卡等) - -方案C:国内期权(最合规但门槛高) - 券商开户 → 满足50万门槛 → 考试 → 开通期权 - 优点:完全合规 - 缺点:门槛高,品种少 -``` - ---- - -## 11. 新手选择建议 - -### 如果你是完全新手 - -``` -推荐路线: - -第1步:加密货币期权入门 - - OKX 上用小资金($100~$500)练习 - - 只买 Call 和 Put - - 24/7交易,学习周期最短 - - 理解权利金、行权价、到期日、时间衰减 - -第2步:美股期权进阶 - - 开通老虎/富途/盈透账户 - - 交易 SPY/AAPL 等高流动性期权 - - 品种最丰富,策略最多 - - 学习组合策略(价差、铁鹰等) - -第3步:根据需要扩展 - - 持有A股 → 开通A股ETF期权做对冲 - - 关注大宗商品 → 开通商品期权 - - 对港股感兴趣 → 尝试港股期权或窝轮 -``` - -### 不同需求的推荐 - -| 需求 | 推荐市场 | 原因 | -|------|---------|------| -| 小资金练手 | 加密期权(OKX) | 门槛最低,$50起 | -| 学习期权策略 | 美股期权 | 品种最丰富,教育资源最多 | -| 对冲A股持仓 | A股ETF期权 | 直接对冲 | -| 对冲港股持仓 | 港股期权/窝轮 | 直接对冲 | -| 对冲BTC持仓 | Deribit/OKX期权 | 直接对冲 | -| 做波动率交易 | 美股VIX期权 | 最成熟的波动率市场 | -| 高杠杆投机 | 加密期权 | 波动率高,杠杆天然大 | -| 稳定收租 | 美股备兑Call | 持股+卖Call收权利金 | - ---- - -## 附录:术语对照表 - -| 中文 | 英文 | 港股叫法 | -|------|------|---------| -| 看涨期权 | Call Option | 认购期权 / 认购证 | -| 看跌期权 | Put Option | 认沽期权 / 认沽证 | -| 行权价 | Strike Price | 行使价 | -| 权利金 | Premium | 期权金 | -| 到期日 | Expiration Date | 到期日 | -| 实值 | In-the-Money (ITM) | 价内 | -| 虚值 | Out-of-the-Money (OTM) | 价外 | -| 平值 | At-the-Money (ATM) | 等价 | -| 行权 | Exercise | 行使 | -| 隐含波动率 | Implied Volatility (IV) | 引伸波幅 | -| 时间衰减 | Time Decay / Theta | 时间值损耗 | -| 未平仓合约 | Open Interest (OI) | 未平仓合约 | -| 窝轮 | Warrant | 窝轮(港股独有叫法) | -| 牛熊证 | CBBC | 牛熊证(港股独有) | - ---- - -*文档版本:v1.0 | 更新日期:2026-02-08* diff --git "a/docs/\346\234\237\346\235\203\345\205\245\351\227\250\346\214\207\345\215\227.md" "b/docs/\346\234\237\346\235\203\345\205\245\351\227\250\346\214\207\345\215\227.md" deleted file mode 100644 index f324b6d..0000000 --- "a/docs/\346\234\237\346\235\203\345\205\245\351\227\250\346\214\207\345\215\227.md" +++ /dev/null @@ -1,554 +0,0 @@ -# 加密货币期权完全指南 - -> 从零开始理解期权,以及如何在 OKX 上买卖期权 - ---- - -## 目录 - -1. [期权是什么](#1-期权是什么) -2. [核心概念](#2-核心概念) -3. [期权的四种基本操作](#3-期权的四种基本操作) -4. [期权价格由什么决定](#4-期权价格由什么决定) -5. [实战:如何在 OKX 买期权](#5-实战如何在-okx-买期权) -6. [常见策略](#6-常见策略) -7. [风险管理](#7-风险管理) -8. [新手常见误区](#8-新手常见误区) -9. [期权 vs 合约 vs 现货 对比](#9-期权-vs-合约-vs-现货-对比) - ---- - -## 1. 期权是什么 - -### 一句话解释 - -期权 = **花一笔小钱(权利金),买一个"权利"**:在未来某个时间,以某个价格,买入或卖出某个资产。 - -### 生活中的类比 - -想象你看中一套房子,当前价格 500 万: - -- 你付 5 万定金,锁定 3 个月内以 500 万购买的权利 -- 3 个月后房价涨到 600 万 → 你行使权利,500 万买入,赚 100 万 - 5 万 = **净赚 95 万** -- 3 个月后房价跌到 400 万 → 你放弃权利,只亏 5 万定金 - -这个"定金"就是 **权利金(Premium)**,这个"锁定价格"就是 **行权价(Strike Price)**。 - -### 关键特征 - -| 特征 | 说明 | -|------|------| -| **买方权利,非义务** | 买方可以选择行使或放弃,最大亏损 = 权利金 | -| **卖方有义务** | 卖方收了权利金,到期必须履约 | -| **有到期日** | 到期后期权作废(和股票/现货不同) | -| **杠杆效应** | 用小资金控制大金额的资产 | - ---- - -## 2. 核心概念 - -### 2.1 看涨期权(Call)vs 看跌期权(Put) - -``` -看涨期权 Call = 买入的权利 - → 你认为价格会涨,买 Call - -看跌期权 Put = 卖出的权利 - → 你认为价格会跌,买 Put -``` - -### 2.2 关键术语 - -| 术语 | 英文 | 含义 | 举例 | -|------|------|------|------| -| **标的资产** | Underlying | 期权对应的资产 | BTC、ETH | -| **行权价** | Strike Price | 约定的买入/卖出价格 | $100,000 | -| **到期日** | Expiration | 期权的有效期限 | 2026-03-28 | -| **权利金** | Premium | 购买期权的费用 | $2,500 | -| **内在价值** | Intrinsic Value | 立即行权的利润 | 见下方 | -| **时间价值** | Time Value | 权利金 - 内在价值 | 见下方 | - -### 2.3 实值、虚值、平值 - -假设 BTC 当前价格 = **$100,000**: - -``` -看涨期权 Call: -┌─────────────────────────────────────────────┐ -│ 行权价 $90,000 → 实值 (ITM) 有内在价值 │ -│ 行权价 $100,000 → 平值 (ATM) 刚好持平 │ -│ 行权价 $110,000 → 虚值 (OTM) 没有内在价值 │ -└─────────────────────────────────────────────┘ - -看跌期权 Put(方向相反): -┌─────────────────────────────────────────────┐ -│ 行权价 $110,000 → 实值 (ITM) 有内在价值 │ -│ 行权价 $100,000 → 平值 (ATM) 刚好持平 │ -│ 行权价 $90,000 → 虚值 (OTM) 没有内在价值 │ -└─────────────────────────────────────────────┘ -``` - -**关键理解**: -- **实值期权**:权利金更贵,但胜率更高 -- **虚值期权**:权利金便宜,但需要价格大幅波动才能盈利 -- **新手建议**:买平值或轻度虚值期权(性价比最高) - -### 2.4 内在价值 vs 时间价值 - -``` -权利金 = 内在价值 + 时间价值 - -例子:BTC = $100,000,Call 行权价 $95,000,权利金 = $7,000 - - 内在价值 = $100,000 - $95,000 = $5,000 (立即行权能赚的) - 时间价值 = $7,000 - $5,000 = $2,000 (为"未来可能更赚"付的溢价) -``` - -**重要**:时间价值会随到期日临近而加速衰减(Theta 衰减),这是期权买方的最大敌人。 - ---- - -## 3. 期权的四种基本操作 - -### 3.1 四种基本头寸 - -``` - 看涨 看跌 - ┌──────────┐ ┌──────────┐ - 买方 │ 买 Call │ │ 买 Put │ - (付权利金) │ 看多做多 │ │ 看空做多 │ - │ 最大亏损有限 │ │ 最大亏损有限 │ - └──────────┘ └──────────┘ - - ┌──────────┐ ┌──────────┐ - 卖方 │ 卖 Call │ │ 卖 Put │ - (收权利金) │ 看空/中性 │ │ 看多/中性 │ - │ 最大亏损无限 │ │ 最大亏损很大 │ - └──────────┘ └──────────┘ -``` - -### 3.2 买入看涨期权(Buy Call)— 最常用 - -**场景**:你认为 BTC 会涨 - -``` -操作:买入 BTC Call,行权价 $100,000,到期日 3月28日,权利金 $3,000 - -情况1:到期时 BTC = $115,000 - 利润 = $115,000 - $100,000 - $3,000 = +$12,000 (400%回报!) - -情况2:到期时 BTC = $103,000 - 利润 = $103,000 - $100,000 - $3,000 = $0 (刚好保本) - -情况3:到期时 BTC = $95,000 - 你放弃行权,亏损 = $3,000 (权利金,固定最大亏损) -``` - -**盈亏图**: -``` -利润 - ↑ - │ ╱ - │ ╱ - │ ╱ - │ ╱ - │──────────────────·──────────── BTC价格 - │ ╱ $103,000 (盈亏平衡点) --$3,000 ─────────┘ - │ $100,000 (行权价) -``` - -### 3.3 买入看跌期权(Buy Put) - -**场景**:你认为 BTC 会跌,或想给持仓买"保险" - -``` -操作:买入 BTC Put,行权价 $100,000,权利金 $2,500 - -情况1:BTC 跌到 $85,000 - 利润 = $100,000 - $85,000 - $2,500 = +$12,500 - -情况2:BTC 涨到 $110,000 - 放弃行权,亏损 = $2,500 (权利金) -``` - -**用途**: -- 单纯做空(比合约做空更安全,亏损有限) -- 保护性看跌(Protective Put)— 持有BTC的同时买Put做保险 - -### 3.4 卖出期权(高级,新手慎用) - -| 操作 | 何时用 | 风险 | -|------|--------|------| -| 卖 Call | 认为不会涨过某价位 | **无限亏损**(价格暴涨) | -| 卖 Put | 认为不会跌破某价位 | 巨大亏损(价格暴跌) | - -**卖方赚的是时间价值衰减(Theta)**,胜率高但单笔亏损可能很大。 - -⚠️ **新手只建议做买方(Buy Call / Buy Put),不要卖期权。** - ---- - -## 4. 期权价格由什么决定 - -### 4.1 希腊字母(Greeks) - -这些是衡量期权价格敏感度的指标: - -| Greek | 含义 | 对买方的影响 | -|-------|------|-------------| -| **Delta (Δ)** | 标的价格变动$1,期权价格变多少 | Call: 0~1, Put: -1~0 | -| **Gamma (Γ)** | Delta 的变化速度 | 平值期权 Gamma 最大 | -| **Theta (Θ)** | 每天时间价值衰减多少 | **买方的敌人** — 每天都在亏 | -| **Vega (ν)** | 波动率变化1%,期权价格变多少 | 波动率上升 → 期权涨价 | -| **Rho (ρ)** | 利率变化的影响 | 通常可忽略 | - -### 4.2 影响期权价格的六大因素 - -``` - Call价格 Put价格 -标的价格 ↑ ↑ ↓ -行权价 ↑ ↓ ↑ -到期时间 ↑ ↑ ↑ (时间越长越贵) -波动率 ↑ ↑ ↑ (波动越大越贵) -无风险利率 ↑ ↑ ↓ -``` - -### 4.3 隐含波动率(IV)— 最重要的概念 - -**隐含波动率** = 市场对未来价格波动幅度的预期 - -``` -IV 高 → 期权贵(市场恐慌或即将有大事件) -IV 低 → 期权便宜(市场平静) -``` - -**实战意义**: -- 在 IV 低时买入期权(便宜),IV 高时卖出(贵) -- 即使方向判断对了,如果 IV 大幅下降,你的期权也可能亏钱(IV Crush) -- 比如:美联储利率决议前 IV 很高,决议后 IV 骤降 → 期权大跌 - ---- - -## 5. 实战:如何在 OKX 买期权 - -### 5.1 前置条件 - -1. 注册 OKX 账户并完成 KYC -2. 账户中有 USDT(交易模式下的资金账户) -3. 开通期权交易权限(OKX App → 交易 → 期权 → 按提示开通) - -### 5.2 OKX 期权的基本规则 - -| 项目 | 说明 | -|------|------| -| 标的 | BTC、ETH | -| 结算方式 | USDT 结算(不需要交割实物BTC) | -| 合约类型 | 欧式期权(只能到期行权,不能提前) | -| 到期日 | 每周五、月末、季末都有 | -| 最小交易量 | 0.01 BTC(约 $1,000) | -| 手续费 | 买方 0.03%,卖方 0.02% | -| 行权方式 | 实值自动行权,虚值自动作废 | - -### 5.3 步骤详解 - -#### 第一步:分析市场,确定方向 - -``` -问自己: -1. 我认为 BTC 在接下来会涨还是跌? - 涨 → 买 Call - 跌 → 买 Put - -2. 我认为波动会有多大? - 大幅波动 → 买虚值期权(便宜,杠杆高) - 温和上涨 → 买平值或轻度实值(胜率高) - -3. 这个判断的时间框架? - 1~2周 → 选最近到期日 - 1~3个月 → 选月度/季度到期 -``` - -#### 第二步:选择期权合约 - -以 OKX 为例,期权合约格式: - -``` -BTC-20260328-100000-C - -BTC — 标的资产 -20260328 — 到期日(2026年3月28日) -100000 — 行权价($100,000) -C — Call(看涨),P 就是 Put(看跌) -``` - -#### 第三步:计算你的仓位 - -**黄金法则:单笔期权投入 ≤ 总资金的 2%~5%** - -``` -例子:总资金 $10,000 - -最大单笔投入 = $10,000 × 3% = $300 - -如果权利金 = 0.01 BTC ≈ $1,000 → 买不起 -如果权利金 = 0.002 BTC ≈ $200 → 可以买 1 份 - -注意:选择权利金在你承受范围内的期权 -``` - -#### 第四步:下单 - -在 OKX App 或网页端: -1. 进入「交易」→「期权」 -2. 选择标的(BTC 或 ETH) -3. 选择到期日 -4. 在 T 形报价表中找到你要的行权价 -5. 点击 Call 或 Put 对应的价格 -6. 输入数量 -7. 选择「限价单」或「市价单」 -8. 确认下单 - -#### 第五步:持仓管理 - -``` -三种结果: - -1. 盈利 → 可以提前平仓(卖出你的期权)锁定利润 - → 也可以持有到到期自动行权 - -2. 亏损但未到期 → 可以止损卖出(回收部分权利金) - → 也可以继续持有等反转 - -3. 到期 → 实值:自动行权,结算利润 - → 虚值:自动作废,亏损全部权利金 -``` - -### 5.4 一个完整的交易示例 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 场景:2026年2月,BTC = $98,000 - 判断:你认为3月底前BTC能涨到 $110,000+ -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -操作:买入 BTC-20260328-105000-C(看涨期权) - 行权价:$105,000 - 到期日:2026-03-28 - 权利金:$1,800/BTC - 数量:0.1 BTC - 总成本:$1,800 × 0.1 = $180 - -━━━━━━━━ 情况A:BTC 涨到 $120,000 ━━━━━━━━ - - 到期结算:($120,000 - $105,000) × 0.1 = $1,500 - 减去成本:$1,500 - $180 = +$1,320 - 回报率:+733% ← 用 $180 赚了 $1,320! - -━━━━━━━━ 情况B:BTC 涨到 $108,000 ━━━━━━━━ - - 到期结算:($108,000 - $105,000) × 0.1 = $300 - 减去成本:$300 - $180 = +$120 - 回报率:+67% - -━━━━━━━━ 情况C:BTC = $103,000(没涨过行权价)━━━━━━━━ - - 期权作废(虚值) - 亏损:-$180(全部权利金) - 回报率:-100% - -━━━━━━━━ 情况D:BTC 跌到 $85,000 ━━━━━━━━ - - 期权作废(虚值) - 亏损:仍然是 -$180(不会更多!) - 如果是合约做多?可能亏 $1,300+ - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -``` - ---- - -## 6. 常见策略 - -### 6.1 新手推荐策略 - -#### ① 方向性投机(最简单) - -``` -看涨 → 买 Call -看跌 → 买 Put - -选择:平值或轻度虚值 (5%~10% OTM) -到期:2~4周 -仓位:总资金的 2%~5% -``` - -#### ② 保护性看跌(Protective Put)— 给持仓买保险 - -``` -你持有 1 BTC($100,000) -担心短期下跌但不想卖 - -操作:买入 BTC Put,行权价 $95,000,权利金 $1,500 - -结果: - BTC 跌到 $80,000 → Put 赚 $15,000 → 对冲了现货亏损 - BTC 涨到 $120,000 → Put 作废 → 只亏 $1,500 保险费 - -相当于花 1.5% 的资产买了下跌保护 -``` - -#### ③ 备兑看涨(Covered Call)— 给持仓增收 - -``` -你持有 1 BTC($100,000) -短期看震荡,不期待大涨 - -操作:卖出 BTC Call,行权价 $110,000,收取权利金 $1,200 - -结果: - BTC 不到 $110,000 → Call 作废 → 白赚 $1,200 - BTC 涨到 $120,000 → 必须以 $110,000 卖出 → 少赚了 $10,000 - -适合:震荡市中给持仓增加额外收入 -``` - -### 6.2 进阶策略(了解即可) - -| 策略 | 操作 | 适用场景 | -|------|------|----------| -| **牛市价差** (Bull Call Spread) | 买低行权Call + 卖高行权Call | 温和看涨,降低成本 | -| **熊市价差** (Bear Put Spread) | 买高行权Put + 卖低行权Put | 温和看跌,降低成本 | -| **跨式** (Straddle) | 同时买Call和Put(同行权价) | 预期大幅波动,不确定方向 | -| **宽跨式** (Strangle) | 同时买虚值Call和虚值Put | 类似跨式但更便宜 | -| **铁鹰** (Iron Condor) | 卖出跨式 + 买入更远的保护 | 预期窄幅震荡 | - ---- - -## 7. 风险管理 - -### 7.1 期权买方的风险 - -| 风险 | 说明 | 对策 | -|------|------|------| -| **时间衰减** | 每天都在亏损时间价值 | 不要买太短期的虚值期权 | -| **方向错误** | 判断错误,100%亏损权利金 | 控制仓位(≤5%) | -| **IV Crush** | 波动率骤降,期权贬值 | 避免在重大事件前买入高IV期权 | -| **流动性差** | 买卖价差大,难以平仓 | 只交易主流行权价和到期日 | - -### 7.2 仓位管理黄金法则 - -``` -规则1:单笔期权投入 ≤ 总资金的 2%~5% -规则2:同时持有的期权总投入 ≤ 总资金的 15% -规则3:设定止损 — 权利金亏损 50% 就考虑平仓 -规则4:设定止盈 — 赚到 100%~200% 就分批平仓 -规则5:到期前 3~5 天,如果是虚值就果断平仓(时间衰减加速) -``` - -### 7.3 什么时候不该买期权 - -``` -❌ 不确定方向时(会两头亏) -❌ IV 处于历史高位时(太贵了) -❌ 剩余到期时间 < 3天 的虚值期权(大概率归零) -❌ 流动性差的行权价(买卖差价太大) -❌ 投入超过你能承受的亏损 -``` - ---- - -## 8. 新手常见误区 - -### ❌ 误区1:期权和合约一样 -``` -合约:有爆仓风险,亏损可能 > 本金 -期权(买方):最大亏损 = 权利金,不会爆仓 - -合约:只要方向对就赚钱 -期权:方向对但幅度不够也可能亏(虚值期权) -``` - -### ❌ 误区2:便宜的虚值期权更划算 -``` -虚值期权权利金便宜,但需要价格大幅波动才能盈利 -大多数深度虚值期权到期归零 - -实际数据:约 70%~80% 的期权到期时是虚值(归零) -``` - -### ❌ 误区3:买了就不管,等到到期 -``` -错误!时间价值每天都在衰减 - -正确做法: - 赚钱了 → 分批止盈 - 亏损过半 → 止损出局 - 到期前一周 → 如果虚值就主动平仓回收残值 -``` - -### ❌ 误区4:期权能保证赚钱 -``` -期权是工具,不是印钞机 -买方优势:亏损有限,盈利无限 -买方劣势:需要方向+幅度+时间 三者都对才能赚钱 - -据统计,期权买方长期盈利的比例 < 30% -但好处是:每次亏损可控,赢一次可能顶多次亏损 -``` - ---- - -## 9. 期权 vs 合约 vs 现货 对比 - -| 特性 | 现货 | 合约(永续) | 期权(买方) | -|------|------|-------------|-------------| -| **最大亏损** | 100%(归零) | 保证金全部(爆仓) | 权利金(固定) | -| **最大盈利** | 无限 | 无限 | 无限 | -| **杠杆** | 1x | 1x~125x | 天然杠杆(10x~100x+) | -| **爆仓风险** | 无 | **有** | **无** | -| **持有成本** | 无 | 资金费率 | 时间衰减 | -| **到期日** | 无 | 无 | **有** | -| **适合场景** | 长期持有 | 短期投机/对冲 | 方向投机/保险 | -| **复杂度** | ★ | ★★ | ★★★★ | - ---- - -## 10. 新手行动清单 - -``` -第1步:用模拟盘练习(OKX 有期权模拟交易) - → 先不要用真金白银 - -第2步:只做买方(Buy Call / Buy Put) - → 不要卖期权 - -第3步:从小仓位开始 - → 每次投入 ≤ 总资金的 2% - -第4步:选择流动性好的合约 - → BTC/ETH 的平值和轻度虚值期权 - → 选择最近月度到期日 - -第5步:记录每笔交易 - → 买入理由、行权价选择、到期日、结果 - → 复盘总结 -``` - ---- - -## 附录:常用公式速查 - -``` -盈亏平衡点(Call)= 行权价 + 权利金 -盈亏平衡点(Put)= 行权价 - 权利金 - -Call 到期利润 = max(0, 标的价格 - 行权价) - 权利金 -Put 到期利润 = max(0, 行权价 - 标的价格) - 权利金 - -杠杆倍数 ≈ 标的价格 × Delta / 权利金 -``` - ---- - -*文档版本:v1.0 | 更新日期:2026-02-08 | 适用交易所:OKX* diff --git "a/docs/\347\276\216\350\202\241\346\212\225\350\265\204\345\256\214\345\205\250\346\214\207\345\215\227.md" "b/docs/\347\276\216\350\202\241\346\212\225\350\265\204\345\256\214\345\205\250\346\214\207\345\215\227.md" deleted file mode 100644 index d3cb28d..0000000 --- "a/docs/\347\276\216\350\202\241\346\212\225\350\265\204\345\256\214\345\205\250\346\214\207\345\215\227.md" +++ /dev/null @@ -1,1521 +0,0 @@ -# 美股投资完全指南 - -> 从零开始了解美国股票市场 — 市场结构、交易规则、核心指数、选股逻辑与实战技巧 - ---- - -## 目录 - -1. [美股市场概览](#1-美股市场概览) -2. [核心交易所与市场结构](#2-核心交易所与市场结构) -3. [三大指数详解](#3-三大指数详解) -4. [交易时间与规则](#4-交易时间与规则) -5. [美股账户与开户](#5-美股账户与开户) -6. [股票分类与板块](#6-股票分类与板块) -7. [美股核心概念](#7-美股核心概念) -8. [美股衍生品体系](#8-美股衍生品体系) -9. [影响美股的关键因素](#9-影响美股的关键因素) -10. [美股选股方法](#10-美股选股方法) -11. [美股交易策略](#11-美股交易策略) -12. [美股税务与合规](#12-美股税务与合规) -13. [常用工具与数据源](#13-常用工具与数据源) -14. [新手入门路线图](#14-新手入门路线图) - ---- - -## 1. 美股市场概览 - -### 1.1 为什么美股是全球最重要的市场 - -``` -全球股票市场总市值:约 $110 万亿(2025年底) -美股市场总市值: 约 $55 万亿 → 占全球 50% - -日均交易量:约 $500~700 亿美元 -上市公司数量:约 6,000+ 家 -全球市值最大的 10 家公司中有 8 家在美股上市 - -美股的全球影响力: - - "美股打喷嚏,全球股市感冒" - - 美联储政策通过美股传导到全世界 - - 全球资金以美元计价 → 美股是最大的"资金池" - - 科技创新的定价中心(AI、云计算、生物医药等) -``` - -### 1.2 美股的历史与长期表现 - -``` -关键历史节点: - -1792年 纽约证券交易所成立(梧桐树协议) -1929年 大崩盘 → 道指暴跌 89%,持续到1932年 -1971年 纳斯达克成立(第一个电子交易所) -1987年 "黑色星期一" → 道指单日暴跌 22.6% -2000年 互联网泡沫破裂 → 纳指从 5,048 跌到 1,114 -2008年 金融危机 → 标普500 从 1,565 跌到 666 -2020年 新冠疫情 → 标普500 一个月跌 34%,然后 V 型反弹 -2024年 AI 牛市 → 标普500 突破 6,000 点历史新高 - -长期回报率(标普500): - 过去 100 年:年化约 10%(含分红再投资) - 过去 30 年:年化约 10.5% - 过去 10 年:年化约 12% - -通货膨胀调整后的实际回报率:年化约 7% - -$10,000 投入标普500 的增长(含分红再投资): - 10年后 → 约 $27,000 - 20年后 → 约 $73,000 - 30年后 → 约 $197,000 - -⚠️ 这是长期平均,中间可能经历 -30%~-50% 的回撤 - 短期风险极大,长期趋势向上 -``` - ---- - -## 2. 核心交易所与市场结构 - -### 2.1 两大交易所 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - NYSE(纽约证券交易所) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -别名:纽交所 / "大板"(Big Board) -位置:纽约华尔街 11 号 -成立:1792年 -上市公司:约 2,400 家 -代表公司:伯克希尔·哈撒韦(BRK)、摩根大通(JPM)、 - 强生(JNJ)、宝洁(PG)、可口可乐(KO) -特点: - - 历史最悠久,品牌信誉最高 - - 上市门槛高,偏传统蓝筹 - - 有"指定做市商"(DMM)制度 - - 仍有实体交易大厅(象征意义 > 实际功能) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - NASDAQ(纳斯达克) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -别名:纳指 -成立:1971年 -上市公司:约 3,600 家 -代表公司:苹果(AAPL)、微软(MSFT)、谷歌(GOOGL)、 - 亚马逊(AMZN)、英伟达(NVDA)、Meta(META)、特斯拉(TSLA) -特点: - - 全电子化交易,没有实体交易大厅 - - 科技股集中地 - - 上市门槛相对灵活 - - 全球科技创新的"标杆市场" -``` - -### 2.2 其他重要市场 - -``` -NYSE American(原 AMEX): - - 小型公司和 ETF 的上市地 - - SPDR S&P 500 ETF(SPY)最初在这里上市 - -OTC Markets(场外市场): - - OTCQX:场外最高层级,有一定质量标准 - - OTCQB:中等层级 - - Pink Sheets(粉单):最低层级,监管最少 - ⚠️ OTC 股票风险极高,流动性差,新手不要碰 - -暗池(Dark Pools): - - 机构投资者私下撮合大额交易的场所 - - 不在公开市场显示订单 → 减少市场冲击 - - 占美股总交易量的 30%~40% - - 普通投资者的订单也可能被路由到暗池 -``` - -### 2.3 市场参与者 - -``` -机构投资者(占交易量 70%+): - - 共同基金(Vanguard, Fidelity, BlackRock) - - 对冲基金(Citadel, Renaissance, Bridgewater) - - 养老金(CalPERS, 挪威主权基金) - - 保险公司、主权财富基金 - - 做市商(Citadel Securities, Virtu Financial) - -散户投资者(占交易量约 25%): - - 通过 Robinhood, Schwab, Interactive Brokers 等交易 - - 2020年后散户参与度大幅增加 - -高频交易(HFT,占交易量约 50%+): - - 以微秒级速度交易 - - 提供流动性但也加剧短期波动 - - 做市、套利、统计策略为主 -``` - ---- - -## 3. 三大指数详解 - -### 3.1 道琼斯工业平均指数(DJIA / Dow 30) - -``` -创立时间:1896年 -成分股数量:30 只 -编制方式:价格加权(股价越高权重越大) -管理者:标普道琼斯指数公司 - -当前前10大权重股(2025年底,按价格权重排序): - 1. 联合健康(UNH) ~9% - 2. 高盛(GS) ~7% - 3. 微软(MSFT) ~6% - 4. 家得宝(HD) ~6% - 5. Caterpillar(CAT) ~5% - 6. Salesforce(CRM) ~5% - 7. Amgen(AMGN) ~5% - 8. 麦当劳(MCD) ~4% - 9. Visa(V) ~4% - 10. 苹果(AAPL) ~3% - -特点: - ✅ 历史最悠久、知名度最高 - ❌ 只有 30 只股票,代表性有限 - ❌ 价格加权不合理(股价高 ≠ 公司大) - - 例子:UNH 股价 $550,权重 ~9% - 苹果股价 $240,权重只有 ~3% - 但苹果市值是 UNH 的 6 倍! - -可交易工具: - ETF:DIA(SPDR Dow Jones ETF) - 期货:YM(E-mini Dow Futures) - 期权:DIA 期权 -``` - -### 3.2 标普 500 指数(S&P 500) - -``` -创立时间:1957年(前身可追溯到1923年) -成分股数量:500 只(实际约 503 只,因有双层股票结构) -编制方式:流通市值加权(市值越大权重越大) -管理者:标普道琼斯指数公司 - -⭐ 被公认为最能代表美股整体的指数 - -当前前10大权重股(2025年底): - 1. 苹果(AAPL) ~7.0% - 2. 微软(MSFT) ~6.5% - 3. 英伟达(NVDA) ~6.0% - 4. 亚马逊(AMZN) ~3.8% - 5. Meta(META) ~2.5% - 6. 谷歌A(GOOGL) ~2.2% - 7. 伯克希尔B(BRK.B) ~2.0% - 8. 特斯拉(TSLA) ~1.8% - 9. 博通(AVGO) ~1.7% - 10. 谷歌C(GOOG) ~1.8% - - 前10名合计权重:约 35%(高度集中) - -纳入标准: - - 美国公司 - - 市值 ≥ $180 亿(2025年标准) - - 公众持股比例 ≥ 50% - - 连续4个季度盈利 - - 充足的流动性 - - 由指数委员会主观决定(不是纯机械规则) - -可交易工具: - ETF:SPY(最大的 ETF,日均成交量超 $300 亿) - VOO(Vanguard 版本,费率更低) - IVV(iShares 版本) - 期货:ES(E-mini S&P 500 Futures) - MES(Micro E-mini,ES 的 1/10) - 期权:SPX(指数期权,现金结算) - SPY 期权(ETF 期权,实物交割) - -为什么标普500最重要: - - 全球被动资金跟踪最多的指数 - - 美国养老金、401(k) 的默认配置 - - "跑赢标普500"是所有基金经理的终极目标 - - 巴菲特推荐普通人只买标普500指数基金 -``` - -### 3.3 纳斯达克 100 指数(Nasdaq-100 / NDX) - -``` -创立时间:1985年 -成分股数量:100 只(非金融类最大公司) -编制方式:修正市值加权 -管理者:纳斯达克交易所 - -⭐ 科技股的"晴雨表" - -当前前10大权重股(2025年底): - 1. 苹果(AAPL) ~9% - 2. 微软(MSFT) ~8% - 3. 英伟达(NVDA) ~7% - 4. 亚马逊(AMZN) ~5% - 5. Meta(META) ~5% - 6. 博通(AVGO) ~4% - 7. 谷歌A(GOOGL) ~3% - 8. 特斯拉(TSLA) ~3% - 9. Costco(COST) ~3% - 10. 谷歌C(GOOG) ~3% - - 前10名合计权重:约 50%(极度集中) - -特点: - ✅ 科技成长股集中 → 牛市时涨幅最大 - ❌ 不含金融股(银行、保险不在里面) - ❌ 波动性比标普500大 - - 纳指100 的年化波动率约 20%~25% - 标普500 的年化波动率约 15%~18% - -可交易工具: - ETF:QQQ(Invesco QQQ Trust,极其活跃) - QQQM(费率更低的版本) - 期货:NQ(E-mini Nasdaq-100 Futures) - MNQ(Micro E-mini,NQ 的 1/10) - 期权:NDX 期权(现金结算) - QQQ 期权 -``` - -### 3.4 其他重要指数 - -``` -罗素 2000(Russell 2000): - - 2,000 只小盘股 - - 美国经济的"健康指标"(小公司更依赖本土经济) - - ETF:IWM - - 期货:RTY - -标普中盘 400(S&P MidCap 400): - - 400 只中型股 - - ETF:MDY - -VIX(恐慌指数): - - 衡量标普500期权的隐含波动率 - - VIX < 15 = 市场平静 - - VIX 20~30 = 市场紧张 - - VIX > 30 = 市场恐慌 - - VIX > 50 = 极度恐慌(2020年3月曾到 82) - - 可交易工具:VIX 期货、VIX 期权、UVXY/SVXY(ETF/ETN) - -费城半导体指数(SOX): - - 30 只半导体公司 - - ETF:SOXX, SMH - - AI 时代最受关注的行业指数 -``` - -### 3.5 "Magnificent 7"(七巨头) - -``` -2023~2025 年美股的核心驱动力: - - AAPL 苹果 市值 ~$3.5万亿 - MSFT 微软 市值 ~$3.2万亿 - NVDA 英伟达 市值 ~$3.0万亿 - AMZN 亚马逊 市值 ~$2.3万亿 - GOOGL 谷歌 市值 ~$2.2万亿 - META Meta 市值 ~$1.6万亿 - TSLA 特斯拉 市值 ~$1.2万亿 - -七巨头合计市值:约 $17万亿 -占标普500总市值:约 30%+ -占标普500涨幅贡献:2023年约 60%,2024年约 50% - -这意味着: - "买标普500 ≈ 30% 的钱买了七巨头" - 如果七巨头表现不好,标普500 很难涨 -``` - ---- - -## 4. 交易时间与规则 - -### 4.1 交易时间(北京时间) - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 常规交易时段(Regular Trading Hours) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -夏令时(3月第二个周日 ~ 11月第一个周日): - 北京时间 21:30 ~ 次日 04:00 - -冬令时(11月第一个周日 ~ 3月第二个周日): - 北京时间 22:30 ~ 次日 05:00 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 盘前交易(Pre-Market) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -夏令时:北京时间 16:00 ~ 21:30 -冬令时:北京时间 17:00 ~ 22:30 - -特点: - - 流动性低,价差大 - - 财报发布后(盘前/盘后)价格波动最大 - - 不是所有券商都支持盘前交易 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 盘后交易(After-Hours) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -夏令时:北京时间 04:00 ~ 08:00 -冬令时:北京时间 05:00 ~ 09:00 - -⚠️ 盘前盘后只能使用限价单,不支持市价单 -``` - -### 4.2 关键交易规则 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - T+0 交易(无限日内交易?不是!) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -美股允许 T+0(当天买当天卖),但有限制: - -PDT 规则(Pattern Day Trader Rule): - - 如果账户资金 < $25,000 - - 5 个交易日内最多 3 次日内交易 - - 第 4 次会被标记为 PDT → 账户被限制 90 天 - - 日内交易 = 同一天买入并卖出同一只股票 - - 解决方案: - ① 保持账户资金 ≥ $25,000 → 不限次数 - ② 使用现金账户(Cash Account)→ 不受 PDT 限制 - 但需要等 T+1 结算后资金才能再次使用 - ③ 使用离岸券商(如 IBKR 国际版,部分不受美国 PDT 限制) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 无涨跌幅限制(但有熔断机制) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -美股没有 A 股那样的 10% 涨跌幅限制! -单日涨跌 50% 甚至 100% 都可能发生(小盘股) - -但有市场级别的熔断机制(Circuit Breaker): - Level 1:标普500 下跌 7% → 暂停交易 15 分钟 - Level 2:标普500 下跌 13% → 暂停交易 15 分钟 - Level 3:标普500 下跌 20% → 当天停止交易 - -个股也有 LULD 机制(Limit Up-Limit Down): - 如果股价在 5 分钟内波动超过参考价的 5%~20% - → 触发"限价交易期" → 如果持续异常则暂停交易 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 做空(Short Selling) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -美股允许做空:借入股票 → 卖出 → 等跌了再买回 → 还给券商 - -做空要求: - - 保证金账户(Margin Account) - - 券商有该股票的可借库存 - - 需要支付借股费用(Hard-to-Borrow 的股票费率极高) - - SSR 规则:股价当日下跌 ≥ 10% → 次日做空只能在上涨时成交 - -做空风险: - - 理论上亏损无限(股价可以无限上涨) - - 可能被"轧空"(Short Squeeze) - - 例:2021年 GME 事件,空头损失数十亿美元 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 美股最小交易单位 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -最小交易单位:1 股(不像 A 股必须 100 股/手) -碎股交易:部分券商支持购买 0.001 股(如 Schwab, Interactive Brokers) -→ 即使伯克希尔A (BRK.A) 股价 $60 万,你也可以买 $100 的碎股 -``` - -### 4.3 订单类型 - -``` -市价单(Market Order): - 立即以当前最优价格成交 - ✅ 保证成交 - ❌ 不保证价格(流动性差的股票可能滑点很大) - -限价单(Limit Order): - 指定价格,到达才成交 - ✅ 保证价格 - ❌ 不保证成交 - -止损单(Stop Order): - 股价触及止损价 → 触发市价单 - 用于控制亏损 - -止损限价单(Stop-Limit Order): - 股价触及止损价 → 触发限价单 - 比止损单多一层价格保护 - -跟踪止损(Trailing Stop): - 止损价随股价上涨自动上移 - 例:设 5% 跟踪止损 → 股价涨到 $100 → 止损在 $95 - 如果继续涨到 $110 → 止损自动上移到 $104.5 - -GTC(Good Till Cancelled): - 订单持续有效直到成交或手动取消 - -IOC(Immediate or Cancel): - 立即成交能成交的部分,剩余自动取消 - -FOK(Fill or Kill): - 要么全部成交,要么全部取消 -``` - ---- - -## 5. 美股账户与开户 - -### 5.1 中国投资者如何开户 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 方式一:美国券商直接开户(推荐) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -Interactive Brokers(盈透证券)⭐ 最推荐 - 优点: - - 全球覆盖最广(美/港/A/欧/日/加密等 150+ 市场) - - 佣金极低($0.0035/股,最低 $0.35/单) - - 专业级交易工具(TWS 平台) - - 支持期权、期货、外汇、债券 - - 保证金利率最低 - 缺点: - - 界面复杂,学习曲线陡 - - 开户审核较严 - 开户:www.ibkr.com,中国大陆身份可开 - -Charles Schwab(嘉信理财) - 优点:美股免佣金,服务好 - 缺点:2024年后对国际客户限制增多 - -Firstrade(第一证券) - 优点:美股免佣金,中文界面 - 缺点:功能相对简单 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 方式二:港股券商 → 打通美股 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -富途证券(Futu / Moomoo) - 优点:港美股一站式,中文友好,社区功能强 - 缺点:佣金比 IBKR 高 - -老虎证券(Tiger Brokers) - 优点:类似富途,中文界面 - 缺点:同上 - -长桥证券(Longbridge) - 优点:新兴平台,费率有竞争力 - 缺点:规模较小 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 方式三:通过 QDII 基金间接投资 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -不需要开海外账户,通过国内基金公司: - - 标普500指数基金(如:博时标普500 ETF) - - 纳指100指数基金(如:国泰纳斯达克100 ETF) - - QDII 额度限制,可能限购 -``` - -### 5.2 账户类型 - -``` -现金账户(Cash Account): - - 只能用已有资金交易 - - 不能做空 - - 不受 PDT 规则限制 - - 适合:保守型投资者 - -保证金账户(Margin Account): - - 可以借钱交易(杠杆) - - 可以做空 - - 受 PDT 规则限制(< $25,000) - - 最大杠杆:日内 4:1,隔夜 2:1 - - 适合:有经验的交易者 - -IRA 账户(个人退休账户,仅限美国税务居民): - - Traditional IRA:税前投入,退休取出时交税 - - Roth IRA:税后投入,退休取出免税 - - 每年投入上限:$7,000(50岁以下),$8,000(50岁以上) -``` - -### 5.3 入金方式 - -``` -电汇(Wire Transfer): - - 从中国银行账户汇美元到券商 - - 每人每年 $50,000 购汇额度(中国外汇管制) - - 手续费:约 $15~$50/笔 - - 到账:1~3 个工作日 - -ACH 转账(美国国内): - - 如果有美国银行账户 - - 免费,1~3 天到账 - -港股券商入金: - - 先港币入金 → 券商内兑换美元 - - 支持 FPS、银行转账等 -``` - ---- - -## 6. 股票分类与板块 - -### 6.1 GICS 行业分类(11个板块) - -``` -标普500 的行业分类标准(GICS): - -┌─────────────────┬──────┬─────────────────────────────┐ -│ 板块 │ 权重 │ 代表公司 │ -├─────────────────┼──────┼─────────────────────────────┤ -│ 信息技术 │ ~32% │ AAPL, MSFT, NVDA, AVGO │ -│ 医疗保健 │ ~12% │ UNH, JNJ, LLY, ABBV │ -│ 金融 │ ~13% │ BRK.B, JPM, V, MA │ -│ 非必需消费品 │ ~10% │ AMZN, TSLA, HD, MCD │ -│ 通信服务 │ ~9% │ META, GOOGL, NFLX, DIS │ -│ 工业 │ ~8% │ GE, CAT, UPS, HON │ -│ 必需消费品 │ ~6% │ PG, KO, PEP, WMT, COST │ -│ 能源 │ ~4% │ XOM, CVX, COP │ -│ 公用事业 │ ~2% │ NEE, DUK, SO │ -│ 原材料 │ ~2% │ LIN, APD, SHW │ -│ 房地产 │ ~2% │ PLD, AMT, EQIX │ -└─────────────────┴──────┴─────────────────────────────┘ - -行业 ETF(方便交易整个板块): - XLK - 科技 XLF - 金融 XLV - 医疗 - XLY - 非必需 XLC - 通信 XLI - 工业 - XLP - 必需 XLE - 能源 XLU - 公用事业 - XLB - 原材料 XLRE - 房地产 -``` - -### 6.2 按市值分类 - -``` -超大盘股(Mega-Cap):市值 > $2000 亿 - Magnificent 7、BRK.B、UNH、V、JPM - 特点:稳定、流动性极好、机构重仓 - -大盘股(Large-Cap):市值 $100~2000 亿 - NFLX、AMD、INTC、BA、GS - 特点:行业龙头、被广泛研究 - -中盘股(Mid-Cap):市值 $20~100 亿 - 特点:成长潜力 > 大盘,风险 < 小盘 - ETF:MDY, IJH - -小盘股(Small-Cap):市值 $3~20 亿 - 特点:波动大、机会多、研究覆盖少 - ETF:IWM(Russell 2000) - -微盘股(Micro-Cap):市值 < $3 亿 - ⚠️ 高风险,流动性差,容易被操纵 -``` - -### 6.3 按投资风格分类 - -``` -成长股(Growth): - 定义:营收/利润高速增长,估值较高(高 PE) - 特点:涨时猛跌时也猛,不分红或少分红 - 代表:NVDA, TSLA, CRM, SHOP - 适合:愿意承受高波动追求高回报的投资者 - -价值股(Value): - 定义:估值便宜,通常是成熟企业 - 特点:波动较小,分红较高 - 代表:BRK.B, JPM, JNJ, PG - 适合:追求稳定收益和分红的投资者 - -收息股(Dividend / Income): - 定义:持续高分红的公司 - 标准:股息率 > 2%,且分红连续增长多年 - "分红贵族":连续25年以上每年增加分红的公司 - 代表:KO(62年连续增红)、JNJ(62年)、PG(68年) - 适合:退休收入、保守型投资者 - -GARP(合理价格的成长股): - 定义:成长性好但估值不贵 - PEG 比率 < 1 通常被视为 GARP 标的 -``` - ---- - -## 7. 美股核心概念 - -### 7.1 估值指标 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - PE(市盈率)= 股价 / 每股收益 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - 标普500 历史平均 PE:约 16~17 倍 - 当前标普500 PE:约 25~28 倍(2025年底,偏高) - - Forward PE(前瞻PE):用未来12个月预期收益计算 - Trailing PE(滞后PE):用过去12个月实际收益计算 - - 高 PE = 贵?不一定 - 高成长公司(NVDA PE 50+)可能物有所值 - 低增长公司(传统银行 PE 10)可能是价值陷阱 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - PS(市销率)= 市值 / 营收 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - 适用于尚未盈利的公司(SaaS、生物科技) - 标普500 平均 PS:约 2.5~3 倍 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - PB(市净率)= 股价 / 每股净资产 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - 适用于金融、房地产等资产密集型行业 - PB < 1 理论上意味着"打折买资产" - 科技公司的 PB 通常很高(轻资产模式) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - PEG = PE / 收益增长率 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - PEG < 1:便宜(成长性高于估值) - PEG = 1:合理 - PEG > 2:偏贵 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - EV/EBITDA = 企业价值 / 税息折旧前利润 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - 比 PE 更准确(排除了资本结构和税务差异) - 常用于并购估值和跨公司对比 - 标普500 平均:约 14~16 倍 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 自由现金流收益率 = FCF / 市值 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - 巴菲特最看重的指标之一 - FCF 收益率 > 5% 通常被视为有吸引力 - 反映公司实际"赚到手的钱"相对于价格的比例 -``` - -### 7.2 财报季(Earnings Season) - -``` -时间:每年 4 个财报季 - Q4 财报:1月中旬 ~ 2月中旬 - Q1 财报:4月中旬 ~ 5月中旬 - Q2 财报:7月中旬 ~ 8月中旬 - Q3 财报:10月中旬 ~ 11月中旬 - -财报发布时间: - 盘前公布:开盘前(BMO = Before Market Open) - 盘后公布:收盘后(AMC = After Market Close) - -核心关注数据: - 1. 营收(Revenue) vs 分析师预期 - 2. 每股收益(EPS) vs 分析师预期 - 3. 指引(Guidance) → 下季度/全年预期(最重要!) - 4. 毛利率/经营利润率趋势 - 5. 用户/订阅数等业务指标(特定行业) - -"Beat & Raise"(超预期 + 上调指引): - → 通常大涨 5%~20% - -"Beat but Lower Guidance"(超预期但下调指引): - → 通常反而下跌(市场更看重未来) - -"Miss"(低于预期): - → 通常大跌 5%~30% - -⚠️ 财报发布后盘前/盘后波动极大 - 持仓股票跨财报 = "赌博式"操作 - 保守做法:财报前减仓或平仓 -``` - -### 7.3 分红与回购 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 现金分红(Dividend) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -美股分红频率:通常季度分红(每3个月一次) - 少数公司月度分红(如 REITs) - -关键日期: - 宣布日(Declaration Date):公司宣布分红金额 - 除息日(Ex-Dividend Date):这天起买入不享受分红 - 登记日(Record Date):通常除息日后 1 天 - 支付日(Payment Date):分红到账日 - -标普500 平均股息率:约 1.3%~1.5% -高分红 ETF:SCHD(约 3.5%)、VYM(约 3%) - -⚠️ 中国投资者在美股的分红需缴 10% 预扣税 - (中美税收协定优惠税率,自动代扣) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 股票回购(Buyback) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -美股公司回报股东的主要方式: - -标普500 公司年度回购总额:约 $8,000~$9,000 亿 - 超过分红总额! - -回购的意义: - 公司用现金买回自家股票 → 流通股减少 → EPS 提高 → 股价上涨 - -回购大户: - 苹果:累计回购超 $7,000 亿(全球第一) - 谷歌:年回购约 $600 亿 - Meta:年回购约 $400 亿 - -为什么美股偏好回购而不是分红? - → 回购在税务上对股东更有利(资本利得 vs 分红税) - → 更灵活(可以随时停止) -``` - -### 7.4 拆股与合股 - -``` -拆股(Stock Split): - 例:1:4 拆股 → 1股变4股,每股价格变为原来1/4 - 总市值不变,只是"切小了" - - 目的:降低每股价格 → 散户更容易买入 → 提高流动性 - - 近年重大拆股: - NVDA 2024年 1:10($1,200 → $120) - AMZN 2022年 1:20($2,800 → $140) - GOOGL 2022年 1:20($2,200 → $110) - TSLA 2022年 1:3 ($900 → $300) - AAPL 2020年 1:4 ($500 → $125) - - ⚠️ 拆股本身不改变公司价值 - 但市场通常对拆股公告给予正面反应 - 因为它通常暗示管理层对股价有信心 - -合股(Reverse Split): - 例:1:10 合股 → 10股合为1股 - 通常是负面信号(股价太低,面临退市风险) -``` - ---- - -## 8. 美股衍生品体系 - -### 8.1 期权 - -``` -美股拥有全球最发达的期权市场 - -日均期权成交量:约 4,500 万张合约(2025年) -主要交易所:CBOE, ISE, ARCA, MIAX, PHLX - -个股期权:几乎所有主流股票都有 -指数期权:SPX, NDX, RUT, VIX - -到期频率: - 月度:每月第3个周五 - 周度:每周五(活跃标的) - 0DTE:每天到期(SPY/QQQ/IWM/SPX) - -⚠️ 0DTE 期权近年爆发式增长 - 2023年 0DTE 占 SPX 期权总成交量的 40%+ - 极高风险/收益比,不适合新手 - -详细期权知识请参考:docs/期权入门指南.md -``` - -### 8.2 期货 - -``` -股指期货: - ES(E-mini S&P 500) 每点 $50 - MES(Micro E-mini) 每点 $5(ES的1/10) - NQ(E-mini Nasdaq-100)每点 $20 - MNQ(Micro E-mini) 每点 $2(NQ的1/10) - YM(E-mini Dow) 每点 $5 - RTY(E-mini Russell) 每点 $50 - -特点: - - 几乎 24 小时交易(周日18:00~周五17:00 ET,每天暂停1小时) - - 高杠杆(MES 保证金约 $1,500,控制约 $27,000 的标的) - - 可做多/做空 - - 税务优惠(60/40 规则:60% 按长期资本利得税率) - -适合: - - 对冲股票组合风险 - - 利用高杠杆进行趋势交易 - - 跨时区交易(美股收盘后仍可交易期货) -``` - -### 8.3 ETF 和 ETN - -``` -ETF(交易所交易基金): - 像股票一样买卖的基金 - 美股ETF数量:3,000+ - - 核心 ETF 清单: - ───────────────────────────────────── - 指数跟踪: - SPY/VOO/IVV → 标普500 - QQQ/QQQM → 纳斯达克100 - IWM → 罗素2000 - DIA → 道琼斯30 - - 行业板块:XLK, XLF, XLV, XLE, SOXX, XBI... - - 国际市场: - EEM → 新兴市场 - EFA → 发达市场 - FXI → 中国大盘 - KWEB → 中国互联网 - - 债券: - TLT → 美国20年+国债 - BND → 全市场债券 - HYG → 高收益债(垃圾债) - - 商品: - GLD/IAU → 黄金 - SLV → 白银 - USO → 原油 - - 波动率: - UVXY → 做多VIX(2倍杠杆) - SVXY → 做空VIX - - 杠杆ETF(⚠️高风险): - TQQQ → 3倍做多纳指100 - SQQQ → 3倍做空纳指100 - SPXL → 3倍做多标普500 - UPRO → 3倍做多标普500 - - ⚠️ 杠杆ETF只适合短线,长期持有会因"波动率衰减"亏损 -``` - ---- - -## 9. 影响美股的关键因素 - -### 9.1 宏观经济指标 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 最重要的经济数据(按影响力排序) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -1. 美联储利率决议(FOMC) - 频率:每年 8 次 - 影响:★★★★★(最大) - 加息 → 利空股市(资金成本上升) - 降息 → 利好股市(流动性宽松) - - 2022-2023年:加息周期(0% → 5.50%)→ 2022年标普跌 19% - 2024-2025年:降息周期开始 → 股市创新高 - -2. 非农就业(NFP) - 频率:每月第一个周五 - 影响:★★★★ - 好消息是坏消息?取决于市场焦点 - 通胀时期:就业强 → 联储不降息 → 利空 - 衰退时期:就业强 → 经济没崩 → 利好 - -3. CPI(消费者价格指数)/ 通胀 - 频率:每月中旬 - 影响:★★★★ - CPI 高于预期 → 联储鹰派 → 利空 - CPI 低于预期 → 联储鸽派 → 利好 - -4. GDP - 频率:季度(初值/修正值/终值 共3次) - 影响:★★★ - 反映经济整体状况 - -5. PMI(采购经理人指数) - 频率:每月 - 影响:★★★ - > 50 = 扩张, < 50 = 收缩 - -6. 消费者信心指数 - 频率:每月 - 影响:★★ - 美国 GDP 70% 靠消费,消费者信心很关键 - -7. 初请失业金人数 - 频率:每周四 - 影响:★★ - 高频数据,反映劳动力市场即时状况 -``` - -### 9.2 美联储与货币政策 - -``` -美联储(Federal Reserve)= 美股最大的"幕后力量" - -关键概念: - -联邦基金利率(Fed Funds Rate): - 银行间隔夜拆借利率 - 影响所有借贷成本 → 影响企业利润和股票估值 - 当前(2025年底):约 4.25%~4.50% - -量化宽松(QE): - 联储印钱买国债和 MBS → 市场上美元增多 → 利好股市 - 2020-2021年 QE → 标普500 从 2,200 涨到 4,800 - -量化紧缩(QT): - 联储缩减资产负债表 → 市场上美元减少 → 利空股市 - 2022年开始 QT → 标普500 当年跌 19% - -"Don't fight the Fed"(不要和联储作对): - 这是美股最经典的交易格言 - 联储宽松 → 做多 - 联储紧缩 → 谨慎/做空 - -CME FedWatch Tool: - www.cmegroup.com/markets/interest-rates/cme-fedwatch-tool.html - 可以查看市场对未来利率的预期概率 -``` - -### 9.3 地缘政治与黑天鹅 - -``` -历史上重大冲击对美股的影响: - -┌────────────────────────┬──────────┬──────────────┐ -│ 事件 │ 最大跌幅 │ 恢复时间 │ -├────────────────────────┼──────────┼──────────────┤ -│ 珍珠港 (1941) │ -19% │ 307 天 │ -│ 肯尼迪遇刺 (1963) │ -3% │ 1 天 │ -│ 911 事件 (2001) │ -12% │ 40 天 │ -│ 雷曼倒闭 (2008) │ -54% │ 4 年 │ -│ 新冠疫情 (2020) │ -34% │ 5 个月 │ -│ 俄乌冲突 (2022) │ -13% │ 约 6 个月 │ -└────────────────────────┴──────────┴──────────────┘ - -经验总结: - - 短期冲击(非经济基本面)→ 快速恢复 - - 基本面恶化(金融危机)→ 恢复时间长 - - 长期来看,美股总是创新高 - - "Buy the dip"(逢低买入)在长期是有效的 -``` - -### 9.4 科技创新周期 - -``` -美股是全球科技创新的定价中心 - -历史科技浪潮与美股表现: - -1990s 互联网浪潮: - 纳指从 400 → 5,048(12倍),然后泡沫破裂跌到 1,114 - -2010s 移动互联网/云计算: - FAANG(Facebook, Apple, Amazon, Netflix, Google) - 纳指从 2,000 → 9,000(4.5倍) - -2020s AI 浪潮: - 英伟达 2023~2024 涨幅超 800% - 标普500 从 3,800 → 6,000+ - -当前 AI 产业链: - 算力层:NVDA, AMD, AVGO, MRVL, TSM - 模型层:MSFT(OpenAI), GOOGL(Gemini), META(Llama) - 应用层:CRM, SNOW, PLTR, NOW - 基础设施:ANET, DELL, SMCI -``` - ---- - -## 10. 美股选股方法 - -### 10.1 自上而下(Top-Down) - -``` -宏观环境 → 行业板块 → 个股选择 - -步骤: - 1. 判断经济周期阶段(扩张/见顶/收缩/复苏) - 2. 确定受益板块 - 3. 在板块内选择龙头个股 - -经济周期与板块轮动: - -早期复苏(降息初期): - 科技 ▲ 非必需消费 ▲ 金融 ▲ - -中期扩张(经济增长稳定): - 工业 ▲ 原材料 ▲ 科技 ▲ - -晚期扩张(通胀上升): - 能源 ▲ 原材料 ▲ 医疗 ▲ - -衰退期(GDP下降): - 公用事业 ▲ 必需消费 ▲ 医疗 ▲ 债券 ▲ -``` - -### 10.2 自下而上(Bottom-Up) - -``` -不关注宏观,专注找好公司 - -"好公司"的标准: - - 财务健康: - □ 营收持续增长(3年CAGR > 10%) - □ 净利润率稳定或上升 - □ 自由现金流为正且增长 - □ 负债率合理(Debt/Equity < 1.5) - □ ROE > 15%(赚钱效率高) - - 竞争优势(护城河 Moat): - □ 品牌:苹果、可口可乐 - □ 网络效应:Meta、Visa - □ 转换成本:微软、Adobe - □ 规模经济:亚马逊、沃尔玛 - □ 专利/技术壁垒:英伟达、辉瑞 - - 管理层: - □ 创始人掌舵(往往更有远见) - □ 管理层大量持股(利益一致) - □ 良好的资本配置记录 -``` - -### 10.3 量化筛选 - -``` -实用的量化筛选条件: - -成长股筛选: - 营收增长率(YoY)> 20% - EPS 增长率 > 25% - PE < 40(避免过度泡沫) - 机构持股比例 > 50% - -价值股筛选: - PE < 15 - PB < 2 - 股息率 > 2.5% - FCF Yield > 5% - 连续 10 年盈利 - -动量筛选: - 过去 12 个月涨幅排名前 20% - 过去 1 个月涨幅排名前 30% - 当前价格在 200日均线上方 - RSI 50~70(有动量但不过热) - -筛选工具: - Finviz.com(免费,功能强大) - TradingView.com(图表+筛选) - Seeking Alpha(研究报告) -``` - ---- - -## 11. 美股交易策略 - -### 11.1 长期投资(Buy & Hold) - -``` -适合:绝大多数人 | 最省心 | 历史回报最佳 - -核心方法: - 1. 每月定投标普500(SPY/VOO) - 2. 持有不动,无视短期波动 - 3. 分红再投资 - 4. 持有 10 年以上 - -历史数据支持: - 标普500 任意持有 20 年 → 历史上从未亏损 - 标普500 任意持有 1 年 → 约 27% 概率亏损 - -推荐组合(懒人版): - 80% VOO(标普500) - 20% VXUS(全球除美国) - - 或者更简单: - 100% VT(全球股票市场指数基金) - -定投频率: - 每月投一次即可 - 不需要择时(Time in the market > Timing the market) -``` - -### 11.2 价值投资 - -``` -适合:有耐心、愿意深入研究的投资者 - -巴菲特方法论简化版: - 1. 找到有持久竞争优势的公司(护城河) - 2. 管理层诚实且能干 - 3. 以合理或便宜的价格买入 - 4. 长期持有 - -具体指标: - 内在价值 = 未来自由现金流的折现值 - 安全边际 = 买入价 < 内在价值的 70%~80% - -适合价值投资的行业: - 消费品(KO, PG, PEP) - 金融(BRK.B, JPM) - 医疗(JNJ, UNH) - 科技龙头(AAPL, MSFT 在合理估值时) -``` - -### 11.3 动量/趋势交易 - -``` -适合:活跃交易者 | 需要技术分析能力 - -基本框架: - 1. 识别趋势(上涨/下跌/震荡) - 2. 在趋势方向上入场 - 3. 严格止损 - 4. 让利润奔跑 - -常用技术指标: - 趋势:200SMA, 50SMA, EMA - 动量:RSI, MACD - 波动:布林带, ATR - 成交量:OBV, VWAP - -入场信号示例: - - 股价站上 200 日均线 + RSI > 50 + 成交量放大 - - MACD 金叉 + 布林带收口后突破 - - 回踩 50 日均线支撑后反弹 - -止损规则: - - 固定百分比止损(如 -5%~-8%) - - ATR 止损(2倍 ATR 距离) - - 关键支撑位止损 -``` - -### 11.4 事件驱动交易 - -``` -适合:密切关注新闻、反应快的交易者 - -财报交易: - 策略A:"财报前布局" - 在财报前1~2周,根据预期和技术面建仓 - 财报前平仓(避免不确定性) - - 策略B:"财报后追击" - 等财报公布后,根据结果和市场反应建仓 - 例:超预期 + 放量突破 → 追多 - -拆股交易: - 公司宣布拆股后通常有正面反应 - 从宣布到实施期间可能持续上涨 - -重大事件: - 美联储决议 → 决议后第一根 K 线的方向跟随 - CPI 数据 → 低于预期做多,高于预期做空 - ⚠️ 事件驱动波动极大,必须严格止损 -``` - -### 11.5 期权策略 - -``` -核心期权策略(简要,详见期权文档): - -看涨:买入 Call / 卖出 Put / Bull Call Spread -看跌:买入 Put / 卖出 Call / Bear Put Spread -看不涨不跌:Iron Condor / Short Straddle -看波动:Long Straddle / Long Strangle - -收入策略: - Covered Call(备兑开仓): - 持有股票 + 卖出 Call → 收取权利金 - 适合:温和看多、想增加收入 - - Cash-Secured Put(现金担保卖Put): - 准备现金 + 卖出 Put → 要么收权利金、要么以更低价买入 - 适合:想"折价"买入看好的股票 - -"轮子策略"(The Wheel): - 卖 Put → 被行权得到股票 → 卖 Call → 被行权卖掉股票 - → 再卖 Put → 循环 - 适合:稳定收入、不急于择时的投资者 -``` - ---- - -## 12. 美股税务与合规 - -### 12.1 中国投资者的税务 - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 美国税务 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -分红税:10%(中美税收协定,自动预扣) - 正常税率是 30%,但中美协定减免到 10% - 由券商自动代扣 - -资本利得税:0% - 非美国税务居民的股票资本利得 → 不需要向美国交税! - 这是投资美股的一大优势 - -遗产税: - ⚠️ 非美国居民在美资产 > $60,000 → 可能被征收遗产税 - 税率最高 40% - 解决方案:通过 QDII 基金或 ETF 间接持有 - -W-8BEN 表格: - 开户时填写 → 证明非美国税务居民身份 - 有效期 3 年,到期需更新 - 不填 = 所有收入按 30% 税率预扣 - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - 中国税务 -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -理论上: - 中国税务居民的全球收入需申报 - 海外投资收益属于"境外所得" - 税率:20%(财产转让所得) - -实际上: - 目前中国对个人海外股票投资的税务执行较为宽松 - 但政策可能变化,建议关注最新法规 - -外汇管制: - 每人每年 $50,000 购汇额度 - 超额需要特殊审批 - 资金出境需要合规通道(电汇到正规券商) -``` - -### 12.2 重要合规规则 - -``` -SIPC 保险: - 美国证券投资者保护公司 - 保护金额:最高 $500,000(其中现金 $250,000) - 如果券商倒闭 → SIPC 赔偿 - ⚠️ 不保护投资亏损,只保护券商破产 - -SEC 法规: - 内幕交易(Insider Trading)→ 严重违法,可判刑 - 洗售规则(Wash Sale Rule): - 卖出亏损股票后 30 天内买回同一股票 - → 亏损不能用于抵税 - 对非美国居民影响不大(因为本来就不交资本利得税) - -FINRA 规则: - PDT 规则(前面已介绍) - 保证金要求:Reg T(50% 初始保证金,25% 维持保证金) -``` - ---- - -## 13. 常用工具与数据源 - -### 13.1 行情与图表 - -``` -TradingView(tradingview.com)⭐ 推荐 - - 最好用的图表工具 - - 免费版功能已经很强 - - 全球市场覆盖 - -Yahoo Finance(finance.yahoo.com) - - 免费,数据全面 - - 财报数据、分析师评级、新闻 - -Google Finance(google.com/finance) - - 简洁,适合快速查看 - -Investing.com - - 经济日历(最重要的功能) - - 全球市场数据 -``` - -### 13.2 研究与分析 - -``` -Finviz(finviz.com)⭐ 推荐 - - 强大的股票筛选器 - - 热力图(Heatmap)→ 一眼看全市场 - - 免费 - -Seeking Alpha(seekingalpha.com) - - 深度研报(社区贡献) - - 量化评级 - - 部分免费 - -Macrotrends(macrotrends.net) - - 长期历史数据(10年+) - - 财务报表、估值历史 - -EDGAR(sec.gov/edgar) - - SEC 官方文件(10-K, 10-Q, 8-K, 13F) - - 所有上市公司的法定信息披露 - - 免费 -``` - -### 13.3 经济数据 - -``` -FRED(fred.stlouisfed.org)⭐ 推荐 - - 美联储经济数据库 - - 几乎所有宏观数据都在这里 - - 免费,数据质量最高 - -CME FedWatch Tool - - 市场对利率的预期概率 - -经济日历: - Investing.com/economic-calendar - Forex Factory(forexfactory.com) -``` - -### 13.4 期权数据 - -``` -CBOE(cboe.com) - - VIX 数据 - - 期权成交量统计 - -OptionChain - - 各券商平台内置 - -Unusual Whales(unusualwhales.com) - - 异常期权活动监测 - - 国会议员交易追踪 - -Maximum Pain(maximum-pain.com) - - 各股票的 Max Pain 价位 -``` - ---- - -## 14. 新手入门路线图 - -### 阶段一:学习(1~3个月) - -``` -□ 了解基本概念(本文档) -□ 开设模拟交易账户(Interactive Brokers 提供免费模拟盘) -□ 学会看 K 线图和基本技术指标 -□ 了解财报的核心数据(营收、EPS、指引) -□ 熟悉主要指数和板块 ETF -□ 每天花 15 分钟看市场新闻 -``` - -### 阶段二:小额实战(3~6个月) - -``` -□ 开设真实账户(推荐 IBKR 或 富途) -□ 小额入金($1,000~$5,000 起步) -□ 先只买 ETF(SPY 或 QQQ),感受市场波动 -□ 尝试买入 1~2 只自己研究过的个股 -□ 记录每笔交易的理由和结果 -□ 严格止损,每笔风险不超过总资金的 2% -``` - -### 阶段三:建立体系(6~12个月) - -``` -□ 确定适合自己的交易风格: - 长线投资?短线交易?期权收入? -□ 建立自己的选股/交易系统 -□ 形成固定的研究流程 -□ 学习更高级的工具(期权、期货) -□ 跟踪记录自己的绩效 -□ 月度复盘,持续优化 -``` - -### 阶段四:持续进阶 - -``` -□ 深入学习期权策略 -□ 了解宏观经济分析框架 -□ 研究量化交易策略 -□ 分散到多个市场(港股、加密等) -□ 建立被动收入组合(分红 + 期权卖权) -□ 目标:年化收益率稳定跑赢标普500 -``` - -### 推荐书单 - -``` -入门: - 《漫步华尔街》 — 伯顿·马尔基尔 - 《股票作手回忆录》 — 爱德温·勒菲弗 - 《聪明的投资者》 — 本杰明·格雷厄姆 - -进阶: - 《彼得·林奇的成功投资》 — 彼得·林奇 - 《巴菲特致股东的信》 — 沃伦·巴菲特 - 《金融炼金术》 — 乔治·索罗斯 - -交易: - 《海龟交易法则》 — 柯蒂斯·费思 - 《日本蜡烛图技术》 — 史蒂夫·尼森 - 《技术分析实战》 — 约翰·墨菲 - -期权: - 《期权波动率与定价》 — 谢尔登·纳坦恩伯格 - 《麦克米伦谈期权》 — 劳伦斯·麦克米伦 -``` - ---- - -## 附录:美股常用术语速查 - -``` -┌────────────┬──────────────────────────────────────┐ -│ 术语 │ 含义 │ -├────────────┼──────────────────────────────────────┤ -│ Bull │ 牛市/看涨 │ -│ Bear │ 熊市/看跌 │ -│ Correction │ 回调(跌10%~20%) │ -│ Crash │ 崩盘(跌>20%) │ -│ Rally │ 反弹/上涨行情 │ -│ Dip │ 小幅回调 │ -│ ATH │ All-Time High(历史新高) │ -│ EPS │ 每股收益 │ -│ PE │ 市盈率 │ -│ Market Cap │ 市值 │ -│ Volume │ 成交量 │ -│ Bid/Ask │ 买入价/卖出价 │ -│ Spread │ 买卖价差 │ -│ Float │ 流通股 │ -│ Short Interest │ 空头持仓量 │ -│ Margin Call │ 追加保证金通知 │ -│ FOMO │ Fear Of Missing Out(害怕踏空) │ -│ FUD │ Fear, Uncertainty, Doubt(恐慌情绪) │ -│ DD │ Due Diligence(尽职调查/深度研究) │ -│ Baghold │ 被套(持有亏损股票) │ -│ Moonshot │ 暴涨(小盘股飙升) │ -│ YOLO │ You Only Live Once(全仓梭哈) │ -│ Diamond Hands │ 钻石手(坚定持有不卖) │ -│ Paper Hands │ 纸手(稍有波动就卖) │ -│ Hedge │ 对冲 │ -│ Rebalance │ 再平衡(调整持仓比例) │ -│ DCA │ Dollar-Cost Averaging(定投) │ -│ DRIP │ Dividend Reinvestment Plan(分红再投资) │ -└────────────┴──────────────────────────────────────┘ -``` - ---- - -*文档版本:v1.0 | 更新日期:2026-02-08* -*本文档仅供学习参考,不构成投资建议。投资有风险,入市需谨慎。* diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 73a52de..e77e888 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,8 +1,6 @@ import { lazy } from 'react' import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom' -import { AuthProvider, useAuth } from './auth/AuthProvider' import MainLayout from './components/MainLayout' -import Login from './pages/Login' const Home = lazy(() => import('./pages/Home')) const Market = lazy(() => import('./pages/Market')) @@ -18,20 +16,6 @@ const DataManager = lazy(() => import('./pages/DataManager')) const AILab = lazy(() => import('./pages/AILab')) function AppRoutes() { - const { authEnabled, authenticated, loading } = useAuth() - - if (loading) { - return ( -