
ビットコインのハッシュベルト戦略は,ビットコインネットワークのハッシュ率指標を利用し,鉱夫が衰退を終了し,回復を開始するときに多めにし,鉱夫が衰退を開始するときに空っぽにし,鉱夫の循環の変動を捕捉して利益を得る.
この戦略は,IntoTheBlockデータを使用して取引ビューでビットコインの毎日のハッシュレートを表示する.それは,高速移動平均と遅い移動平均を計算し,高速移動平均の上に遅い移動平均を横断すると,鉱夫の衰えが終了し,回復を開始すると考えられ,高速移動平均の下の遅い移動平均を横断すると,鉱夫の衰えが始まると考えられる.
具体的には,戦略は2つの移動平均を定義しています. 信号ライン (デフォルトの長さは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")