📑 查看全课大纲(第 36 / 38 节)
- 1.课程介绍与学习目标
- 2.量化交易的发展
- 3.主观投资与量化投资的关系
- 4.认识一个量化策略(1)
- 5.认识一个量化策略(2)
- 6.理工生做量化的优势
- 7.量化交易系统的基本架构
- 8.必要的交易基础知识及参考资料
- 9.上节课思考题及本节课内容介绍
- 10.技术指标简介
- 11.基于MACD的交易信号开发(1)
- 12.基于MACD的交易信号开发(2)
- 13.基于RSI的交易信号开发
- 14.基于BOLL的交易信号开发
- 15.基于分形的交易信号开发
- 16.总结及下节课预告
- 17.开发环境安装
- 18.获取指数和个股历史行情数据
- 19.修复行情数据中的问题
- 20.抓取财报数据、数据定时更新
- 21.实现低PE股票池(1)
- 22.实现低PE股票池(2)
- 23.实现低PE策略的回测(1)
- 24.实现低PE策略的回测(2)
- 25.风险控制综述
- 26.风险控制中的止盈止损
- 27.仓位管理的工程实现
- 28.完整策略介绍-基础策略
- 29.策略的分步优化
- 30.策略评价指标(1)
- 31.策略评价指标(2)
- 32.如何评价策略
- 33.如何优化策略
- 34.tick数据的意义
- 35.tick数据的介绍及使用
- 36.Hans123策略
- 37.经典买入三法策略
- 38.量化系统的完整研发和系统搭建
Hans123策略
约 16 分钟
📺 正在播放小象官方高清录播(支持倍速与清晰度调节)
量化策略的完整研发与工业级系统搭建
小象实战讲义 · 初阶量化交易:策略编写及系统搭建 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
在完成了策略算法模型与经典实战原型的学习后,量化工程师必须建立对专业级量化交易系统(Production Quant System)全生命周期工程架构的宏观认知。在真实量化对冲基金中,一个策略从最初的数学灵感闪现,到最终在服务器上全自动执行真金白银的下单,需要跨越学术假设、因子特征加工、事件驱动撮合回测、仿真模拟盘(Paper Trading)与实盘极速柜台网关对接等一系列高标准的工程验证环节。
本讲系统介绍经典的 Hans123 日内开盘区间突破策略原型与状态转移机设计;全面梳理工业级量化交易系统的五层标准工程架构(数据层、特征层、策略层、风控层、网关层);并给出从研发到实盘上线的全流程标准化规范。
💡 核心导读
- 经典日内突破策略原型:Hans123 策略模型:
- 设计初衷:利用开盘阶段(09:30-10:00)机构资金进场形成的能量聚集区间,捕捉日内单边主升浪/主跌浪,尾盘全额平仓绝不隔夜,彻底免疫夜间外盘黑天鹅跳空风险;
- 适用品种(硬性前提):本策略内含「当日开仓当日平仓」与「卖开做空」两个动作,仅适用于 T+0 且可双向交易的品种(商品期货、股指期货、期权、可转债等);A 股股票为 T+1 制度且无卖空机制(融券门槛高、券源稀缺),当日买入无法当日卖出,Hans123 原始形态在 A 股股票上不可直接执行——这也是工业级网关层优先对接 CTP 期货柜台的原因;
- 交易规则:
- 通道构建:记录开盘前 30 分钟形成的最高价 与最低价 ;
- 突破开仓:30 分钟后,价格向上突破 立即买开做多,向下击穿 立即卖开做空;
- 尾盘平仓:每日收盘前 5 分钟(14:55)无条件清空全部持仓。
- 工业级量化交易系统的五层标准分层架构:
- 数据基础设施层(Data Infrastructure):全市场 Level 1/Level 2 Tick、分钟/日 K 线、财务报表与宏观舆情数据的持久化存储(NoSQL / ClickHouse / InfluxDB);
- 特征与因子计算层(Feature & Factor Layer):高频盘口因子与低频截面因子的实时/离线流式计算,执行 3-Sigma 去极值、标准化与行业中性化;
- 策略与信号决策层(Strategy & Signal Layer):动态股票池筛选、择时指标状态机、多策略组合决策;
- 风控与资金管理层(Risk & Portfolio Management):账户级总杠杆控制、单标的敞口上限、CPR 百分比风险模型与 ATR 动态跟踪止损;
- 执行撮合与交易网关层(Execution & Gateway Layer):CTP 期货极速柜台、券商 C++ API、FIX 协议接口,负责智能算法拆单(TWAP/VWAP)与订单状态机维护。
┌─────────────────────────────────────────────────────────────┐
│ 工业级量化交易系统五层工程架构 │
└──────────────────────────────┬──────────────────────────────┘
│
┌───────────────┬─────────────┼─────────────┬───────────────┐
▼ ▼ ▼ ▼ ▼
┌─────────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌─────────────┐
│ 1. 数据层 │ │ 2. 特征层 │ │ 3. 策略层 │ │ 4. 风控层 │ │ 5. 网关层 │
├─────────────┤ ├───────────┤ ├───────────┤ ├───────────┤ ├─────────────┤
│ • Tick/K线 │ │ • 多因子库│ │ • 选股池 │ │ • CPR 头寸│ │ • CTP/FIX │
│ • 财报/快照 │ │ • 中性化 │ │ • 择时信号│ │ • ATR 止损│ │ • 算法拆单 │
│ • 时序数据库│ │ • 正交化 │ │ • Hans123 │ │ • 敞口限制│ │ • 订单状态机│
└─────────────┘ └───────────┘ └───────────┘ └───────────┘ └─────────────┘一、从回测到实盘的四阶推进阶梯
① 历史回测 (Backtesting) ──► ② 样本外盲测 (OOS / WFO) ──► ③ 模拟盘仿真 (Paper Trading) ──► ④ 极小实盘真金验证 (Live Trading)- 模拟盘仿真(1~3 个月):核验策略在实时行情节拍下的网络延迟、滑点表现、接口断线重连与涨跌停撮合逻辑;
- 极小实盘验证:先用数万元资金小步慢跑,观察真实盘口冲击与心理压力,逐步加码。
二、Hans123 策略状态机设计
在日内策略实现中,必须维护一个清晰的有限状态机(FSM):
STATUS_WAIT(09:30 前等待开盘);STATUS_BUILDING_CHANNEL(09:30-10:00 收集极值,禁止交易);STATUS_MONITORING(10:00-14:55 监控突破开仓);STATUS_EOD_CLOSE(14:55 触发强平并锁定空仓)。
⚠️ 品种适配红线:上述状态机默认标的支持 T+0 双向交易(期货/期权/可转债)。若强行套用到 A 股股票,「当日买入 14:55 强平」在 T+1 制度下根本无法成交,「跌破下轨开空」亦无对应机制;迁移到 A 股必须改造为「隔日突破跟踪」或借助底仓做 T 的变体。
📝 动手练一练
下面我们用 Python 编写一段 Hans123 日内开盘区间突破策略模拟引擎,输入 1 分钟价格序列,自动提取前 30 分钟上下轨并模拟盘中突破建仓与尾盘平仓的全流程:
import pandas as pd
import numpy as np
def run_hans123_breakout(minute_prices):
"""
Hans123 日内区间突破策略引擎:
1. 统计开盘前 30 根 1 分钟 Bar 的最高价 High_30 与 最低价 Low_30 构成通道
2. 30 分钟后: 突破 High_30 开多 (Buy), 跌破 Low_30 开空 (Short)
3. 尾盘 (最后 1 根 Bar) 无条件平仓 (Close)
"""
df = minute_prices.copy()
# 提取前 30 分钟通道
channel_high = df['high'].iloc[:30].max()
channel_low = df['low'].iloc[:30].min()
position = 0 # 1 为多头, -1 为空头, 0 为空仓
trade_logs = []
for idx, (dt, row) in enumerate(df.iterrows()):
action = "WAIT"
if idx < 30:
action = "BUILDING_CHANNEL"
elif idx == len(df) - 1:
if position != 0:
action = "EOD_CLOSE_ALL (尾盘平仓)"
position = 0
else:
if position == 0:
if row['close'] > channel_high:
action = "BUY_LONG (突破上轨开多)"
position = 1
elif row['close'] < channel_low:
action = "SELL_SHORT (跌破下轨开空)"
position = -1
trade_logs.append({
'Time': dt.strftime('%H:%M'),
'Price': row['close'],
'Channel_High': channel_high,
'Channel_Low': channel_low,
'Position': position,
'Action': action
})
return pd.DataFrame(trade_logs), channel_high, channel_low
def test_hans123_run():
# 模拟 09:30 到 10:45 共 75 根 1 分钟 Bar
dates = pd.date_range("2023-05-10 09:30", periods=75, freq="1min")
np.random.seed(42)
# 前 30 分钟在 10.0~10.5 震荡, 随后在 10:05 突破 10.5 冲至 11.2
p_base = np.concatenate([
np.random.uniform(10.0, 10.5, 30),
np.linspace(10.4, 11.2, 30),
np.linspace(11.2, 11.0, 15)
])
df = pd.DataFrame({
'open': p_base - 0.02,
'high': p_base + 0.05,
'low': p_base - 0.05,
'close': p_base
}, index=dates)
res, c_high, c_low = run_hans123_breakout(df)
print("================ Hans123 日内开盘区间突破策略 ================")
print(f"前 30 分钟形态通道: 上轨 High={c_high:.2f} 元 | 下轨 Low={c_low:.2f} 元")
actions = res[res['Action'].str.contains('BUY|SELL|CLOSE')]
print("------------------------------------------------------------")
print(actions[['Time', 'Price', 'Channel_High', 'Channel_Low', 'Position', 'Action']])
print("------------------------------------------------------------")
print("量化精髓: Hans123 规避隔夜跳空风险,专注日内形态通道突破爆发波段!")
print("============================================================")
if __name__ == "__main__":
test_hans123_run()运行结果输出:
================ Hans123 日内开盘区间突破策略 ================
前 30 分钟形态通道: 上轨 High=10.53 元 | 下轨 Low=9.96 元
------------------------------------------------------------
Time Price Channel_High Channel_Low Position Action
35 10:05 10.537931 10.534955 9.960292 1 BUY_LONG (突破上轨开多)
74 10:44 11.000000 10.534955 9.960292 0 EOD_CLOSE_ALL (尾盘平仓)
------------------------------------------------------------
量化精髓: Hans123 规避隔夜跳空风险,专注日内形态通道突破爆发波段!
============================================================本章小结
- 掌握 Hans123 日内突破精髓:以开盘 30 分钟极值为上下轨,突破顺势开仓,尾盘无条件平仓规避隔夜黑天鹅;牢记其仅适用于期货等 T+0 双向品种,A 股股票 T+1 制度下不可直接执行。
- 构建五层工业级架构:打通数据层、特征层、策略层、风控层与柜台执行层的标准化工程解耦。
- 坚持四阶上线原则:从历史回测、样本外盲测、模拟盘仿真到小资金实盘,步步为营杜绝盲目冒险。
📋 行动清单 (Action Checklist)
- 运行本讲 Hans123 模拟代码,观察 10:05 突破上轨与 10:44 尾盘平仓的完整执行轨迹;
- 绘制并检查自己交易系统的五层架构设计图,确认各层接口边界清晰;
- 预习下一讲,深入探讨人工智能与机器学习在现代量化策略优化中的角色与边界。
— 小象教研组
配套学习资源与课件
🎁 免费学习资源
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问