📑 查看全课大纲(第 49 / 59 节)
- 1.量化投资必备基础知识
- 2.趋势型策略及模型原理
- 3.均值回复型策略及模型原理
- 4.配对交易策略及模型原理
- 5.量化策略研发流程与基本技能
- 6.常用的量化平台概述及如何选择
- 7.如何量化一个主观策略思路
- 8.常用技术指标及指标计算过程
- 9.如何编写指标代码
- 10.指标的物理意义
- 11.技术指标的应用技巧
- 12.更多的交易决策
- 13.编写程序去量化一个趋势型技术指标
- 14.编写趋势型技术指标的性能评价
- 15.策略对交易成本和持仓周期的影响
- 16.股票池策略的原理及基本框架
- 17.基于多因子分析的股票池设计与实现
- 18.股票池的性能评估
- 19.使用定制化财务因子构建股票池
- 20.趋势型策略原理及股票池机制的设计
- 21.趋势型择时信号的设计方法与编程实现
- 22.趋势型策略的回测与性能评估
- 23.优化趋势型策略的思路及方法
- 24.量化体系中的风险控制思想
- 25.风险的度量-波动率
- 26.常用的风险控制方法
- 27.实现止盈止损模块以提高策略性能
- 28.策略性能的评估与优化
- 29.探讨波动率与风险的关系
- 30.量化策略中的经典资金管理模型
- 31.用python编程实现资金管理模块
- 32.构建一个完善的量化交易策略
- 33.趋势型量化策略必备的期货知识
- 34.期货量化工具介绍
- 35.商品期货趋势型策略原理
- 36.用TB编写商品期货趋势型策略(上)
- 37.用TB编写商品期货趋势型策略(下)
- 38.分析优化商品期货趋势型策略的方法思路
- 39.期货交易策略的注意事项
- 40.均值回复型策略的原理
- 41.A股市场有没有稳定的均值回复效应?
- 42.编写一个均值回复型股票量化策略
- 43.编写多空组合策略进行策略改进
- 44.在策略中实现头寸管理进行策略优化
- 45.套利策略原理及常见套利类型
- 46.用MC开发一个跨品种套利交易策略(上)
- 47.用MC开发一个跨品种套利交易策略(下)
- 48.统计套利之股票配对交易策略
- 49.实盘中的细节问题:加减仓
- 50.关于高频交易
- 51.如何评价实盘量化策略的性能
- 52.量化系统的工作过程及研发流程
- 53.运气or实力
- 54.量化实盘交易需要满足什么条件
- 55.未来函数的坑
- 56.实盘数据接口异常的自动报警
- 57.交易系统的压力测试
- 58.自动运行的交易策略,什么时候需要人工干预
- 59.预案准备和实盘心理建设
实盘中的细节问题:加减仓
约 7 分钟
📺 正在播放小象官方高清录播(支持倍速与清晰度调节)
实盘中的细节问题:加减仓
小象实战讲义 · 进阶量化交易实战:迭代式的量化策略研发 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
在量化交易的物理实盘中,加减仓绝不是简单修改下单股数,而是涉及流动性冲击、滑点摩擦、持仓均价变动以及风险敞口再平衡的复杂工程。本节深入剖析金字塔加减仓、ATR 动态波幅仓位调节以及分批冰山报单算法的实战细节。
💡 核心导读
- 实盘加减仓三大核心工程原则:
- 顺势浮盈加仓(Pyramid Adding):仅在已有仓位产生足够安全垫(如浮盈 > 1.5 ATR)时才允许追加头寸;
- 逆势减仓与动态止损线抬升:每次减仓必须同步上移剩余仓位的止损线,确保锁定已实现利润;
- 算法拆单防冲击(Iceberg / TWAP):对于大额加减仓指令,通过时间或成交量加权拆解,避免瞬间击穿盘口深度。
┌─────────────────────────────────────────────────────────────┐
│ 实盘加减仓决策与执行拓扑图 │
└──────────────────────────────┬──────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
│ 浮盈加仓条件触发 │ │ 算法拆单执行 (Iceberg) │ │ 止损线动态同步抬升 │
├─────────────────────────┤ ├─────────────────────────┤ ├─────────────────────────┤
│ • 浮盈 > 1.5 * ATR │──►│ • 单笔不超过盘口深度 10%│──►│ • StopLine = NewEntry-2ATR│
│ • 总持仓未达上限 (4Unit)│ │ • 随机间隔 1~3 秒分批报单│ │ • 保护全部已累积利润 │
└─────────────────────────┘ └─────────────────────────┘ └─────────────────────────┘一、动态加减仓与持仓均价重构数学模型
设初始持仓量为 ,成本为 ;第 次加仓量为 ,加仓价格为 。加仓后的综合持仓均价 与动态止损线为:
k = \frac{\sum{i=1}^k Q_i P_i}{\sum_{i=1}^k Q_i}, \quad \text{StopLine}_k = P_k - 2.0 \times ATR_k
import pandas as pd
import numpy as np
class RealPositionManager:
"""
实盘多批次动态加减仓与均价管理器
"""
def __init__(self, max_units: int = 4):
self.max_units = max_units
self.units = []
def add_position(self, price: float, volume: int, atr: float) -> dict:
if len(self.units) >= self.max_units:
return {'status': 'REJECTED_MAX_CAPACITY', 'avg_price': self.get_avg_price()}
self.units.append({'price': price, 'volume': volume, 'atr': atr})
stop_line = price - 2.0 * atr
return {'status': 'ADDED', 'avg_price': self.get_avg_price(), 'total_volume': self.get_total_volume(), 'stop_line': stop_line}
def get_total_volume(self) -> int:
return sum(u['volume'] for u in self.units)
def get_avg_price(self) -> float:
tot_vol = self.get_total_volume()
if tot_vol == 0:
return 0.0
return sum(u['price'] * u['volume'] for u in self.units) / tot_vol二、大单冰山算法拆解与微观报单
大额加减仓指令必须拆分为小额子订单,避免对订单簿造成瞬时冲击。
def slice_iceberg_order(total_shares: int, max_slice: int = 200) -> list:
"""
冰山算法子单切片
"""
slices = []
rem = total_shares
while rem > 0:
sz = min(rem, max_slice)
slices.append(sz)
rem -= sz
return slices📝 动手练一练
编写 Python 测试脚本,模拟实盘连续 3 次浮盈加仓并计算均价与止损线演变:
import pandas as pd
import numpy as np
def run_scaling_position_test():
pm = RealPositionManager(max_units=4)
atr = 5.0
r1 = pm.add_position(price=100.0, volume=100, atr=atr)
r2 = pm.add_position(price=110.0, volume=100, atr=atr)
r3 = pm.add_position(price=120.0, volume=100, atr=atr)
slices = slice_iceberg_order(pm.get_total_volume(), max_slice=100)
print("================ 实盘加减仓细节与头寸管理测试 ================")
print(f"累计加仓批数: {len(pm.units)} 批 | 总持仓股数: {pm.get_total_volume()} 股")
print(f"综合持仓均价: {pm.get_avg_price():.2f} 元 (初始成本 100.00 元)")
print(f"最新统一止损: {r3['stop_line']:.2f} 元 (已锁定高于初始成本浮盈)")
print(f"冰山平仓拆单: {len(slices)} 笔子订单")
assert pm.get_total_volume() == 300, "持仓股数计算错误!"
assert r3['stop_line'] > 100.0, "动态止损未抬升至成本线之上!"
print("✅ 实盘加减仓机制与均价动态管理验证 PASS")
print("============================================================")
if __name__ == '__main__':
run_scaling_position_test()运行结果输出:
================ 实盘加减仓细节与头寸管理测试 ================
累计加仓批数: 3 批 | 总持仓股数: 300 股
综合持仓均价: 110.00 元 (初始成本 100.00 元)
最新统一止损: 110.00 元 (已锁定高于初始成本浮盈)
冰山平仓拆单: 3 笔子订单
✅ 实盘加减仓机制与均价动态管理验证 PASS
============================================================本章小结
- 坚持顺势浮盈加仓:只在已有仓位产生足够浮盈安全垫时加仓,严禁逆势摊平亏损。
- 止损线同步抬升锁定收益:随着加仓批次增加,整体止损线必须同步上移至成本线甚至浮盈区域。
- 运用算法拆单减少冲击:大额调仓指令通过冰山或 TWAP 拆单,保护盘口深度与成交均价。
📋 行动清单 (Action Checklist)
- 运行加减仓测试脚本,核查不同批次加仓对持仓均价的敏感度;
- 编写阶梯式分批止盈减仓与挂单撤单逻辑;
- 预习下一节,深入探究高频交易的物理机制与生态位格局。
— 小象教研组
🎁 免费学习资源
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问