量化交易 - 网格交易策略实现与原理解析

📈 网格交易策略实现与原理解析

🧠 什么是网格交易策略?

网格交易(Grid Trading)是一种经典的量化交易策略,其核心思想是在价格的不同区间(“网格”)中设置买入和卖出操作,通过不断高抛低吸,从波动中获利,而不是预测市场的方向。


⚙️ 策略原理

✅ 核心逻辑

  1. 构建网格价格区间:

    • 从某个基准价格开始,向上和向下按固定百分比(例如每 ±3%)构建多个价格“格子”;
    • 每个格子代表一个买入或卖出信号点。
  2. 初始建仓:

    • 策略启动时不一定立刻交易;
    • 会等待市场价格进入设定网格后再进行首次交易。
  3. 低买高卖:

    • 若价格下跌到某个“买入格”,用部分资金买入;
    • 若价格上涨到某个“卖出格”,卖出部分持仓。
  4. 每个格子交易固定金额(或仓位比例):

    • 如:每次用总资金的 20% 买入或卖出。
  5. 每次只交易一格,避免频繁操作


💡 策略适用场景

条件是否适用原因说明
横盘震荡行情✅ 非常适合多次触发买卖机会
明确单边上涨/下跌❌ 不适合容易持续买在跌势中,或卖在涨势中
高频率波动品种(如ETF)✅ 较适合高频小波动可积累收益
黑天鹅极端行情⚠️ 风险较大无趋势判断和止损保护时可能大幅亏损

📋 策略参数设置

g.grid_interval = 0.03  # 网格间距:3%
g.grid_num = 5          # 上下各5格,总10层
g.position_ratio = 0.2  # 每个格子投入 20% 的初始资金
  • 网格价格通过以下方式生成:
g.buy_grid = [base_price * (1 - 3% * i) for i in 1~5]
g.sell_grid = [base_price * (1 + 3% * i) for i in 1~5]
  • 例如:当前价为 100 元,则买入网格为:
    97、94、91、88、85 元;卖出网格为 103、106、109、112、115 元

💻 策略代码(基于聚宽平台)

# 导入函数库
from jqdata import *# 初始化函数,设定基准等等
def initialize(context):# 设定沪深300作为基准set_benchmark('000300.XSHG')# 开启动态复权模式(真实价格)set_option('use_real_price', True)# 输出内容到日志 log.info()log.info('初始函数开始运行且全局只运行一次')g.security = '000300.XSHG'# 设置网格参数g.grid_interval = 0.03  # 网格间距:3%g.grid_num = 5         # 网格数量:中间上下各5层g.base_price = None     # 后续初始化g.position_ratio = 0.2  # 每格仓位变动比例# 是否已初始化网格g.inited = False### 股票相关设定 #### 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')run_daily(market_open, time='open', reference_security='000300.XSHG')## 开盘时运行函数
def market_open(context):price = get_current_data()[g.security].last_price# 初始化网格价格和初始持仓if not g.inited:g.base_price = priceg.buy_grid = [g.base_price * (1 - g.grid_interval * i) for i in range(1, g.grid_num + 1)]g.sell_grid = [g.base_price * (1 + g.grid_interval * i) for i in range(1, g.grid_num + 1)]g.init_cash = context.portfolio.available_cashg.position_value_per_grid = g.init_cash * g.position_ratiolog.info(f"初始化完成,当前价格:{price}")g.inited = Truereturncurrent_position = context.portfolio.positions[g.security].valueavailable_cash = context.portfolio.available_cash# 买入逻辑:当前价格低于某个买入网格且有资金。。。# 卖出逻辑:当前价格高于某个卖出网格且有仓位。。。详情见聚宽【搜索 “芒果量化”】 https://www.joinquant.com/view/community/detail/fc1595a15fabbfea7bd85d033ba3dbbe

📊 策略优缺点分析

✅ 优点:

  • 不依赖市场预测,策略稳定;
  • 自动化、纪律性强,适合程序化交易;
  • 在震荡行情中能频繁盈利;

❌ 缺点:

  • 无趋势识别能力,单边市可能持续亏损;
  • 无止损机制,容易“越跌越买”;
  • 需要较大资金以布置多个网格层级;

🧩 可扩展方向

扩展项说明
动态调整网格宽度根据波动率自动增减间隔
加入均线趋势过滤器避免在明显单边市中开仓
多标的轮动交易对多个ETF或股票运行并分配资金
止盈止损策略保障大波动时及时锁定收益或限制亏损
仓位自适应跟随账户收益动态调整资金使用比例

🧠 总结

网格交易是一种简单而实用的自动化量化策略,尤其适合震荡行情中获得稳定收益。然而它本身对趋势变化并不敏感,因此建议在使用过程中配合趋势判断机制或止损机制进行风控优化。

参考:joinQuant 芒果量化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端npm的核心作用与使用详解

一、npm是什么? npm(Node Package Manager) 是 Node.js 的默认包管理工具,也是全球最大的开源代码库生态系统。虽然它最初是为 Node.js 后端服务设计的,但如今在前端开发中已成为不可或缺的基础设施。通过npm,开发者可以轻松安装、管理和共享代码模块。 特性: 依赖管理…

Vue3学习(组合式API——生命周期函数基础)

目录 一、Vue3组合式API中的生命周期函数。 &#xff08;1&#xff09;各阶段生命周期涉及函数简单介绍。 <1>创建挂载阶段的生命周期函数。 <2>更新阶段的生命周期函数。 <3>卸载阶段的生命周期函数。 <4>错误处理的生命周期函数。 &#xff08;2&…

道通EVO MAX系列无人机-支持二次开发

道通EVO MAX系列无人机-支持二次开发 EVO Max 系列采用Autel Autonomy自主飞行技术&#xff0c;实现复杂环境下的全局路径规划、3D场景重建、自主绕障和返航&#xff1b;高精度视觉导航能力&#xff0c;使其在信号干扰强、信号遮挡、信号弱等复杂环境下&#xff0c;依然获得高精…

网张实验操作-防火墙+NAT

实验目的 了解防火墙&#xff08;ENSP中的USG5500&#xff09;域间转发策略配置、NAT&#xff08;与路由器NAT配置命令不同&#xff09;配置。 网络拓扑 两个防火墙连接分别连接一个内网&#xff0c;中间通过路由器连接。配置NAT之后&#xff0c;内网PC可以ping公网&#xf…

FPGA: UltraScale+ bitslip实现(方案+代码)

收获 一晃五年~ 五年前那个夏夜&#xff0c;我对着泛蓝的屏幕敲下《给十年后的自己》&#xff0c;在2020年的疫情迷雾中编织着对未来的想象。此刻回望&#xff0c;第四届集创赛的参赛编号仍清晰如昨&#xff0c;而那个在家熬夜焊电路板的"不眠者"&#xff0c;现在…

机器学习笔记2

5 TfidfVectorizer TF-IDF文本特征词的重要程度特征提取 (1) 算法 词频(Term Frequency, TF), 表示一个词在当前篇文章中的重要性 逆文档频率(Inverse Document Frequency, IDF), 反映了词在整个文档集合中的稀有程度 (2) API sklearn.feature_extraction.text.TfidfVector…

UV 快速入门和使用案例

UV 快速入门和使用案例 作者&#xff1a;王珂 邮箱&#xff1a;49186456qq.com 文章目录 UV 快速入门和使用案例简介一、安装1.1 安装包安装1.2 从 PyPI 安装二、使用2.1 创建项目2.2 包管理2.3 工具2.4 Python 版本 简介 官网&#xff1a; 项目&#xff1a; https://githu…

质控脚本来喽

好久不更新&#xff0c;上个硬货。脚本需提前准备宿主和rrna的bowtie2索引文件&#xff0c;原始数据的命名方式为{sample}_raw_1/2.fq.gz&#xff0c;保存有原始数据路径的文件&#xff0c;保存样品列表的文件。 最后打个广告&#xff0c;欢迎畜牧学方向的研究生报考兰州大学。…

Linux Bash | Capture Output / Recall

注&#xff1a;本文为 “Linux Bash | Capture Output / Recall” 相关文章合辑。 英文引文&#xff0c;机翻未校。 中文引文&#xff0c;略作重排。 Automatically Capture Output of the Last Command Into a Variable Using Bash 使用 Bash自动将最后一个命令的输出捕获到…

编程题 03-树2 List Leaves【PAT】

文章目录 题目输入格式输出格式输入样例输出样例 题解解题思路完整代码 编程练习题目集目录 题目 Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. 输入格式 Each input file contains one test case. For each case, …

QT设置MySQL驱动

QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 第一步&#xff1a;下载MySQL https://dev.mysql.com/downloads/mysql/ 解压缩下载的安装包&#xff0c;其目录结构如下所示&#xff1a; 第二…

ABP User Interface-Angular UI中文详解

本系列文章主要用于对ABP User Interface-Angular UI &#xff08;Angular UI | ABP.IO Documentation&#xff09;不分的中文讲解以及记录自己在学习过程中发现的容易出错的地方。 1. 开发Development 2. 核心功能Core Functions 3. 通用组件Utilities 4. 自定义Customiza…

常用负载均衡技术有哪些?不同网络层面上的网络负载均衡技术

前言 负载均衡是一种策略&#xff0c;它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务&#xff0c;从而以较低成本消除网络瓶颈&#xff0c;提高网络的灵活性和可靠性。 在系统管理员发现网络性能不好时&#xff0c;可以通过网络负载均衡来分配资源&#xff0c;以…

ARMV8 RK3399 u-boot TPL启动流程分析 --crt0.S

上一篇介绍到start.S 最后一个指令是跳转到_main, 接下来分析 __main 都做了什么 arch/arm/lib/crt0.S __main 注释写的很详细&#xff0c;主要分为5步 1. 准备board_init_f的运行环境 2. 跳转到board_init_f 3. 设置broad_init_f 申请的stack 和 GD 4. 完整u-boot 执行re…

RabbitMQ--进阶篇

RabbitMQ 客户端整合Spring Boot 添加相关的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 编写配置文件&#xff0c;配置RabbitMQ的服务信息 spri…

Redis--基础知识点--27--redis缓存分类树

在 Redis 中存储分类树&#xff0c;通常需要选择合适的数据结构来表现层级关系。以下是使用 字符串&#xff08;String&#xff09; 和 哈希&#xff08;Hash&#xff09; 两种常见方案的举例说明&#xff0c;结合电商分类场景&#xff08;如 电子产品 > 手机 > 智能手机…

【C++】汇编角度分析栈攻击

栈攻击 介绍原理示例代码汇编分析 介绍原理 核心原理是通过 缓冲区溢出&#xff08;Buffer Overflow&#xff09; 等漏洞&#xff0c;覆盖栈上的关键数据&#xff08;如返回地址、函数指针&#xff09;&#xff0c;从而改变程序执行流程&#xff1b; 在 C 中&#xff0c;每个…

访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时

华为云轻量应用服务器&#xff08;Ubuntu 系统&#xff09; 遇到的问题是&#xff1a; &#x1f512; 访问 Docker 官方镜像源&#xff08;包括代理&#xff09;全部被“重置连接”或超时了&#xff0c;说明你这台服务器的出境网络对这些国外域名限制很严格&#xff0c;常见于华…

Java语言

本文来源 &#xff1a; 腾讯元宝 Java是一种面向对象、跨平台的高级编程语言&#xff0c;最初由Sun Microsystems&#xff08;现为Oracle公司所有&#xff09;于1995年推出&#xff0c;广泛应用于Web开发、移动应用、大数据处理、嵌入式系统等领域。以下是其核心特点和应用概述…

无偿帮写毕业论文(看不懂的可以私信博主)

以下教程教你如何利用相关网站和AI免费帮你写一个毕业论文。毕竟毕业论文只要过就行&#xff0c;脱产学习这么多年&#xff0c;终于熬出头了&#xff0c;完成毕设后有空就去多看看亲人好友&#xff0c;祝好&#xff01; 一、找一个论文模板 废话不多说&#xff0c;先上干货Ov…