Strategie für BTC-Hash-Bändern

Schriftsteller:ChaoZhang, Datum: 2024-01-12 12:13:54
Tags:

img

Übersicht

Die BTC Hash Ribbons-Strategie nutzt den Hash-Rate-Indikator des Bitcoin-Netzwerks, um lang zu gehen, wenn die Miner-Kapitulation endet und die Erholung beginnt, und kurz zu gehen, wenn die Miner beginnen, zu kapitulieren, um von den Schwankungen des Miner-Zyklus zu profitieren.

Strategie Logik

Diese Strategie verwendet IntoTheBlock-Daten, um den täglichen Hash-Rate von Bitcoin auf der Handelsansicht anzuzeigen. Sie berechnet den schnellen gleitenden Durchschnitt und den langsamen gleitenden Durchschnitt. Wenn der schnellen gleitenden Durchschnitt über den langsamen gleitenden Durchschnitt geht, geht er lang, in der Annahme, dass die Kapitulierung des Miners beendet und die Erholung begonnen hat. Wenn der schnellen gleitenden Durchschnitt unter den langsamen gleitenden Durchschnitt geht, geht er kurz, in der Annahme, dass die Miner beginnen zu kapitulieren.

Insbesondere definiert die Strategie zwei gleitende Durchschnittslinien: SignalLine (Standardlänge 30 Tage) und LongLine (Standardlänge 60 Tage). Wenn SignalLine über LongLine kreuzt, gilt es als langes Signal; wenn SignalLine unter LongLine kreuzt, gilt es als kurzes Signal. Gemäß dem Richtungsparameter wird die Strategie lange oder kurze Positionen eröffnen, wenn das entsprechende Signal erscheint.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie die Eigenschaften des Bitcoin-Netzwerks selbst nutzt und die Expansions- und Kontraktionszyklen der Bergleute durch Hashrate widerspiegelt, um Handelssignale zu generieren.

Ein weiterer Vorteil ist die geringe Anzahl von Parametern. Die wichtigsten sind nur die Längeneinstellungen der schnellen und langsamen gleitenden Durchschnitte, die ohne Überanpassung sehr einfach ist. Gleichzeitig werden mehrere Algorithmen für die Auswahl des gleitenden Durchschnitts bereitgestellt, die flexible Anpassungen ermöglichen.

Risikoanalyse

Das Hauptrisiko dieser Strategie ist die Qualität des Datenanbieters mit der Hashrate. Wenn es Datenqualitätsprobleme gibt, wird dies die Genauigkeit der Signale ernsthaft beeinträchtigen.

Ein weiteres Risiko ist das systemische Risiko des Marktes selbst. Selbst wenn die Merkmale der Expansion und Kontraktion der Bergleute erfasst werden, kann es bei großen Schwankungen des Gesamtmarktes immer noch Verluste erleiden. Mehr Marktindikatoren müssen überwacht werden, um das systemische Risiko zu bestimmen.

Optimierungsrichtlinien

Erwägen Sie die Kombination mit Preisindikatoren, um das Vertrauen bei der Eröffnung von Positionen zu erhöhen, z. B. die Kombination von K-Linien-Musterindikatoren, gleitenden Durchschnittsindikatoren usw. Eröffnen Sie nur Positionen, wenn beide lange oder kurze Signale anzeigen.

Testen Sie Hash-Band-Indikatoren auf der Grundlage verschiedener Zyklen, um Strategien zu entwickeln.

Versuchen Sie mit Machine-Learning-Modellen, wichtige Umkehrpunkte der Hash-Rate zu bestimmen. Im Vergleich zu gleitenden Durchschnitten mit festen Parametern können Machine-Learning-Modelle die komplexen Eigenschaften von Umkehrungen besser simulieren.

Schlussfolgerung

Die allgemeine Logik dieser Strategie ist klar und einfach. Durch die Reflexion des Bergarbeiterzyklus durch die eigenen Daten des Bitcoin-Netzwerks bildet sie Handelssignale, während komplexe Preisprognosen vermieden werden, was ihr eine gewisse Zuverlässigkeit verleiht.


/*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")

Mehr