La stratégie BTC Hash Ribbons utilise l'indicateur de taux de hachage du réseau Bitcoin pour aller long lorsque la capitulation des mineurs prend fin et que la reprise commence, et aller court lorsque les mineurs commencent à capituler, afin de profiter des fluctuations du cycle des mineurs.
Cette stratégie utilise les données IntoTheBlock pour afficher le taux de hachage quotidien de Bitcoin sur la vue de négociation. Elle calcule la moyenne mobile rapide et la moyenne mobile lente. Lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, elle est longue, croyant que la capitulation du mineur est terminée et que la reprise a commencé. Lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, elle est courte, croyant que les mineurs commencent à capituler.
Plus précisément, la stratégie définit deux lignes moyennes mobiles: SignalLine (longueur par défaut 30 jours) et LongLine (longueur par défaut 60 jours). Lorsque SignalLine traverse au-dessus de LongLine, il est considéré comme un signal long; lorsque SignalLine traverse au-dessous de LongLine, il est considéré comme un signal court. Selon le paramètre de direction, la stratégie ouvrira des positions longues ou courtes lorsque le signal correspondant apparaît.
Le plus grand avantage de cette stratégie est qu'elle utilise les caractéristiques du réseau Bitcoin lui-même, reflétant les cycles d'expansion et de contraction des mineurs à travers le taux de hachage pour générer des signaux de trading.
Un autre avantage est le petit nombre de paramètres. Les principaux sont simplement les paramètres de longueur des moyennes mobiles rapides et lentes, ce qui est très simple sans surajustement.
Le principal risque de cette stratégie est la qualité du fournisseur de données de taux de hachage. S'il y a des problèmes de qualité des données, cela affectera sérieusement l'exactitude des signaux. Actuellement, IntoTheBlock fournit des données de bonne qualité, mais sa durabilité nécessite également une attention.
Un autre risque est le risque systémique du marché lui-même. Même si les caractéristiques de l'expansion et de la contraction des mineurs sont capturées, il peut encore subir des pertes en cas de fortes fluctuations du marché global. Plus d'indicateurs de marché doivent être surveillés pour déterminer le risque systémique.
Considérez la combinaison avec des indicateurs de prix pour augmenter la confiance lors de l'ouverture de positions, comme la combinaison d'indicateurs de modèle de ligne K, d'indicateurs de moyenne mobile, etc. N'ouvrez que des positions lorsque les deux indiquent des signaux longs ou courts.
Testez les indicateurs de rubans de hachage basés sur différents cycles pour élaborer des stratégies. Par exemple, utilisez des indicateurs hebdomadaires ou mensuels pour filtrer trop de bruit et déterminer les renversements de tendance à des délais plus longs.
Essayez des modèles d'apprentissage automatique pour déterminer les points clés d'inversion du taux de hachage.
La logique générale de cette stratégie est claire et simple. En reflétant le cycle du mineur à travers les propres données du réseau Bitcoin, il forme des signaux de trading tout en évitant des prévisions de prix complexes, lui donnant une certaine fiabilité. Mais une optimisation et une combinaison supplémentaires sont encore nécessaires pour réduire l'impact des risques systémiques du marché et améliorer la rentabilité stable.
/*backtest start: 2023-01-05 00:00:00 end: 2024-01-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Powerscooter // Since IntoTheBlock only provides daily hashrate data, this chart might look chunky on lower timeframes, even with smoothing. //@version=5 strategy("BTC Hashrate ribbons", overlay = true) enableDirection = input(0, title="Both(0), Long(1), Short(-1)", group="Direction") smoothingS = input.string(title="Smoothing short MA", defval="SMA", options=["SMA", "RMA", "EMA", "WMA"], group="Hashrate Settings") SmoothLengthS = input(30, 'Short MA length', group="Hashrate Settings") smoothingL = input.string(title="Smoothing long MA", defval="SMA", options=["SMA", "RMA", "EMA", "WMA"], group="Hashrate Settings") SmoothLengthL = input(60, 'Long MA length', group="Hashrate Settings") ma_functionS(source, length) => switch smoothingS "RMA" => ta.rma(source, length) "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) => ta.wma(source, length) ma_functionL(source, length) => switch smoothingL "RMA" => ta.rma(source, length) "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) => ta.wma(source, length) HashRate = request.security("INTOTHEBLOCK:BTC_HASHRATE", "D", close) SignalLine = ma_functionS(HashRate, SmoothLengthS) LongLine = ma_functionL(HashRate, SmoothLengthL) plot(ma_functionS(HashRate, SmoothLengthS), "Short MA", color=color.yellow) plot(ma_functionL(HashRate, SmoothLengthL), "Long MA", color=color.blue) LongCondition = ta.crossover(SignalLine, LongLine) ShortCondition = ta.crossunder(SignalLine, LongLine) //Long Entry Condition if LongCondition and (enableDirection == 1 or enableDirection == 0) strategy.entry("Long", strategy.long) if LongCondition and (enableDirection == -1) strategy.close("Short") //Short Entry condition if ShortCondition and (enableDirection == -1 or enableDirection == 0) strategy.entry("Short", strategy.short) if ShortCondition and (enableDirection == 1) strategy.close("Long")