The one that adapts before volatility wipes you out.
⁉️ How does it work?
It calculates standard deviation from recent 1-minute candles to dynamically widen or tighten grid spacing. That means it reacts to real market noise, not just indicator lag.
📜 Logic:
✅ Tight grid when markets are calm.
✅ Wider spacing when volatility spikes.
✅ Great for BTC, LINK, or BNB on 5-min candles.
Here are the fields you’ll work with for this strategy:
base_spread → Default distance between grid levels.
volatility_threshold → Defines when the market is “too volatile.”
dynamic_spread → Adjusts grid spacing automatically.
execute_price → Entry price based on spread and order position.
execute_volume → Trade size based on your quote balance.
quote_usd → Base order size in USDT-equivalent.
buy_orders_count / sell_orders_count → Number of grid levels.
sleep_after_seconds → Pause before refreshing strategy cycle.
candles_1m → Pulls 10 recent 1-minute candles
mean_price → Average price per candle using (high + low + close) / 3
dispersion → Measures how far prices swing around the mean
std → Standard deviation derived from dispersion
volatility_threshold → Custom cutoff that defines when the market is too wild
Here’s what the setup looks like in JSON 👇
{
"execute_price": "ticker() * (1 + dynamic_spread * order_pos)",
"execute_volume": "quote_usd / execute_price",
"buy_orders_count": "5",
"sell_orders_count": "5",
"std": "dispersion**0.5",
"quote_usd": "20",
"candles_1m": "candles('m1',count=10)",
"dispersion": "sum([((candle.high-candle.low)-mean_price)**2 for candle in candles_1m])/count(candles_1m)",
"mean_price": "mean([(candle.close+candle.low+candle.high)/3 for candle in candles_1m])",
"base_spread": "0.002",
"dynamic_spread": "base_spread * (1.5 if std > volatility_threshold else 1)",
"sleep_after_seconds": "15",
"volatility_threshold": "2.5"
}
🧠 Adapt faster than the market.
Build a grid that learns instead of one that burns
App | X | Blog | Discord | Website | Competitions
