Стратегия Биткойн-хеш-ленты

Автор:Чао Чжан, Дата: 2024-01-12 12:13:54
Тэги:

img

Обзор

Стратегия BTC Hash Ribbons использует индикатор хэш-коэффициента сети Bitcoin, чтобы идти в длинный путь, когда завершается капитуляция майнеров и начинается восстановление, и идти в короткий путь, когда майнеры начинают капитулировать, чтобы извлечь выгоду из колебаний цикла майнеров.

Логика стратегии

Эта стратегия использует данные IntoTheBlock для отображения ежедневного хэш-скорости биткоина в торговом виде. Она рассчитывает быстрый скользящий средний и медленный скользящий средний. Когда быстрый скользящий средний пересекает медленный скользящий средний, он длится, полагая, что капитуляция майнера закончилась и восстановление началось. Когда быстрый скользящий средний пересекает ниже медленного скользящего среднего, он становится коротким, полагая, что майнеры начинают капитулировать.

В частности, стратегия определяет две скользящие средние линии: SignalLine (должина по умолчанию 30 дней) и LongLine (длина по умолчанию 60 дней). Когда SignalLine пересекает LongLine, это считается длинным сигналом; когда SignalLine пересекает LongLine, это считается коротким сигналом. Согласно параметру направления, стратегия откроет длинные или короткие позиции, когда появится соответствующий сигнал.

Анализ преимуществ

Самое большое преимущество этой стратегии заключается в том, что она использует характеристики самой сети Биткоина, отражая циклы расширения и сокращения майнеров через хэш-скорость для генерации торговых сигналов.

Еще одним преимуществом является небольшое количество параметров. Основными являются только настройки длины быстрых и медленных скользящих средних, что очень просто без перестановки. В то же время для выбора скользящей средней предоставляются несколько алгоритмов, позволяющих гибкую корректировку.

Анализ рисков

Основным риском этой стратегии является качество поставщика данных с хэш-скоростью. Если есть проблемы с качеством данных, это серьезно повлияет на точность сигналов. В настоящее время IntoTheBlock предоставляет качественные данные, но его устойчивость также требует внимания.

Другим риском является системный риск самого рынка. Даже если характеристики расширения и сокращения майнеров будут зафиксированы, он все равно может понести убытки в случае больших колебаний на общем рынке. Для определения системного риска необходимо отслеживать больше рыночных показателей.

Руководство по оптимизации

Подумайте о сочетании с ценовыми индикаторами, чтобы повысить уверенность при открытии позиций, например, сочетание показателей K-линейного паттерна, показателей скользящей средней, и т. Д. Открывайте позиции только тогда, когда оба указывают на длинные или короткие сигналы.

Например, используйте еженедельные или ежемесячные индикаторы, чтобы отфильтровать слишком много шума и определить обратные тенденции в более длительные временные рамки.

Попробуйте модели машинного обучения для определения ключевых точек обратного движения хэш-скорости.

Заключение

Общая логика этой стратегии ясна и проста. Отражая цикл майнера через собственные данные сети Биткойн, он формирует торговые сигналы, избегая сложных прогнозов цен, придавая ему определенную надежность. Но для уменьшения воздействия рыночных системных рисков и повышения стабильной прибыльности все еще необходима дальнейшая оптимизация и комбинация.


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

Больше