Chiến lược Bitcoin và vàng Double Gap

Tác giả:ChaoZhang, Ngày: 2024-01-23 15:28:56
Tags:

img

Tổng quan

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 logic

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 Double Gap xuất phát.

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.

Ưu điểm

  • Xác định sự đột phá có khả năng cao bằng cách sử dụng bộ lọc kép
  • EMA nhanh chóng đánh giá xu hướng chính, Bollinger Bands lọc các sự đột phá sai
  • Dừng ATR năng động kiểm soát hiệu quả rủi ro thương mại duy nhất
  • Thích hợp cho giao dịch ngắn hạn của các sản phẩm biến động cao như BTC

Rủi ro

  • Các thông số EMA nhanh và chậm không đúng có thể tạo ra tín hiệu sai quá mức
  • Các thông số Bollinger Bands không phù hợp cũng sẽ làm giảm đáng kể hiệu quả lọc
  • Đặt dừng lỗ quá chặt tăng khả năng nó được kích hoạt
  • Cần tần suất giao dịch cao, không phù hợp với các tài khoản nhỏ

Tối ưu hóa

Chiến lược Double Gap có thể được tối ưu hóa từ các khía cạnh sau:

  1. Tối ưu hóa các thông số trung bình động để tìm kết hợp EMA nhanh và chậm tốt nhất
  2. Tối ưu hóa các thông số Bollinger Bands để giảm tỷ lệ phá vỡ sai
  3. Điều chỉnh nhân dừng ATR theo các sản phẩm và chế độ thị trường khác nhau
  4. Thêm tín hiệu nhập lại sau khi dừng lại
  5. Kết hợp với các chỉ số khác như RSI, KD vv như xác nhận

Kết luận

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)


Thêm nữa