ビットコインとゴールドのダブルギャップ戦略


作成日: 2024-01-23 15:28:56 最終変更日: 2024-01-23 15:28:56
コピー: 1 クリック数: 607
1
フォロー
1617
フォロワー

ビットコインとゴールドのダブルギャップ戦略

概要

二重跳躍戦略は,ビットコインとゴールドのショートライン取引に使用される量化戦略である.それは,ブリン帯とATRのストップを組み合わせて,破綻信号を認識し,リスクを管理する.

戦略原則

二重跳躍戦略は,速いEMAと遅いEMAの交差を用い,トレンドの方向を判断する.速いEMAが上方突破すると,買いの信号が生成され,速いEMAが下方突破すると,売りの信号が生成される.偽突破を避けるために,戦略は,突破の信号がブリン帯上線軌道または中線軌道近くで発生しなければならないことを要求する.これがの二重跳躍の起源である.

具体的には,買入シグナルを判断する際には,以下の2つの条件を満たす必要がある:1) 急速EMAの上を通過する慢速EMA;2) 閉盘価格がブリン帯上軌道または中軌道に近いまたはそれ以下である.売出シグナルを判断する際にも,同様に,迅速EMAの下を通過する慢速EMAとブリン帯下軌道または中軌道に近い必要がある.

さらに,二重跳躍戦略は,単一取引のリスクを制御するためにATR指標を使用して動的ストップを計算する. 具体的なストップ位置は,最近の2つのK線の最低点とN倍ATRを引く.

戦略的優位性

  • ダブルフィルタリング条件を用いて高確率の突破信号を識別
  • EMAのクロスオーバーの判断で,ブリンが偽の突破を出した.
  • ダイナミックATRストップは,単一取引のリスクを効果的に制御します.
  • ビットコインなどの高変動指標に適したショートライン取引

戦略リスク

  • ラストEMAとラストEMAのパラメータを正しく設定しない場合,大量の偽信号が生成される
  • ブリン帯のパラメータが正しくない場合, フィルタリング効果が大きく低下します.
  • 停止位置を過密に設定すると,停止が起動する確率は増加する可能性があります.
  • ショートライン取引は取引頻度が高く,小規模な投資家に適していません.

戦略の最適化

双跳び戦略は,以下の点で最適化できます.

  1. 移動平均のパラメータを最適化して,最適な遅いEMA長さの組み合わせを探します.
  2. ブリン帯のパラメータを最適化し,偽突破率を低減する
  3. 異なる取引品種と市場状況に応じて調整されたATRのストップの倍数
  4. 追加再入力信号,即ち,止損退出後に再入力
  5. RSI,KDなどの他の指標と組み合わせて

要約する

二重跳躍戦略は,トレンド追跡と突破フィルターを同時に利用し,ショートラインの機会を効果的に識別できます.ダイナミックなストップ・ロズ・マネジメントリスクと組み合わせて,波動率が高い仮想通貨と貴金属品種のショートライン取引に適しています.パラメータ最適化とルール最適化により,戦略の安定性と収益性をさらに向上させることができます.

ストラテジーソースコード
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 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/
// © singhak8757

//@version=5
strategy("Bitcoin and Gold 5min Scalping Strategy2.0", overlay=true)


// Input parameters
fastLength = input(5, title="Fast EMA Length")
slowLength = input(13, title="Slow EMA Length")
bollingerLength = input(20, title="Bollinger Band Length")
bollingerMultiplier = input(2, title="Bollinger Band Multiplier")
stopLossMultiplier = input(1, title="Stop Loss Multiplier")

// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)

// Calculate Bollinger Bands
basis = ta.sma(close, bollingerLength)
upperBand = basis + bollingerMultiplier * ta.stdev(close, bollingerLength)
lowerBand = basis - bollingerMultiplier * ta.stdev(close, bollingerLength)

// Buy condition
buyCondition = ta.crossover(fastEMA, slowEMA) and (close <= upperBand or close <= basis)

// Sell condition
sellCondition = ta.crossunder(fastEMA, slowEMA) and (close >= lowerBand or close >= basis)

// Calculate stop loss level
stopLossLevel = ta.lowest(low, 2)[1] - stopLossMultiplier * ta.atr(14)

// Plot EMAs
plot(fastEMA, color=color.rgb(0, 156, 21), title="Fast EMA")
plot(slowEMA, color=color.rgb(255, 0, 0), title="Slow EMA")

// Plot Bollinger Bands
plot(upperBand, color=color.new(#000000, 0), title="Upper Bollinger Band")
plot(lowerBand, color=color.new(#1b007e, 0), title="Lower Bollinger Band")

// Plot Buy and Sell signals
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)

// Plot Stop Loss level
plot(stopLossLevel, color=color.orange, title="Stop Loss Level")

// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Stop Loss/Close", from_entry="Buy", loss=stopLossLevel)
strategy.close("Sell", when = sellCondition)