Skip to content

Repository files navigation

BTC Scalp 量化交易策略

基于《Scalp 进阶学习笔记》(南桥价格行为体系)对 BTC 进行的 Price Action 剥头皮策略量化实现。

一、PDF 核心交易理念解析

原文将 scalp 入场分为 3 大类共 5 种执行方式,本质上围绕两种市场状态展开:

市场状态 入场方式 核心逻辑
强趋势/窄通道 突破单 scalp 顺势而为,趋势K极值挂止损突破单
宽幅震荡区间 突破单(区间上下沿) 反转结构+信号K,押注反转
宽幅震荡区间 市价单 大阳收盘做空 / 大阴收盘做多,押注 80% 突破失败
震荡区间 限价单①前高前低 在前高前低挂反向限价单
窄震荡区间 限价单②第二根趋势K极值 押注不会出现连续 3 根趋势K
震荡区间 限价单③解套战法 在被套趋势K收盘价做反转

两条底层信念

  1. 强趋势必延续,弱信号必反转
  2. 震荡区间内约 80% 的突破会失败

弱交易员的常见问题(PDF 第 4 页):

  • 仓位过大导致情绪化抗单
  • 无法连续高频进场,错过趋势利润
  • 把"成本价/上次盈亏"当锚点,而不是结构与触发

二、PA 概念量化映射

PA 概念 量化定义
趋势K `
信号K(针形) 一侧影线 > 2 × 实体,另一侧影线 < 实体
信号K(吞没) 当前K实体完全包含前一K实体且方向相反
强趋势 ADX > 25 且收盘价连续在 EMA20 同侧,HH/HL 或 LH/LL
窄通道 Donchian(20) 宽度 < 2 × ATR(14)
宽幅震荡区间 Donchian(50) 宽度 > 3 × ATR(14) 且 ADX < 20,且上下沿各有 ≥ 2 次触碰
区间 MM(中线) (Donchian_high + Donchian_low) / 2
反转结构(双顶/底) 两个高/低点价差 ≤ 0.3 × ATR,且中间有效回撤
反转结构(楔形) 滑动窗口内 swing 高低点的回归斜率收敛
被套K 趋势K 出现后 N 根内价格反向击穿其开盘价,标记其收盘价为埋伏位

三、策略架构

┌───────────────────────────────────────────────────────┐
│                  Market Regime Detector               │
│  trend / narrow_channel / wide_range / undefined      │
└───────────────────┬───────────────────────────────────┘
                    │
        ┌───────────┼───────────────┐
        ▼           ▼               ▼
   ┌────────┐  ┌─────────┐    ┌──────────┐
   │ trend  │  │ narrow  │    │   wide   │
   │ scalp  │  │ channel │    │  range   │
   └────────┘  └─────────┘    └──────────┘
        │           │               │
        ▼           ▼               ▼
   突破单顺势    突破单/限价②    市价单 + 限价①③

每根 K 线收盘后执行以下流程:

  1. regime 判定 → 决定当前可用的入场方式
  2. 结构识别 → 是否处在反转结构、是否有信号K、是否有被套K
  3. 生成信号 → 进场价、止损、止盈
  4. 风控过滤 → 仓位、最大持仓数、当日亏损上限
  5. 执行下单 → 限价/市价/止损单

四、风险管理

  • 仓位:单笔风险 = 账户权益 × risk_per_trade(默认 0.5%),按 stop 距离反推手数
  • 每日最大亏损:连亏 3 笔或日亏损 ≥ 3% 立即停止当日交易(对应 PDF "停止交易、远离电脑")
  • 强制 R:R:突破单 ≥ 1:1.5,限价反转 ≥ 1:1,市价单 ≥ 1:2
  • 持仓时间限制:scalp 单笔持仓 ≤ 30 根 K 线,超时强平
  • 反向信号优先:出现明确反向信号K 时优先于止盈/止损平仓

五、目录结构

owen-quant/
├── README.md              # 本文档
├── requirements.txt       # 依赖
├── config.py              # 所有参数集中管理
├── data_loader.py         # 通过 ccxt 拉取 BTC K 线
├── indicators.py          # 趋势K、信号K、ATR、ADX、Donchian
├── structures.py          # 反转结构与被套K 识别
├── regime.py              # 市场状态判定
├── signals.py             # 5 种入场信号生成器
├── strategy.py            # 策略主类(信号 → 订单)
├── backtest.py            # 向量化回测引擎
├── main.py                # 入口:拉数据 → 回测 → 报告
└── .gitignore

六、使用方法

# 安装依赖
pip install -r requirements.txt

# 拉取 BTC 5m K 线并回测
python main.py --symbol BTC/USDT --timeframe 5m --days 30

# 自定义参数
python main.py --symbol BTC/USDT --timeframe 1m --days 7 \
    --risk 0.005 --enable-trend --enable-range --enable-limit

七、说明与局限

  1. 本策略不构成投资建议。剥头皮策略对滑点、手续费、撮合速度极度敏感,回测正收益不等于实盘正收益。
  2. 手续费假设:Binance USDT 永续 taker 0.04% / maker 0.02%,需根据 VIP 等级调整。
  3. 滑点假设:每笔 0.02%。实盘中行情快速移动时可能更高。
  4. 数据频率:默认 5m,1m 噪声大但样本多,建议至少 2 周以上数据。
  5. PA 量化必有失真:原文依赖交易员对"结构"的主观识别,本实现使用规则化阈值,会过滤掉部分人眼可见的机会,也会产生人眼不会下的单。参数调优是核心工作。
  6. 未实现:手动画线的关键位、多时间框架共振、订单簿/盘口数据。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages