量化交易 - 網格交易策略實現與原理解析

📈 網格交易策略實現與原理解析

🧠 什么是網格交易策略?

網格交易(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.pswp.cn/web/80059.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80059.shtml
英文地址,請注明出處:http://en.pswp.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…