NovaMarket
← 全部策略

动量

Hyperliquid趋势市永续(可杠杆/做空)较高风险

突破入场、移动止盈,跟随已确立趋势

战绩

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

适用市况

趋势市单边上涨或下跌、方向持续的行情
  • 行情有明确方向、突破后延续时表现最好
  • 反复震荡、假突破频繁时会被来回止损
不确定行情会怎么走?看看市场中性策略 →

回测(确定性模拟器)

参数: lookback / breakout / size

真实 Hyperliquid ETH 1m 历史快照(截至 2026-07-12)——非未来收益承诺。

核心代码

GitHub 源码
"""动量(Momentum)—— Donchian 通道突破 + 移动止损。

思路:价格突破近 lookback 期高点(再加 breakout 缓冲)说明趋势已确立,顺势入场;入场后记录最高价,
回撤超过 3×breakout 移动止损离场。源自海龟交易法则(Donchian channel breakout)这一最经典的开源
动量范式(各开源量化系统均有同型实现;此处为独立重写)。
参数:lookback(通道周期)、breakout(突破缓冲,比例)、size(目标数量)。
适用:单边趋势行情;震荡市会被假突破反复止损,靠移动止损限制单次亏损。
"""
from __future__ import annotations

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


@register("动量")
class Momentum(StrategyBase):
    description = "Donchian 通道突破入场、移动止损离场:跟随已确立趋势。"
    params = {"lookback": 40, "breakout": 0.01, "size": 5.0}

    def __init__(self, lookback: int = 40, breakout: float = 0.01, size: float = 5.0) -> None:
        self.lookback = int(lookback)
        self.breakout = float(breakout)
        self.size = float(size)
        self._peak: float | None = None  # 入场以来最高价(移动止损参考)

    async def on_tick(self, ctx: StrategyContext) -> None:
        sym = ctx.conn_symbol()
        hist = await ctx.history(sym, self.lookback + 1)
        if len(hist) < self.lookback + 1:
            return
        px = hist[-1]
        prior_high = max(hist[:-1])
        pos = await ctx.position(sym)
        band = self.size * 0.1
        if pos <= band:
            self._peak = None
            if px > prior_high * (1.0 + self.breakout):
                await ctx.target(sym, self.size, band=band)
                self._peak = px
        else:
            self._peak = max(self._peak or px, px)
            if px < self._peak * (1.0 - 3.0 * self.breakout):
                await ctx.target(sym, 0.0, band=band)
                self._peak = None

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

运行此策略的池子

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