Estrategia de las cintas de hash de BTC

El autor:¿ Qué pasa?, Fecha: 2024-01-12 12:13:54
Las etiquetas:

img

Resumen general

La estrategia BTC Hash Ribbons utiliza el indicador de tasa de hash de la red Bitcoin para ir largo cuando termina la capitulación del minero y comienza la recuperación, y ir corto cuando los mineros comienzan a capitullar, con el fin de beneficiarse de las fluctuaciones del ciclo del minero.

Estrategia lógica

Esta estrategia utiliza los datos de IntoTheBlock para mostrar la tasa de hash diaria de Bitcoin en la vista de negociación. Cálcula el promedio móvil rápido y el promedio móvil lento. Cuando el promedio móvil rápido cruza por encima del promedio móvil lento, va largo, creyendo que la capitulación del minero ha terminado y la recuperación ha comenzado. Cuando el promedio móvil rápido cruza por debajo del promedio móvil lento, va corto, creyendo que los mineros están comenzando a capitullar.

Específicamente, la estrategia define dos líneas de promedio móvil: SignalLine (duración predeterminada de 30 días) y LongLine (duración predeterminada de 60 días). Cuando SignalLine cruza por encima de LongLine, se considera una señal larga; cuando SignalLine cruza por debajo de LongLine, se considera una señal corta. De acuerdo con el parámetro de dirección, la estrategia abrirá posiciones largas o cortas cuando aparezca la señal correspondiente.

Análisis de ventajas

La mayor ventaja de esta estrategia es que utiliza las características de la propia red Bitcoin, reflejando los ciclos de expansión y contracción de los mineros a través de la tasa de hash para generar señales comerciales.

Otra ventaja es el pequeño número de parámetros. Los principales son solo los ajustes de longitud de las medias móviles rápidas y lentas, que es muy simple sin sobreajuste. Al mismo tiempo, se proporcionan múltiples algoritmos para la selección de la media móvil, lo que permite ajustes flexibles.

Análisis de riesgos

El principal riesgo de esta estrategia es la calidad del proveedor de datos de tasa de hash. Si hay problemas de calidad de datos, afectará seriamente la precisión de las señales. Actualmente IntoTheBlock proporciona datos de buena calidad, pero su sostenibilidad también necesita atención.

El riesgo sistémico es el riesgo sistémico del mercado en sí mismo. Incluso si se capturan las características de la expansión y contracción de los mineros, todavía puede sufrir pérdidas en caso de grandes fluctuaciones en el mercado en general.

Direcciones de optimización

Considere combinar con indicadores de precios para aumentar la confianza al abrir posiciones, como combinar indicadores de patrón de línea K, indicadores de promedio móvil, etc. Sólo abra posiciones cuando ambos indiquen señales largas o cortas.

Pruebe los indicadores de cintas de hash basados en diferentes ciclos para construir estrategias. Por ejemplo, use indicadores semanales o mensuales para filtrar demasiado ruido y determinar reversiones de tendencia en marcos de tiempo más largos.

En comparación con los promedios móviles de parámetros fijos, los modelos de aprendizaje automático pueden simular mejor las características complejas de las reversiones.

Conclusión

La lógica general de esta estrategia es clara y simple. Al reflejar el ciclo del minero a través de los propios datos de la red Bitcoin, forma señales comerciales evitando previsiones de precios complejas, lo que le da cierta confiabilidad.


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

Más.