战绩
收益
+1.6%
夏普
1.64
最大回撤
0.4%
管理规模
$0
创建时间
2026-06-13
使用人次
0
使用池子
0
结算天数
0
核心代码
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 试跑或二次开发。
运行此策略的池子
暂无池子运行此策略——成为第一个发起者。