WaveRunner is a configurable grid execution framework for HaasOnline. Set the rules, and the script runs them — across choppy, sideways, and modestly trending markets.

Today we're introducing WaveRunner, a new HaasScript grid trading framework built around a single idea: fish with a net, not a rod. Instead of predicting where price is heading, you place a ladder of buy and sell orders across a band and let the market come to you.

You can read the full pitch on the WaveRunner page. This post is the story behind it — what we built, why we built it the way we did, and who it's for.

Why a grid framework, and why now?

Most automated strategies on HaasOnline are directional — they try to spot a move and ride it. That works when markets trend cleanly, and it works less well when they don't. A lot of crypto, a lot of the time, is neither cleanly trending nor cleanly ranging — it chops, drifts, and oscillates.

Grid execution is a structurally different bet. You aren't predicting a direction; you're capturing oscillation. Every time price crosses a rung in your ladder, you fill an order. Every completed buy-sell pair captures the configured spread, gross of fees. Outcomes still depend on configuration, conditions, and exchange execution — but the mechanic itself is dead simple.

WaveRunner is our framework for running that mechanic on TradeServer, with the guardrails we'd want if we were running it ourselves.

The core idea — fish with a net, not a rod

A trader with a rod has to predict where the fish will be. A trader with a net spreads it across the water and waits for the fish to swim through.

WaveRunner is the net. You configure the shape — how many rungs, how far apart, how large each order is — and the framework handles the rest. There's no signal generation, no indicator interpretation, no discretionary entry logic. Just a ladder, and a script that maintains it.

How it works

The framework runs in three steps.

Step 01 — Set the anchor

When the script starts, WaveRunner records the current price as the anchor. It builds a ladder of buy orders below the anchor and a matching ladder of sell orders above it. You decide the rung count, spacing, and per-order size.

Step 02 — Catch the waves

When price drops to a buy rung, WaveRunner buys. When it rises to a sell rung, it sells. Each completed buy-sell pair captures the configured spread, gross of fees. No predictions, no discretion — the ladder does the work.

Step 03 — Follow the market

Markets don't sit still inside the band you drew for them. When price drifts far enough that the ladder becomes one-sided, WaveRunner cancels open orders and rebuilds the ladder around the new price. This auto re-anchor is the core mechanism that lets a static-looking framework stay responsive across regimes.

Three safety mechanisms built in

A grid framework is a simple machine, and simple machines fail in predictable ways. WaveRunner has three guardrails to address the most common ones.

Anchor-scale safety. As price drifts away from the anchor, WaveRunner automatically shrinks new orders. The script never deploys full-size orders into a runaway trend — it eases off as conditions change, like cruise control on a downhill.

Spot-only execution. WaveRunner runs against spot markets. There's no leverage, no liquidation risk, and no funding to bleed. The worst case is that you're holding the asset you bought.

Non-custodial. WaveRunner runs on your TradeServer instance against your own exchange API keys. We don't custody your funds, your keys, or your positions. The framework is a HaasScript — same trust model as every other script you run.

Who WaveRunner is for — and who it isn't

We want to be honest about this, because grid strategies have a track record of being oversold.

WaveRunner is designed for choppy, sideways, or modestly trending markets — assets that oscillate inside a band you can identify. It works best when you understand the asset's typical range and configure the ladder accordingly.

It is not a moonshot script. It will not catch a clean directional breakout — by design, anchor-scale safety shrinks orders as price runs away from the anchor. It is also not a substitute for thinking about which assets to deploy on, what spacing makes sense, or how much capital to commit. The framework is configurable for a reason: a ladder that's right for one market is wrong for another.

If you're looking for a tool that captures oscillation with deterministic rules and clear guardrails, WaveRunner is the framework we built for that. If you want a system that picks tops and bottoms, this isn't it.

Getting started

WaveRunner runs on any HaasOnline TradeServer or Cloud subscription. The full overview, configuration walkthrough, and example setups live on the WaveRunner page.

If you're new to HaasOnline, you can start a free 7-day trial and try WaveRunner alongside the rest of the platform — no credit card required.

Set the rules. Let the framework run them. Catch the waves.