Chiến lược đảo ngược hai bóng là một chiến lược giao dịch ngắn hạn dựa trên các mô hình nến. Nó xác định các cơ hội đảo ngược tiềm năng bằng cách phát hiện mô hình nến đặc biệt mà hai nến liên tiếp không có bóng. Chiến lược đơn giản và trực tiếp để thực hiện nhưng cũng có một số rủi ro cần lưu ý.
Lý thuyết cốt lõi của chiến lược này là xác định mô hình
Theo lý thuyết phân tích kỹ thuật, mô hình bóng kép này thường gợi ý một sự đảo ngược xu hướng sắp xảy ra. Giá dao động trong phạm vi rất hẹp trên hai ngọn nến liên tiếp cho thấy sự cân bằng của lực lượng mua và bán, gợi ý một sự đảo ngược có khả năng.
Sau khi phát hiện ra mô hình bóng kép, chiến lược sẽ đi dài hoặc ngắn tại nến tiếp theo mở dựa trên đóng cửa trước đó và đóng vị trí sau một số thanh được thiết lập.
Logic chiến lược đơn giản và dễ hiểu, với nhận dạng mẫu đơn giản dễ thực hiện.
Nó sử dụng mô hình đảo ngược bóng kép cổ điển có một số lý do phân tích kỹ thuật.
Giao dịch không thường xuyên giúp giảm chi phí và rủi ro.
Dễ dàng thêm các tính năng backtesting và tối ưu hóa các thông số.
Giao dịch mô hình dựa trên thống kê biểu đồ lịch sử và xác suất, và sai lệch có thể xảy ra.
Mặc dù bóng kép gợi ý sự đảo ngược, sự đảo ngược thực tế có thể không xảy ra hoặc duy trì.
Khu vực thu lợi nhuận cố định có thể không đối phó tốt với các thị trường chuyển động nhanh.
Nhìn vào thông tin hạn chế của nến có thể dẫn đến việc tham gia quá nhiệt tình.
Bao gồm các chỉ số xu hướng để tránh giao dịch chống xu hướng.
Sử dụng các mục chờ xác nhận để xác nhận sự đảo ngược thực tế.
Đặt stop loss động dựa trên ATR thay vì thời gian cố định.
Sử dụng máy học để xác định mô hình bóng kép nào đáng tin cậy hơn.
Chiến lược đảo ngược bóng kép tận dụng khái niệm kinh doanh mô hình cổ điển theo cách đơn giản và trực quan, phù hợp cho người mới bắt đầu trong khi cũng phục vụ như một thành phần mô-đun cho algos. Nhưng quản lý rủi ro vẫn rất cần thiết, và chiến lược có thể được cải thiện bằng cách tối ưu hóa thời gian nhập và phương pháp lấy lợi nhuận. Nhìn chung, ưu và nhược điểm của chiến lược này khá rõ ràng để tham khảo.
/*backtest start: 2023-10-30 00:00:00 end: 2023-11-06 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("No Shadow Candles", overlay=true) //set inputs bars_until_close_trade = input(1,"Bars Until Close", minval = 1) backtest_option = input(true,"Backtest on Twice alert?", bool) //set conditions up = close > close[1] and low >= open and high <= close down = close < close[1] and low >= close and high <= open up2 = (close > close[1] and low >= open and high <= close) and (close[1] > close[2] and low[1] >= open[1] and high[1] <= close[1]) down2 = (close < close[1] and low >= close and high <= open) and (close[1] < close[2] and low[1] >= close[1] and high[1] <= open[1]) close_trade = barssince(up or down) == bars_until_close_trade close_trade2 = barssince(up2 or down2) == bars_until_close_trade //plot indicators plotshape(up,"Up Marker", shape.triangleup, location.belowbar, color = olive, size = size.tiny, transp = 50) plotshape(down,"Down Marker", shape.triangledown, location.abovebar, color = orange, size = size.tiny, transp = 50) plotshape(up2,"Up Twice Marker", shape.triangleup, location.belowbar, color = white, size = size.small) plotshape(down2,"Down Twice Marker", shape.triangledown, location.abovebar, color = white, size = size.small) plotshape(close_trade,"Close Trigger", shape.circle, location.belowbar, color = fuchsia, size = size.tiny, transp = 50) plotshape(close_trade2,"Close Trigger2 (After Twice Alert)", shape.circle, location.belowbar, color = red, size = size.small) //Strategy Testing // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop //Entry and Close settings if testPeriod() and backtest_option == true strategy.entry("up2", true, when = up2, limit = close) strategy.close("up2", when = close_trade) if testPeriod() and backtest_option == false strategy.entry("up", true, when = up, limit = close) strategy.close("up", when = close_trade)