Passer au contenu

Voir l’original

BtcHyperliquidDualTimeframeMomentumConfluenceLS4H

Hypothèses

Hyperliquid BTC Perp Confluence de Momentum Double-Timeframe, Long-Short (BTCUSD.HYPERLIQUID, 4H Primaire + 1J Confirmation, Plat en cas de Désaccord, Stop Suiveur ATR + Rupture de Régime TF-Lent, 3-Paramètre) — Répétition de Transfert de Plateforme pour le Premier Candidat Live Hyperliquid

Hypothèses

Un LONG-SHORT, mono-instrument, suiveur de tendance à confluence de momentum pur-OHLCV sur BTCUSD.HYPERLIQUID (perpétuel Hyperliquid, compte MARGIN, levier 1.0 = identique à la source, bien en dessous du plafond de la plateforme 20x). Le mécanisme est un transfert EXACT de BtcDualTimeframeMomentumConfluenceLS (Binance USD-M, Sharpe 1.99, 458 trades, PF 2.40, DD 3.94%, +$4,774 sur 36 trades papier en 29 jours) : une jambe FAST (signe du rendement glissant sur fast_lookback bougies sur des barres de 4H) et une jambe SLOW (signe du rendement glissant sur slow_lookback bougies sur des barres DAILY, via on_extra_bar) doivent AGREE pour détenir une position ; en cas de désaccord, le book est FLAT. Sorties inchangées : ATR stop suiveur depuis l'extrême courant, ou la jambe quotidienne s'inversant contre le côté détenu. Dimensionnement relatif au capital via get_account_equity(). PURPOSE : il ne s'agit pas d'une nouvelle prétention d'alpha mais d'une répétition de préparation à l'exécution — avant que le capital ne soit acheminé vers Hyperliquid, le seul mécanisme auquel la factory fait confiance doit être validé sur la propre série de prix d'Hyperliquid, son barème de frais et son horloge de financement horaire, puis répété sur TESTNET. J'ai conscience que HYPERLIQUID est 0/131 un plus haut historique et que des clones de ce survivant sont morts ailleurs ; la barre est donc pré-enregistrée BELOW celle de la source. DATA SPAN (vérifié dans le catalogue, non supposé) : BTCUSD.HYPERLIQUID-4-HOUR a accumulé au-delà du plafond de 5000 bougies API depuis 2024-01-22 → ~2.6 ans / ~5,700 barres, suffisant pour 3 fenêtres de walk-forward plus un holdout d'environ 6 mois ; la jambe de confirmation quotidienne remonte à 2020-08-20. 4H est l'intervalle Hyperliquid le plus rapide avec un historique pluriannuel exploitable — aucune variante infra-horaire n'est proposée. PARAMETERS (optimum de la source conservé tel quel selon le brief) : fast_lookback=18, slow_lookback=15, trail_atr_mult=3.033, risk_pct=0.0101, max_notional_frac=0.497, levier=1.0, ATR_PERIOD=14 ; substitutions propres à Hyperliquid size_precision=5 et min_notional=$10. Trois paramètres réglables exposés. FEE ARITHMETIC : 0.045% taker/côté = ~0.09% aller-retour sur des ordres au marché dans les deux sens. La source a réalisé 1.367%/trade ; en supposant que HALF survit au transfert et que la fenêtre plus agitée 2024-2026 donne ~0.65%/trade ≈ 7x aller-retour et 4x le plancher 0.15% d'Hyperliquid — je pré-enregistre 0.45% (5x aller-retour). Cadence ~55-60 allers-retours/an (≈1/semaine), loin du cimetière de l'érosion par les frais. FUNDING : Hyperliquid accumule HOURLY et le moteur NOT crédite le financement, donc une détention d'environ 5 jours porte ±0.05-0.15% de financement non modélisé — un écart de mesure signalé, et la principale raison pour laquelle la répétition sur testnet est essentielle. PORTFOLIO FIT : HYPERLIQUID 6.9% contre un objectif de quota ≥20% — la plateforme la plus en dessous de l'objectif disposant de données pluriannuelles réelles ; direction long-short (14.9% du corpus contre 85.1% long uniquement).

Hypothèses

Transfert de plateforme exact de BtcDualTimeframeMomentumConfluenceLS (survivant USD-M sur Binance) comme le spécifie l'hypothèse : le code de signal, de sortie et de dimensionnement est reproduit à l'identique depuis le fichier de stratégie source, avec seulement les constantes spécifiques à la plateforme modifiées (size_precision 5, min_notional $10) et l'optimum source repris par défaut (fast_lookback=18, slow_lookback=15, trail_atr_mult=3.033, risk_pct=0.0101, max_notional_frac=0.497, ATR_PERIOD=14 verrouillé, levier 1.0). La plateforme est HYPERLIQUID futures (MARGIN) car le book prend des positions SHORT — le spot ne peut pas exprimer la moitié de ce mécanisme. La jambe de confirmation journalière est une jambe supplémentaire SLOWER-timeframe sur le même instrument, donc la barrière d'alignement inter-jambes du template de base ne filtre jamais le signal 4H (seules les jambes de même timeframe se synchronisent) ; la présence des directions de barres BTCUSD.HYPERLIQUID-4-HOUR et -1-DAY a été confirmée dans le catalogue avant soumission. Le travail par barre est en O(lookback) avec des fenêtres fixes (ATR sur 15 barres, deux recherches indexées), donc le budget du sandbox de 300s n'est pas menacé. Fréquence d'entrée : la porte de confluence est un accord de signe à 2 condition(s) qui se maintient la plupart du temps dans un régime tendanciel et bascule quelques fois par mois — la source a produit 458 trades, donc un sandbox à zéro trade n'est pas un risque réel. Chaque contrainte de paramètre dans __init__ est déclarée à l'identique dans _param_bounds, de sorte que l'optimiseur ne teste jamais une valeur que le code réécrit silencieusement. Le levier reste à 1.0 et est lu depuis self.config.leverage dans le plafond de notionnel, conformément à la source. Une réserve honnête, comme l'hypothèse elle-même l'indique : le funding de Hyperliquid s'accumule à l'heure et le moteur ne le crédite pas, donc une détention de plusieurs jours porte environ ±0.05–0.15% de funding non modélisé — ce backtest mesure uniquement le transfert de prix et de frais, ce qui explique pourquoi la répétition sur testnet est le véritable livrable.

Hypothèses

negative_expectancy sur un échantillon fiable. Le chiffre décisif est le brut, pas les coûts : le PnL de prix total est de +$1,497 sur 172 trades (~0.02% du notionnel chacun) contre $3,777 de commission et $4,487 de funding effectivement payé → net -$6,767, PF 0.90, Sharpe -0.137. L'optimisation ne peut pas relever un mécanisme dont la capture brute est quasi nulle face à un aller-retour de 0.09% plus une horloge de funding horaire sur des détentions de 3.6 jours. L'échec est spécifique : la jambe longue fonctionne toujours (+0.409%/trade) mais les 92 positions courtes perdent -0.744%/trade, donc la symétrie long-short de la source ne se transfère pas à la fenêtre 2024-2026 de HL.

Implémentation

Confluence de momentum double-timeframe long-short, instrument unique, pur-OHLCV, sur le perpétuel BTCUSD.HYPERLIQUID. Une jambe FAST (signe du rendement glissant sur 18 barres sur des barres 4H) et une jambe SLOW (signe du rendement glissant sur 15 barres sur des barres DAILY, livrée via on_extra_bar) doivent AGREE pour détenir une position : les deux à la hausse -> LONG, les deux à la baisse -> SHORT, désaccord -> FLAT. Les sorties se font sur un stop suiveur ATR (3.033 x ATR au moment de l'entrée depuis l'extrême haut/bas courant de la position) ou le renversement de la jambe journalière contre le côté détenu. Le dimensionnement est relatif au capital : risquer 1.01% de l'equity sur la distance du stop suiveur, notionnel brut plafonné à 49.7% de l'equity, effet de levier 1.0, taille quantifiée à la précision de taille à HL décimales de 5, avec un notionnel minimum de $10. calculate_signal renvoie le rendement de momentum 4H continu à chaque barre ; la porte de confluence discrète se trouve dans should_enter.

Résultats de vérification

Déplacer l'ancrage de _side/_extreme/_entry_atr hors de should_enter() vers la branche « position existante » de calculate_signal (qui gère déjà le cas _side == 0), ou vers un hook on_position_opened.

Résultats de vérification

should_enter() modifie l'état de la position (self._side, self._extreme, self._entry_atr) avant que l'on sache si l'ordre a bien été soumis. Si position_size() renvoie 0, ou si le template de base rejette l'entrée sur le contrôle du notionnel minimum, la stratégie se retrouve avec un _side non nul et un _extreme/_entry_atr obsolètes alors qu'elle est en réalité plate. C'est auto-réparateur (la calculate_signal de la barre suivante voit que pos est None et réinitialise les trois, et should_exit() n'est atteint que lorsqu'une position existe), donc aucune mauvaise décision de trading n'en découle - mais un prédicat avec effets de bord est fragile si le chemin d'entrée du template de base venait à changer. Préférer ancrer l'état du stop suiveur dans on_position_opened / le premier calculate_signal post-entrée.

Résultats de vérification

Retirer BTCUSD.HYPERLIQUID de extra_instruments ; extra_bar_types seul délivre la jambe journalière à on_extra_bar().

Résultats de vérification

config.extra_instruments liste BTCUSD.HYPERLIQUID, qui est aussi le instrument_id primaire. Le template de base s'abonne alors deux fois au même instrument pour les données hors-barre (aucune demandée ici, donc aucun effet), met en tampon les barres journalières dans _extra_bars[BTCUSD.HYPERLIQUID] (jamais lu par cette stratégie - qui conserve son propre _daily_closes), et appelle close_all_positions/cancel_all_orders sur l'instrument primaire deux fois dans on_stop (idempotent). Sans conséquence aujourd'hui car seul extra_bar_types compte pour la jambe journalière et le timeframe 1-DAY diffère du primaire 4-HOUR, donc _sync_extra_iids reste vide (la barrière d'alignement ne filtre correctement pas le signal 4H, comme le prétend le raisonnement). Néanmoins, l'entrée dupliquée est du bruit.

Résultats de vérification

Optionnel : faire en sorte que min_bars_required() tienne aussi compte de la période de chauffe journalière (par exemple max(fast_lookback+1, ATR_PERIOD+1, (slow_lookback+1)*6) + 2) afin que les diagnostics d'entrée attribuent le préambule mort à la période de chauffe plutôt qu'au filtre d'entrée.

Résultats de vérification

La jambe de confirmation journalière nécessite slow_lookback + 1 = 16 clôtures journalières avant que _slow_dir ne quitte 0, soit environ 96 barres 4H primaires, alors que min_bars_required() ne filtre que sur la jambe 4H (21 barres). Entre la barre 21 et environ la barre 96, la stratégie est silencieusement incapable d'entrer (la confluence ne peut jamais être satisfaite avec _slow_dir == 0). Correct et sans anticipation (look-ahead), mais cela coûte environ 16 jours à chaque fenêtre de walk-forward et apparaîtrait comme un préambule mort plutôt que comme un filtre de chauffe explicite.

Résultats de vérification

L'économie du sandbox contredit l'affirmation pré-enregistrée, et elle le fait sur les OWN OPTIMUM du SOURCE (fast=18, slow=15, trail=3.033 repris verbatim), donc l'excuse habituelle du « tirage non optimisé » est ici plus faible que d'ordinaire : avg_trade_return_pct est de -0.088% contre un +0.45% pré-enregistré (5x aller-retour), PF 0.966, Sharpe -0.137, total_return -2.27% sur 172 trades / 799 jours. Les commissions représentent 5.78% du brut et l'impact $1,122, donc le coût n'est pas toute l'explication - la capture brute par trade n'est que marginalement positive. L'attribution par régime est à l'opposé de ce que devrait montrer un suiveur de tendance : tercile stressé -10.96% (sharpe -1.34), calme -0.26%, tout le profit se trouvant dans le tercile médian (+7.28%) - c.-à-d. que le filtre de confluence ne capture pas les tendances volatiles pour lesquelles il est conçu sur la série de prix de HL. Deux autres éléments que l'analyste devrait peser lors de la revue du backtest : (1) FUNDING IS NOT MODELLED sur Hyperliquid (funding_events_available : 0) alors que le book détient ~3.6 jours sur une horloge de funding horaire, de sorte que le PnL mesuré porte un +-0.05-0.15%/trade non comptabilisé - l'hypothèse le signale honnêtement, mais cela signifie que le chiffre HL n'est qu'un résultat de prix et de frais ; (2) la série 4H commence 2024-01-22 (~2.6 ans, ~5,700 barres) et ne produit que ~55-75 allers-retours/an, donc un walk-forward à fenêtre de 3 plus un holdout de 6 mois se partageront environ 200 trades sur la durée de vie - attendez-vous à des IC de Sharpe larges (le sandbox CI couvre déjà de -1.57 à +1.28). Le code est un transfert fidèle ; si le transfert de plateforme doit être jugé, jugez-le sur l'exécution sur historique complet, avec ces réserves attachées.

Revue du backtest

Transfert fidèle et à l'identique du mécanisme survivant : 172 trades sur 799 jours, 4,787 barres, aucune suppression aux diagnostics d'entrée, metrics_reliable=true — une mesure propre de la question du transfert de plateforme.

Revue du backtest

Le funding IS a été crédité sur ce run (26,347 événements de funding, champ de funding par trade renseigné), donc l'écart de mesure signalé par l'hypothèse est en fait comblé.

Revue du backtest

Les trades correspondent à l'hypothèse (80 longs / 92 courts, détentions d'environ 3.6j, sorties ATR/régime) — pas un défaut de code.

Revue du backtest

Espérance négative sur un échantillon adéquat : PF 0.90, Sharpe -0.137, -2.27% au total, espérance de -$39.34/trade, avg_trade_return_pct -0.088% contre un plancher de 0.15% et un pré-enregistrement de +0.45%.

Revue du backtest

Vérifié sur le fichier de détail : le PnL brut de PRICE n'est que de +$1,497 sur 172 trades (~0.02% du notionnel/trade) avant $3,777 de commission et $4,487 de funding payé — la capture de prix est quasi nulle, ce n'est donc pas un problème de calibrage des frais.

Revue du backtest

La jambe courte est le point de rupture : capture de prix moyenne LONG +0.409%/trade contre SHORT -0.744%/trade sur 92 positions courtes.

Revue du backtest

Perd en 2024 et 2025, positif seulement dans les 2026 trades de 23 ; 760 jours sous l'eau, 11 pertes consécutives.

Revue du backtest

L'attribution par régime inverse la prémisse de trend (-10.97% stressé, Sharpe -1.34 ; tout le profit dans le tercile de volatilité médian), confirmant la préoccupation de QA.

Revue du backtest

Sharpe CI -1.50 à +1.23, PSR 0.42 — un walk-forward à fenêtre de 3 plus holdout découperait environ 170 trades sur toute la durée de vie.

Résumé des résultats

BtcHyperliquidDualTimeframeMomentumC-078dad301a

Résumé des résultats

Ce run était une répétition de préparation à l'exécution plutôt qu'une nouvelle prétention d'alpha — un transfert exact du survivant #1 de la factory sur Binance vers la propre série de prix, les frais et l'horloge de funding horaire de Hyperliquid, avec une barre pré-enregistrée délibérément fixée en dessous de celle de la source. Le transfert s'est exécuté proprement (172 trades, aucune suppression aux diagnostics d'entrée, metrics_reliable, et le funding a effectivement été crédité, comblant l'écart de mesure signalé par l'hypothèse), mais l'économie n'a pas suivi : -2.27% de rendement total, Sharpe -0.137, PF 0.90 et -0.088% par trade, perdant en 2024 et 2025 et passant 760 jours sous l'eau. Le détail décisif est que le PnL de prix brut était quasiment nul (+$1,497 sur 172 trades) avant $3,777 de commission et $4,487 de funding, la jambe courte (-0.744%/trade) effaçant une jambe longue qui fonctionnait encore (+0.409%/trade). L'analyste l'a abandonné à la revue de backtest à l'itération 1, avant de passer à l'optimisation en phase 3 ; les étapes post-optimisation de l'analyste et du risk-officer n'ont jamais été atteintes.

Résumé des résultats

L'edge d'un mécanisme est spécifique à la plateforme et à la fenêtre temporelle : transférer sans modification une règle long-short éprouvée peut faire perdre la symétrie qui la faisait fonctionner, donc vérifier la capture de prix brute de chaque jambe séparément avant de supposer que les coûts sont l'obstacle.

Résumé des résultats

La porte de revue de backtest a renvoyé un abandon avant tout lancement d'optimisation, citant une espérance négative (-$39.34/trade) sur un échantillon fiable de 172 trades où la jambe longue capturait encore +0.409%/trade mais les 92 positions courtes perdaient -0.744%/trade. Avec une capture de prix brute quasi nulle, l'optimisation ne pouvait vraisemblablement pas surmonter un aller-retour de 0.09% plus le funding horaire de Hyperliquid sur des détentions d'environ 3.6 jours.

Résumé des résultats

Un transfert de plateforme à l'identique du meilleur survivant USD-M de la factory sur Binance : un trend follower long-short à confluence de momentum double-timeframe sur BTCUSD.HYPERLIQUID exigeant l'accord d'une jambe rapide 4H et d'une jambe lente journalière, plat en cas de désaccord, sortant sur un stop suiveur ATR ou un renversement de régime journalier.

Résumé des résultats

Sur 799 jours et 4,787 barres 4H, il a fallu 172 trades (80 longs / 92 courts) pour -2.27% de rendement total, Sharpe -0.137, profit factor 0.90, taux de réussite 36.0%, drawdown maximal 10.97% et avg_trade_return_pct de -0.088% contre le plancher de viabilité 0.15% et un +0.45% pré-enregistré. Le PnL de prix brut n'était que de +$1,497 contre $3,777 de commission et $4,487 de funding effectivement payé ; l'attribution par régime a inversé la prémisse de trend (tercile stressé -10.97%, Sharpe -1.34).
Rapport de stratégie

Stratmill est un outil de recherche et de paper trading, pas un conseil financier ni un courtier. Les résultats de backtest et de paper trading sont hypothétiques. Le trading comporte un risque de perte.