Chiến lược Double Gap là một chiến lược định lượng được sử dụng cho giao dịch ngắn hạn của Bitcoin và vàng. Nó kết hợp các đường trung bình động, Bollinger Bands và ATR dừng để xác định các tín hiệu đột phá và quản lý rủi ro.
Chiến lược Double Gap sử dụng EMA nhanh và EMA chậm để xác định hướng xu hướng. Một tín hiệu mua được tạo ra khi EMA nhanh vượt qua trên EMA chậm, và một tín hiệu bán được tạo ra khi EMA nhanh vượt qua dưới EMA chậm. Để tránh đột phá sai, chiến lược yêu cầu sự giao thoa xảy ra gần Bollinger Bands trên hoặc giữa. Đây là nơi tên
Cụ thể, để xác định tín hiệu mua, cả hai điều kiện sau đây cần được đáp ứng: 1) EMA nhanh vượt qua trên EMA chậm; 2) Giá đóng gần hoặc dưới Bollinger Bands trên hoặc giữa.
Ngoài ra, chiến lược Double Gap sử dụng chỉ số ATR để tính toán stop loss động để kiểm soát rủi ro của mỗi giao dịch.
Chiến lược Double Gap có thể được tối ưu hóa từ các khía cạnh sau:
Chiến lược Double Gap xác định hiệu quả các cơ hội ngắn hạn bằng cách sử dụng cả việc theo dõi xu hướng và lọc đột phá. Với quản lý dừng lỗ năng động, nó phù hợp với giao dịch ngắn hạn của các loại tiền kỹ thuật số biến động cao và kim loại quý.
/*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)