NovaMarket
← All strategies

Funding harvest

HyperliquidMarket-neutralPerpetuals (leverage/short)Lower risk

long the most-negative-funding perps to collect funding (pre-filter)

Track record

Return
+13.0%
Sharpe
2.48
Max DD
2.3%
AUM
$0
Created
2026-07-12
Investors
0
Pools
0
Settled days
0

Market fit

Market-neutralNo directional bet — harvests spreads and funding
  • Runs in any market; steadier but smaller returns
  • Spreads and funding can blow out in extreme conditions

Backtest (deterministic simulator)

Parameters: top_n / rebalance / slice

Cross-sectional selection over a synthetic 8-symbol universe — not a promise of future returns.

"""资金费选股(Funding harvest)—— 前置声明式筛选器 + 持有收资金费。

思路:从标的池里选出资金费最低(最负、对多头最有利)的 top_n 个 perp 做多——负费率时空头付多头,持有
即赚资金费。用筛选器做前置选股(direction="bottom" 选最负费率),on_symbol 只做等名义额持有。每
rebalance_every 步重排,费率翻正/跌出榜即退出。做多收费保持长仓,无需做空。

适用性:instrument="perp"、venues=["HYPERLIQUID"]。回测需带 per-symbol 资金费的 universe feed。
"""
from __future__ import annotations

from ..base import StrategyBase
from ..context import StrategyContext
from ..registry import register
from ..screener import Screener, ScreenedStrategy


@register("资金费选股")
class FundingHarvest(ScreenedStrategy, StrategyBase):
    description = "资金费选股(前置):选资金费最低(负费率对多头有利)的 top_n 标的做多收资金费。"
    params = {"top_n": 2, "rebalance": 20, "slice": 8000.0}
    venues = ["HYPERLIQUID"]
    symbols: list = []
    instrument = "perp"

    def __init__(self, top_n: int = 2, rebalance: int = 20, slice: float = 8000.0) -> None:
        self.screener = Screener("funding", top_n=int(top_n), direction="bottom")
        self.rebalance_every = int(rebalance)
        self.slice = float(slice)

    async def on_symbol(self, ctx: StrategyContext, sym: str) -> None:
        px = await ctx.price(sym)
        if px > 0:
            qty = self.slice / px
            await ctx.target(sym, qty, band=qty * 0.1)

The full SDK and all strategies are MIT-licensed open source — backtest, paper-trade, or fork them directly.

Pools running this strategy

No pools are running this strategy yet — be the first to launch one.