NovaMarket
← 全部策略

网格

Hyperliquid震荡市永续(可杠杆/做空)较低风险

区间等距网格,每跌一格加仓、每涨一格减仓

战绩

收益
+1.6%
夏普
1.64
最大回撤
0.4%
管理规模
$0
创建时间
2026-06-13
使用人次
0
使用池子
0
结算天数
0

适用市况

震荡市区间来回、无明确方向的行情
  • 价格围绕均值往返时低买高卖,吃区间波动
  • 单边趋势中逆势加仓,回撤风险大
不确定行情会怎么走?看看市场中性策略 →

回测(确定性模拟器)

参数: grid_pct / levels / unit

回测曲线为确定性模拟价格路径上的示例,非真实收益。

核心代码

GitHub 源码
"""网格(Grid trading)—— 区间等距加减仓。

思路:以起始价为参考,价格每下跌一个网格步长就加一格仓位、每回升一格就减一格,库存随下跌线性累积
(0..levels 格),在震荡区间内低买高卖。本 demo 为长仓网格;参数 grid_pct(格距%)、levels(格数)、
unit(每格数量)。适合区间震荡;单边下跌会满仓套牢,故设 levels 上限作为风控。
"""
from __future__ import annotations

from ..base import StrategyBase
from ..context import StrategyContext
from ..registry import register


@register("网格")
class Grid(StrategyBase):
    description = "区间等距网格:每跌一格加仓、每涨一格减仓(长仓)。"
    params = {"grid_pct": 0.01, "levels": 6, "unit": 1.0}

    def __init__(self, grid_pct: float = 0.01, levels: int = 6, unit: float = 1.0) -> None:
        self.grid_pct = float(grid_pct)
        self.levels = int(levels)
        self.unit = float(unit)
        self.ref: float | None = None

    async def on_start(self, ctx: StrategyContext) -> None:
        self.ref = await ctx.price(ctx.conn_symbol())

    async def on_tick(self, ctx: StrategyContext) -> None:
        sym = ctx.conn_symbol()
        px = await ctx.price(sym)
        if self.ref is None or self.ref == 0:
            self.ref = px
            return
        step = self.ref * self.grid_pct
        if step <= 0:
            return
        # how many grid steps below the reference (clamped to [0, levels])
        n = int(max(0, min(self.levels, (self.ref - px) // step + (1 if px < self.ref else 0))))
        await ctx.target(sym, n * self.unit, band=self.unit * 0.5)

完整 SDK 与全部策略以 MIT 协议开源,可直接回测、paper 试跑或二次开发。

运行此策略的池子

暂无池子运行此策略——成为第一个发起者。