Stratégies de Market Making — Fournir de la liquidité avec les insights Smart Money

Les market makers profitent des spreads bid-ask en fournissant les deux côtés de la liquidité. Dans le crypto, c'est peu risqué si bien exécuté : vous pouvez détenir un stock minimal en couvrant sur une autre plateforme, empochant la différence de spread. Smart Money API aide les market makers à ajuster dynamiquement les spreads en fonction de l'activité des whales et des anomalies de taux de financement.

Insight clé : Les market makers professionnels élargissent les spreads lorsque de gros ordres sont anticipés (basé sur les changements de positions des whales). Ils resserrent les spreads lorsque l'élan s'essouffle. Les signaux Smart Money vous permettent d'anticiper ces changements.

Fondamentaux du Market Making

Le Spread

Vous achetez au prix bid, vendez au prix ask. Votre profit est la différence :

Profit par aller-retour = Ask - Bid

Sur BTC/USDT à 42 000 $ :

Risque de stock

Si vous achetez 1 BTC à 42 000 $ mais que le prix chute à 41 000 $ avant de vendre, vous êtes en perte de 1 000 $. Les market makers sophistiqués couvrent ce risque :

Python — Couverture de stock
# Acheter sur Bybit au bid, vendre immédiatement à découvert sur Binance au ask
buy_bybit(symbol="BTCUSDT", size=1, side="buy", limit_price=41978.95)
sell_binance(symbol="BTCUSDT", size=1, side="sell", limit_price=42050)
# Profit = 42050 - 41978.95 = 71.05 USDT, quel que soit le mouvement de prix
# Le risque est uniquement l'exécution : et si votre ordre de vente ne passe pas ?

Stratégies de Spread Dynamique

1. Market Making à Spread Fixe

Le plus simple : toujours citer 1 bp des deux côtés.

Python — MM à spread fixe
def fixed_spread_mm(mid_price, spread_bps=1.0):
spread = mid_price * (spread_bps / 10000)
bid = mid_price - (spread / 2)
ask = mid_price + (spread / 2)
return {"bid": bid, "ask": ask}

2. Spread Ajusté à la Volatilité

Élargir les spreads en période de forte volatilité, les resserrer lors de marchés calmes :

Python — MM ajusté à la volatilité
def volatility_adjusted_mm(mid_price, returns_1h, confidence_score):
# Calculer la volatilité sur 1 heure (écart type des rendements)
vol = np.std(returns_1h)
# Spread de base : 1 bp
base_spread_bps = 1.0
# Multiplier par la volatilité (échelle 0-10x)
vol_multiplier = 1 + (vol * 50) # haute vol = spread plus large
# Multiplier par la confiance (si Smart Money est ÉLEVÉ, resserrer légèrement)
if confidence_score > 0.65:
confidence_mult = 0.8 # resserrer de 20 %
else:
confidence_mult = 1.0
final_spread_bps = base_spread_bps * vol_multiplier * confidence_mult
spread = mid_price * (final_spread_bps / 10000)
return {
"bid": mid_price - (spread / 2),
"ask": mid_price + (spread / 2),
"spread_bps": final_spread_bps
}

3. Spreads Réactifs Smart Money

Ajuster les spreads en fonction des signaux d'activité des whales :

Python — MM réactif aux whales
def smart_money_adjusted_spreads(symbol, mid_price):
# Obtenir la confirmation Smart Money
sm = get_smart_money_signal(symbol)
# Confiance ÉLEVÉE + haussier = marché en hausse bientôt
# Élargir l'ask (espérer vendre à meilleur prix)
# Resserrer le bid (exécution plus rapide côté achat)
if sm["confidence"] == "HIGH" and sm["direction"] == "long":
bid_spread = 0.8 # 0,8 bp sur le bid (compétitif)
ask_spread = 1.4 # 1,4 bp sur l'ask (pousser pour le fill)
elif sm["confidence"] == "VETO":
bid_spread = 2.0 # large des deux côtés (incertitude)
ask_spread = 2.0
else:
bid_spread = 1.0 # symétrique normal
ask_spread = 1.0
return {
"bid": mid_price - (mid_price * bid_spread / 10000),
"ask": mid_price + (mid_price * ask_spread / 10000)
}

Gestion des stocks

Stock Cible

Définissez un stock cible neutre (par exemple, 0 BTC). Si vous en accumulez trop, augmentez le bid (pousser à vendre). Si vous êtes trop à découvert, augmentez l'ask (pousser à acheter) :

Python — Déséquilibre d'inventaire
def get_inventory_skew(current_inventory, target_inventory=0):
skew = current_inventory - target_inventory
# Si détention excessive (+1 BTC), élargir l'offre pour vendre
if skew > 0:
bid_adjustment = min(skew * 0.5, 2.0) # ajouter jusqu'à 2bp
ask_adjustment = -min(skew * 0.5, 1.0) # resserrer jusqu'à 1bp
# Si short, élargir la demande pour acheter
elif skew < 0:
ask_adjustment = min(abs(skew) * 0.5, 2.0)
bid_adjustment = -min(abs(skew) * 0.5, 1.0)
else:
bid_adjustment = 0
ask_adjustment = 0
return bid_adjustment, ask_adjustment

Market Maker en Production

Python — Système complet de MM
class CryptoMarketMaker:
def __init__(self, symbol, inventory_target=0):
self.symbol = symbol
self.inventory = 0
self.inventory_target = inventory_target
def update_quotes(self, mid_price):
# 1. Obtenir le signal Smart Money
sm = get_smart_money_signal(self.symbol)
# 2. Ajustement de la volatilité
vol = calculate_volatility_1h(self.symbol)
# 3. Ajustement de l'inventaire
inv_bid, inv_ask = get_inventory_skew(self.inventory)
# 4. Combiner tous les facteurs
base_bid, base_ask = fixed_spread_mm(mid_price, 1.0)
vol_bid, vol_ask = volatility_adjusted_mm(mid_price, [vol], sm["composite"])
sm_bid, sm_ask = smart_money_adjusted_spreads(self.symbol, mid_price)
# Moyenne des prix ajustés
final_bid = np.mean([base_bid, vol_bid, sm_bid]) + inv_bid
final_ask = np.mean([base_ask, vol_ask, sm_ask]) + inv_ask
# Soumettre les ordres
submit_order(side="bid", price=final_bid, size=1)
submit_order(side="ask", price=final_ask, size=1)

Optimisez votre market making avec les signaux Smart Money

Les market makers qui ajustent leurs spreads en fonction de l'activité des baleines et de la confiance Smart Money obtiennent des prix d'exécution 15-25% meilleurs et réduisent leur risque d'inventaire.

Obtenir l'accès à l'algo →