이중 간격 전략 (Double Gap strategy) 은 비트코인과 금의 단기 거래에 사용되는 양적 전략이다. 이 전략은 이동 평균, 볼링거 밴드 및 ATR 스톱을 결합하여 브레이크 아웃 신호를 식별하고 위험을 관리한다.
이중 간격 전략은 트렌드 방향을 결정하기 위해 빠른 EMA와 느린 EMA 크로스오버를 사용합니다. 빠른 EMA가 느린 EMA를 넘을 때 구매 신호가 생성되며 빠른 EMA가 느린 EMA를 넘을 때 판매 신호가 생성됩니다. 잘못된 브레이크오버를 피하기 위해 전략은 크로스오버가 상부 또는 중부 볼링거 밴드 근처에서 일어나도록 요구합니다. 여기서
특히, 구매 신호를 결정하려면 다음 두 가지 조건이 모두 충족되어야합니다: 1) 빠른 EMA가 느린 EMA보다 높습니다; 2) 폐쇄 가격은 상부 또는 중부 볼링거 밴드 근처 또는 아래에 있습니다. 판매 신호를 판단하는 것은 비슷합니다. 빠른 EMA가 느린 EMA 아래를 넘어서 하부 또는 중부 볼링거 밴드 근처에 있어야합니다.
또한, 이중 간격 전략은 각 거래의 위험을 제어하기 위해 동적 스톱 손실을 계산하기 위해 ATR 지표를 사용합니다. 특정 스톱 레벨은 가장 최근의 두 바 마이너스 N 곱하기 ATR의 가장 낮은 수준입니다.
이중 격차 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
이중 격차 전략은 트렌드 추적 및 브레이크아웃 필터링을 모두 사용하여 단기 기회를 효과적으로 식별합니다. 동적 스톱 로스 관리를 통해 높은 변동성 디지털 통화 및 귀금속의 단기 거래에 적합합니다. 매개 변수 및 논리 최적화로 안정성과 수익성이 더욱 향상 될 수 있습니다.
/*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)