Strategi Double Gap adalah strategi kuantitatif yang digunakan untuk perdagangan jangka pendek Bitcoin dan emas. Ini menggabungkan moving average, Bollinger Bands dan ATR stop untuk mengidentifikasi sinyal breakout dan mengelola risiko.
Strategi Double Gap menggunakan EMA cepat dan EMA lambat untuk menentukan arah tren. Sinyal beli dihasilkan ketika EMA cepat melintasi di atas EMA lambat, dan sinyal jual dihasilkan ketika EMA cepat melintasi di bawah EMA lambat.
Secara khusus, untuk menentukan sinyal beli, kedua kondisi berikut harus dipenuhi: 1) EMA cepat melintasi di atas EMA lambat; 2) Harga penutupan dekat atau di bawah Bollinger Bands atas atau tengah.
Selain itu, strategi Double Gap menggunakan indikator ATR untuk menghitung stop loss dinamis untuk mengontrol risiko setiap perdagangan.
Strategi Double Gap dapat dioptimalkan dari aspek berikut:
Strategi Double Gap secara efektif mengidentifikasi peluang jangka pendek dengan menggunakan trend berikut dan penyaringan breakout. Dengan manajemen stop loss dinamis, ini sangat cocok untuk perdagangan jangka pendek mata uang digital volatilitas tinggi dan logam mulia. peningkatan lebih lanjut dalam stabilitas dan profitabilitas dapat dicapai melalui parameter dan optimasi logika.
/*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)