学习

⌂学习首页◈学习路线

练习

⌁行情练习◷回放↻复习

我的学习

▥统计☆收藏⌕搜索✦AI

学习原则

先理解风险,再练习决策。

Trade Buty免费 · 中立
👤 登录
📚学习路线📈行情⏮回放✎复习🔍搜索🤖AI👤 登录
Trade Buty

面向全球中文用户的免费中立交易教育平台。分级课程(学)× 真实行情图表与回放(练)。

⚠️ 风险提示:本站全部内容仅用于学习与研究,不构成任何投资建议。市场有风险,投资需谨慎。

导航

学习路线行情回放搜索AI统计隐私政策内容来源 kline-buty反馈建议
© 2026 sun1090 · MIT License内容来源 kline-buty

本页目录

  • 策略总览
  • 一、双均线趋势(经典入门)
  • 二、布林带均值回归(震荡)
  • 三、RSI 超买超卖(震荡变体)
  • 四、网格交易(加密现货自动化)
  • 五、统计套利雏形(配对交易)
  • 六、每个策略的「参数与边界」
  • 七、策略组合思维
  • 八、「策略是 20% 代码 80% 维护」的现实
  • 九、个人量化路线图

篇章进度

15 · 量化实战篇

前面的篇章教你怎么看懂市场、管好仓位,10-系统对接篇教软件团队怎么做交易系统。本篇把视角落在两者之间最朴素的位置——一个懂点代码的个人交易者,怎么从零开始把「数据 → 回测 → 策略 →(合规)自动化」这条完整链路真正跑通。

0/5 课0%

下一篇章 →

26 · 数据解读实战篇→

市场每天都在发布数据:CPI、非农、PMI、央行决议、财报、行业库存……但 90% 的人只看到了「利多利空」四个字,然后就急着下单。

学习路线/15 · 量化实战篇
课程单元 05/5 / 5 节

05 · 策略代码实战

五个从简单到进阶的完整策略示例,覆盖双均线、布林带、RSI、网格交易与统计套利雏形。

📖 约 7 分钟阅读
本页目录▾
  • 策略总览
  • 一、双均线趋势(经典入门)
  • 二、布林带均值回归(震荡)
  • 三、RSI 超买超卖(震荡变体)
  • 四、网格交易(加密现货自动化)
  • 五、统计套利雏形(配对交易)
  • 六、每个策略的「参数与边界」
  • 七、策略组合思维
  • 八、「策略是 20% 代码 80% 维护」的现实
  • 九、个人量化路线图

五个从简单到进阶的完整策略示例:双均线趋势、布林带均值回归、RSI 超买超卖、加密网格交易、统计**套利**雏形。每个都讲清核心逻辑、给代码骨架、标注适用市场与风险,最后聊参数边界、组合思维与个人路线图。

免责声明:本站全部内容仅用于学习与研究,不构成任何投资建议。市场有风险,投资需谨慎。


策略总览

#策略类型适用市场难度核心收益来源
①双均线趋势趋势跟踪期货、加密、主流股★抓住中长趋势,截断亏损
②布林带均值回归震荡反转股票、ETF、加密现货★★价格偏离后回归
③RSI 超买超卖震荡反转波动区间稳定的品种★★极端情绪回归
④网格交易区间震荡加密现货(最适合自动化)★★反复收割区间波动
⑤统计套利雏形配对/中性相关标的对(同板块股、主流币对)★★★价差偏离后收敛

一、双均线趋势(经典入门)

核心逻辑:快线(短均线)上穿慢线(长均线)做多,下穿平仓/做空。吃趋势、忍受震荡期磨损。

Python 片段(完整回测见 03-第一个回测,示例代码仅教学用,实盘风险自负):

python
import pandas as pd

def dual_ma_signal(df, fast=5, slow=20):
    df = df.copy()
    df["ma_fast"] = df["close"].rolling(fast).mean()
    df["ma_slow"] = df["close"].rolling(slow).mean()
    df["signal"] = (df["ma_fast"] > df["ma_slow"]).astype(int)
    df["position"] = df["signal"].shift(1)   # 次日生效,防未来函数
    return df
  • 适用市场:有明确趋势周期的市场(商品期货、主流加密、大盘股)。
  • 风险:震荡市连续打脸(假突破),回撤期长、体验差;胜率天然只有 30-40%,靠盈亏比取胜,拿不住就做不成。

二、布林带均值回归(震荡)

核心逻辑:价格跌破下轨认为超卖、买入;涨破上轨认为超买、卖出/做空;回归中轨是止盈目标。

Python 片段:

python
def boll_revert_signal(df, n=20, k=2.0):
    df = df.copy()
    df["mid"] = df["close"].rolling(n).mean()
    std = df["close"].rolling(n).std()
    df["upper"], df["lower"] = df["mid"] + k * std, df["mid"] - k * std
    df["signal"] = 0
    df.loc[df["close"] < df["lower"], "signal"] = 1    # 下轨买
    df.loc[df["close"] > df["upper"], "signal"] = -1   # 上轨卖
    return df
  • 适用市场:区间震荡的品种(波动稳定的股票、横盘的加密现货)。
  • 风险:单边行情里是接飞刀——价格持续跌破下轨时,均值回归会越买越套。必须配硬止损(如价格再偏离中轨 X% 即离场),并确认品种处于区间状态(可先检测历史波动率是否收敛)。

三、RSI 超买超卖(震荡变体)

核心逻辑:RSI(相对强弱指数)衡量涨跌动能比例,>70 超买、<30 超卖,反向交易。

Python 片段:

python
def rsi(close, n=14):
    diff = close.diff()
    up = diff.clip(lower=0).rolling(n).mean()
    down = (-diff.clip(upper=0)).rolling(n).mean()
    rs = up / down
    return 100 - 100 / (1 + rs)

def rsi_signal(df, over=70, under=30):
    df = df.copy()
    df["rsi"] = rsi(df["close"])
    df["signal"] = 0
    df.loc[df["rsi"] < under, "signal"] = 1      # 超卖买入
    df.loc[df["rsi"] > over, "signal"] = -1      # 超买卖出
    return df
  • 适用市场:与布林带类似,偏好震荡区间稳定的标的;加密高波动品种上需放大阈值(如 25/75)并小心「RSI 钝化」。
  • 风险:强趋势中 RSI 长期停留在超买区(牛市)或超卖区(熊市),反向做单会被趋势碾过。与策略②本质同类,别同时重仓两个同构的震荡策略。

四、网格交易(加密现货自动化)

核心逻辑:在价格区间内预设多个挂单价位,跌到某档买入、涨到某档卖出,反复收割震荡利润。天然适合程序化:全程挂单、无需预测方向。

下单循环思路(示例代码仅教学用,实盘风险自负):

python
import time
from binance.spot import Spot

GRID_LO, GRID_HI = 55000, 75000   # 网格区间(按行情重设)
GRID_STEP = 500                   # 网格间距
BASE_QTY = "0.01"                 # 每格数量(先校验最小下单量与步长)

def build_grid():
    """生成区间内所有网格价格"""
    prices = []
    p = GRID_LO
    while p <= GRID_HI:
        prices.append(round(p, 2))
        p += GRID_STEP
    return prices

def run_grid(client, symbol="BTCUSDT"):
    grid = build_grid()
    while True:
        # 1. 查询现有挂单,与理论网格比对,缺哪档补哪档
        open_orders = client.get_open_orders(symbol=symbol)
        price_set = {float(o["price"]) for o in open_orders}
        # 2. 理论网格中尚未挂单的价位 → 补挂限价单
        for price in grid:
            if price in price_set:
                continue
            client.new_order(symbol=symbol, side="BUY", type="LIMIT",
                             timeInForce="GTC", price=str(price),
                             quantity=BASE_QTY)
        # 3. 成交回报由 WebSocket/轮询捕获,触发「卖出该档」再挂回
        time.sleep(5)   # 限频内轮询间隔

if __name__ == "__main__":
    client = Spot(api_key=os.environ["BINANCE_API_KEY"],
                  api_secret=os.environ["BINANCE_API_SECRET"])
    run_grid(client)
  • 适用市场:加密现货(7×24 + 无涨跌停 + 免费 API)是网格的天堂;期货/带**资金费率**的合约别用现货思路硬套。
  • 风险:① 单边暴跌时网格全数买套、占用资金无限加大 → 必须设网格区间与资金上限;② 单边暴涨时只吃到一格就跑、踏空 → 设顶部清仓线;③ 网格是「区间震荡提取器」,区间破了策略就失效,要持续监测价格是否仍在区间内。

五、统计套利雏形(配对交易)

核心逻辑:找两个长期同向的标的(同板块股票、BTC 与主流币),价差偏离历史均值时做空高者、做多低者,价差回归后平仓,赚相对运动的钱(市场中性)。

📖 协整概念

配对的核心不是「价格相关」,而是「协整」——价差序列是否围绕稳定均值波动。可用 statsmodels 做协整检验(示例代码仅教学用):

python
import numpy as np
from statsmodels.tsa.stattools import coint

# a、b 为两个标的价格序列(需对齐)
def zscore(s):
    return (s - s.mean()) / s.std()

def pair_spread(a, b):
    s = a - b                                  # 简单价差(也可用回归残差)
    z = zscore(s)
    return z

# 协整检验:p 值 < 0.05 认为存在协整关系,可配对
_, pvalue, _ = coint(a, b)
print("协整 p 值:", pvalue)

# 交易规则:z > 1.5 做空价差(卖 a 买 b);z < -1.5 反向;|z| < 0.5 平仓
  • 适用市场:同板块/同主题股票对、强相关加密对(BTC/ETH)、ETF 与成分股。
  • 风险:① 价差关系会失效(基本面变化后不再收敛)——必须动态监控 zscore 的统计特征,失效就停;② 做空 A 股有门槛(融券),个人起步用加密现货对或仅做多腿模拟;③ 容量与配对数量受限,别过度加码。

六、每个策略的「参数与边界」

策略常用参数起点不适用行情失效特征
双均线fast=520, slow=2060长期横盘连续小亏、回撤长期贴着止损线
布林带n=20, k=2.0单边趋势止损频繁触发、亏损集中在趋势段
RSIn=14, 30/70强趋势(钝化)RSI 长期 70 以上/30 以下
网格区间取近期高低点突破区间的趋势价格冲出区间、资金被套比例超限
配对z 阈值 1.5/0.5相关性崩塌期价差持续不回归、协整 p 值显著升高

⚠️ 通用边界纪律

  • 任何策略的参数都应在**样本外**验证(见 03-第一个回测 第七节),参数灵敏度高 = 不可靠;
  • 为每个策略预写「停止条件」:回撤到 X% 停用、失效特征出现即复盘,而不是死扛;
  • 策略说明书(适用行情、失效特征、停止条件)与研究代码同等重要。

七、策略组合思维

单一策略的收益曲线都有「牛市不赚、熊市亏」的缺陷,组合的核心是**低相关**:

组合方式效果例子
多市场不同市场趋势/震荡周期错开加密趋势 + 商品趋势
多类型趋势与均值回归天然互补(一个在趋势期赚、一个在震荡期赚)双均线 + 布林带
多标的单一标的事件风险摊薄3-5 个主流币分别跑同一策略
  • 验证方式:把各策略的日收益序列画在一起,看相关性矩阵;两两相关性 > 0.7 的组合没有分散意义;
  • 组合后的总回撤小于最差单策略是目标——但注意:组合也不会让期望收益叠加,它是降低波动,不是放大收益。

💡 真正值钱的是检测、维护、迭代流程

写出策略代码只需要几天,让它长期活下去却需要持续的投入。真正值钱的是你围绕策略建立起来的检测、维护、迭代流程——也是个人量化长期做下去的核心能力。 一次回测的漂亮曲线是研究起点,不是资产。

八、「策略是 20% 代码 80% 维护」的现实

写出策略代码只需要几天,让它长期活下去却需要持续的投入:

维护项频率内容
数据修正不定期接口源变更、历史数据错误重拉,数据要版本化
接口变动随交易所更新Binance/OKX API 改字段、改限频,脚本要跟上
市场风格切换持续策略适用的市场环境会变,失效检测要一直跑
平台条款随时加密平台服务条款、地区限制变化
参数复审月度用滚动窗口重估参数是否仍在有效区间

💡 认知修正

一次回测的「漂亮曲线」是研究起点,不是资产。真正值钱的是你围绕策略建立起来的**检测、维护、迭代流程**——这也是「个人量化」长期做下去的核心能力。


九、个人量化路线图

text
第 1 周   跑通回测:工具链 + 取数 + 第一个双均线回测(本篇 01-03)
   ↓
第 1 个月 做出一致性策略:2-3 个策略完成样本外验证、实验留档
   ↓
第 3 个月 模拟盘:策略全流程跑模拟(或信号推送 + 记录),累计至少 100 笔信号
   ↓
小资金实盘:只放「亏光也不影响生活」的钱,跑 3 个月以上
   ↓
持续迭代:月度复盘 → 失效检测 → 新策略研究 → 仓位渐进

每个阶段都有明确的「通关条件」:模拟盘阶段「信号记录完整、执行无 bug」才允许进入小资金;小资金阶段「回撤可控、无重大操作事故」才允许加仓。跳阶段的人,最后都会在下一个阶段补交学费。


⚠️ 风险提示

本文五个策略均为教学示例:参数是起点不是答案,历史收益不代表未来表现,任何策略都可能失效并造成亏损。网格与配对交易在极端行情下风险会被快速放大(单边破区间、价差不回归);自动化执行策略时,限频、断线、接口变动同样会制造真实损失。请务必完成样本外验证、设置停止条件、以模拟盘与小资金长期验证后再考虑加仓。本文内容仅用于学习与研究,不构成任何投资建议;涉及实盘与合规的执行细节,以最新监管规定与各平台官方文档为准。

📝 量化实战篇 · 随堂测

3 道概念题 · 即时判分

📖 学完这篇,去看真盘

在真实行情图表里找找这篇内容提到的概念,看懂了再继续。

打开实时行情 →
🤖问 AI: 05 · 策略代码实战→

相关课程

  • →01 · 量化工具链
  • →02 · 数据获取实战
  • →03 · 第一个回测
  • →04 · 实盘自动化

下一篇章

26 · 数据解读实战篇

→