비트코인 해시 리본 전략


생성 날짜: 2024-01-12 12:13:54 마지막으로 수정됨: 2024-01-12 12:13:54
복사: 0 클릭수: 854
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

비트코인 해시 리본 전략

개요

비트코인 해시밴드 전략은 비트코인 네트워크의 해시율 지표를 활용하여, 광부가 쇠퇴가 끝나고 회복하기 시작할 때 더 많이 하고, 광부가 쇠퇴가 시작될 때 공백을 하고, 광부 순환의 변동을 포착하여 수익을 얻는다.

전략 원칙

이 전략은 IntoTheBlock 데이터를 사용하여 거래 시각에서 비트코인의 일일 해시율을 나타냅니다. 그것은 빠른 이동 평균과 느린 이동 평균을 계산하고, 빠른 이동 평균 위에 느린 이동 평균을 통과할 때 더 많은 일을 하고, 광업자의 쇠퇴가 끝났다고 간주하고, 회복하기 시작하며, 빠른 이동 평균 아래에 느린 이동 평균을 통과할 때 빈 일을 하고, 광업자의 쇠퇴가 시작되었다고 간주합니다.

구체적으로, 전략은 두 가지 이동 평균을 정의합니다. 신호 라인 (기본 길이는 30 일) 과 긴 라인 (기본 길이는 60 일). 신호 라인을 통과하면 더 많은 신호가 발생하고, 신호 라인을 통과하면 더 많은 신호가 발생합니다. 방향 변수에 따라 전략은 상반된 신호가 발생하면 더 많은 또는 더 많은 신호가 발생합니다.

우위 분석

이 전략의 가장 큰 장점은 비트코인 네트워크 자체의 특성을 활용하여 해시율을 통해 채굴자의 팽창과 수축의 주기를 반영하여 거래 신호를 형성하는 것이다. 이것은 비트코인 가격 자체에 대한 복잡한 분석을 피하고, 네트워크 데이터를 예측 지표로 사용하는 것으로 비교적 간단하고 신뢰할 수 있다.

또 다른 장점은 변수가 적다는 것이다. 주로 빠른 평균과 느린 평균의 길이를 설정하는 것이 매우 간단하며, 지나치게 최적화되지 않는다. 또한, 이동 평균 알고리즘은 다양한 옵션을 제공하며, 이를 유연하게 조정할 수 있다.

위험 분석

이 전략의 주요 위험은 해시율 데이터 공급자의 품질에 있다. 데이터의 품질 문제가 있다면, 신호의 정확성에 심각한 영향을 미칠 수 있다. 현재 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")