비트코인과 골드 더블 갭 전략


생성 날짜: 2024-01-23 15:28:56 마지막으로 수정됨: 2024-01-23 15:28:56
복사: 1 클릭수: 607
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

비트코인과 골드 더블 갭 전략

개요

이중 폭파 전략은 비트코인과 금의 짧은 라인 거래에 사용되는 양적 전략이다. 그것은 파격 신호를 식별하고 위험을 관리하기 위해 이동 평균, 브린 밴드 및 ATR 스톱을 결합한다.

전략 원칙

쌍방향 전략은 빠른 EMA와 느린 EMA의 교차를 사용하여 트렌드 방향을 판단한다. 빠른 EMA가 상향으로 느린 EMA를 돌파할 때 구매 신호를 생성하고, 빠른 EMA가 하향으로 느린 EMA를 돌파할 때 판매 신호를 생성한다. 가짜 돌파를 피하기 위해, 전략은 돌파 신호가 브린의 반지대 궤도 또는 중간 궤도 근처에서 발생해야 한다고 요구한다. 이것이 쌍방향 전략의 기원이 된다.

구체적으로, 구매 신호를 판단할 때, 다음 두 가지 조건이 충족되어야 한다. 1) 빠른 EMA 상에서 느린 EMA를 통과한다. 2) 종결 가격이 부린이 궤도 상 또는 중간 궤도 상에 가깝거나 낮다. 판매 신호를 판단하는 것도 비슷하다.

또한, 이중 점프 전략은 ATR 지표를 사용하여 동적 스톱로드를 계산하여 단일 거래의 위험을 제어합니다. 특정 스톱 위치는 가장 가까운 두 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)