Smart Money Following (Wallet Tracking)
Copy-trade strategies that follow specific wallet addresses on Hyperliquid.
Requirements:
timeframe: "tick"(mandatory for copy trading latency)wallet_addresses: ["0x..."]in strategy config- Hyperliquid perpetual universe (e.g.,
HYPERLIQUID:BTC/USDC:USDC)
Basic Copy Trade
Follow a whale wallet — buy when they buy, sell when they sell.
WHALE = "0xABC123..."
if wallet_filled(WHALE):
side = wallet_side(WHALE)
if side == "BUY":
emit(True, entry(context['ticker'], 'LONG', Weight(0.5)))
elif side == "SELL":
emit(True, exit_position(context['ticker']))
Config:
{
"universe": ["HYPERLIQUID:BTC/USDC:USDC"],
"timeframe": "tick",
"wallet_addresses": ["0xABC123..."],
"mode": "isolated"
}
Proportional Size Copy
Match position size proportionally to the whale's trade.
WHALE = "0xABC123..."
MAX_SIZE = 1.0 # max 1 BTC
if wallet_filled(WHALE):
side = wallet_side(WHALE)
whale_size = wallet_size(WHALE)
my_size = min(whale_size * 0.1, MAX_SIZE) # 10% of whale, capped
if side == "BUY":
emit(True, entry(context['ticker'], 'LONG', Quantity(my_size)))
elif side == "SELL":
emit(True, entry(context['ticker'], 'SHORT', Quantity(my_size)))
Copy with RSI Filter
Only follow the whale when RSI confirms the direction.
WHALE = "0xABC123..."
data = get_data(context['ticker'], "1m")
rsi_val = rsi(data.close, 14)[-1]
if wallet_filled(WHALE):
side = wallet_side(WHALE)
if side == "BUY" and rsi_val < 70:
emit(True, entry(context['ticker'], 'LONG', Weight(0.5),
stop_loss=PercentFromEntry(-0.03)))
elif side == "SELL" and rsi_val > 30:
emit(True, exit_position(context['ticker']))
Multi-Wallet Consensus
Only trade when multiple tracked wallets agree.
WHALE_A = "0xAAA..."
WHALE_B = "0xBBB..."
a_buy = wallet_filled(WHALE_A) and wallet_side(WHALE_A) == "BUY"
b_buy = wallet_filled(WHALE_B) and wallet_side(WHALE_B) == "BUY"
a_sell = wallet_filled(WHALE_A) and wallet_side(WHALE_A) == "SELL"
b_sell = wallet_filled(WHALE_B) and wallet_side(WHALE_B) == "SELL"
if a_buy and b_buy:
emit(True, entry(context['ticker'], 'LONG', Weight(0.8)))
elif a_sell or b_sell:
emit(True, exit_position(context['ticker']))
Config:
{
"universe": ["HYPERLIQUID:ETH/USDC:USDC"],
"timeframe": "tick",
"wallet_addresses": ["0xAAA...", "0xBBB..."]
}