Tài nguyên đang được tải lên... tải...

TD Sequential Breakout và Retracement Buy/Sell Strategy

Tác giả:ChaoZhang, Ngày: 2024-04-01 11:23:26
Tags:

img

Tổng quan

Chiến lược này là một chiến lược mua/bán dựa trên chuỗi TD. Nó xác định các điểm đảo ngược xu hướng tiềm năng bằng cách nhận ra nến thứ 8 và thứ 9 trong chuỗi TD. Ngoài ra, chiến lược xem xét việc đảo ngược sau khi chuỗi TD phá vỡ để cải thiện độ chính xác của các điểm nhập cảnh. Hơn nữa, nó sử dụng đường trung bình động như một công cụ phụ trợ để xác định xu hướng.

Nguyên tắc chiến lược

  1. Tính toán chuỗi TD: Xác định liệu có 8 hoặc 9 nến liên tiếp lên (dưới) bằng cách so sánh giá đóng hiện tại với giá đóng 4 nến trước.
  2. Xác định điểm mua / bán: Khi có 8 hoặc 9 nến liên tiếp lên (dưới), hãy đánh dấu các điểm mua (mua) tiềm năng ở nến thứ 8 hoặc 9.
  3. Xem xét việc khôi phục: Sau khi chuỗi TD đột phá, quan sát xem giá có quay trở lại hay không. Nếu tình trạng đột phá được duy trì ở nến thứ 13, 14, 15 hoặc 16, sự đột phá được coi là hợp lệ; nếu không, nó được coi là không hợp lệ.
  4. Xác định xu hướng: Sử dụng mối quan hệ giữa các đường trung bình động 10 ngày và 20 ngày để xác định hướng xu hướng hiện tại, phục vụ như một tham chiếu cho các quyết định mua / bán.

Ưu điểm chiến lược

  1. Xác định hiệu quả các điểm đảo ngược xu hướng tiềm năng, đặc biệt là trong các xu hướng mạnh, nơi các điểm bước vào khôi phục sau khi đột phá chuỗi TD thường mang lại tỷ lệ rủi ro-lợi nhuận tốt.
  2. Bằng cách xem xét việc khôi phục lại sau khi đột phá chuỗi TD, chiến lược có thể lọc hiệu quả một số tín hiệu sai và cải thiện độ chính xác của các điểm đầu vào.
  3. Việc sử dụng đường trung bình động giúp xác định hướng xu hướng hiện tại, làm cho chiến lược hiệu quả hơn khi giao dịch theo hướng xu hướng.

Rủi ro chiến lược

  1. Trong thị trường hỗn loạn, chuỗi TD có thể tạo ra nhiều tín hiệu sai, dẫn đến giao dịch thường xuyên và mất vốn.
  2. Chiến lược nhạy cảm với lựa chọn tham số và môi trường thị trường khác nhau có thể yêu cầu tối ưu hóa và điều chỉnh tham số.
  3. Chiến lược này thiếu cơ chế dừng lỗ rõ ràng và có thể bị giảm đáng kể khi thị trường trải qua biến động mạnh mẽ.

Hướng dẫn tối ưu hóa chiến lược

  1. Đưa ra nhiều chỉ số kỹ thuật hơn, chẳng hạn như RSI và MACD, để cải thiện độ tin cậy tín hiệu và hiệu ứng lọc.
  2. Đối với các retracement sau khi đột phá chuỗi TD, hãy xem xét việc đưa ra các tiêu chí đánh giá linh hoạt hơn, chẳng hạn như sử dụng các chỉ số như ATR để điều chỉnh năng động độ khoan dung cho các retracement.
  3. Về việc xác định xu hướng, hãy thử sử dụng nhiều sự kết hợp thời gian hơn, chẳng hạn như mối quan hệ giữa các đường trung bình động ngắn, trung bình và dài hạn, để có được đánh giá xu hướng toàn diện hơn.
  4. Thiết lập một cơ chế dừng lỗ rõ ràng, chẳng hạn như dừng lỗ năng động dựa trên ATR, để kiểm soát lỗ tối đa cho mỗi giao dịch.

Tóm lại

Bằng cách kết hợp các chuỗi TD và trung bình động, chiến lược này có thể xác định hiệu quả các điểm đảo ngược xu hướng tiềm năng và cải thiện độ chính xác của các điểm đầu vào bằng cách xem xét các tình huống khôi phục. Mặc dù chiến lược có một số rủi ro và hạn chế, nó có thể được nâng cao hơn nữa về độ bền và lợi nhuận bằng cách giới thiệu nhiều chỉ số kỹ thuật hơn, tối ưu hóa các phương pháp xác định xu hướng và thiết lập các cơ chế dừng lỗ rõ ràng.


/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Dipak Shankarrao Chavhan", shorttitle="Dipak Chavhan", overlay=true, pyramiding=0, default_qty_value=10)
Numbers = input(true)
SR = input(true)

var int TD = 0
var int TS = 0
var int TDUp = 0
var int TDDn = 0

TD := close > close[4] ? TD[1] + 1 : 0
TS := close < close[4] ? TS[1] + 1 : 0
TDUp := TD - valuewhen(TD < TD[1], TD, 1)
TDDn := TS - valuewhen(TS < TS[1], TS, 1)

plotshape(Numbers ? (TDUp == 8 ? true : na) : na, style=shape.triangleup, text="8", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDUp == 9 ? true : na) : na, style=shape.triangleup, text="9", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDDn == 8 ? true : na) : na, style=shape.triangledown, text="8", color=color.new(color.red, 0), location=location.abovebar)
plotshape(Numbers ? (TDDn == 9 ? true : na) : na, style=shape.triangledown, text="9", color=color.new(color.red, 0), location=location.abovebar)

priceflip = barssince(close < close[4])
sellsetup = close > close[4] and priceflip
sell = sellsetup and barssince(priceflip != 9)
sellovershoot = sellsetup and barssince(priceflip != 13)
sellovershoot1 = sellsetup and barssince(priceflip != 14)
sellovershoot2 = sellsetup and barssince(priceflip != 15)
sellovershoot3 = sellsetup and barssince(priceflip != 16)
priceflip1 = barssince(close > close[4])
buysetup = close < close[4] and priceflip1
buy = buysetup and barssince(priceflip1 != 9)
buyovershoot = buysetup and barssince(priceflip1 != 13)
buyovershoot1 = buysetup and barssince(priceflip1 != 14)
buyovershoot2 = buysetup and barssince(priceflip1 != 15)
buyovershoot3 = buysetup and barssince(priceflip1 != 16)
TDbuyh = valuewhen(buy, high, 0)
TDbuyl = valuewhen(buy, low, 0)
TDsellh = valuewhen(sell, high, 0)
TDselll = valuewhen(sell, low, 0)
plot(SR ? (TDbuyh ? TDbuyl : na) : na, style=plot.style_circles, linewidth=2, color=color.red)
plot(SR ? (TDselll ? TDsellh : na) : na, style=plot.style_circles, linewidth=2, color=color.lime)

sma1 = sma(close, 10)
sma2 = sma(close, 20)



if TDbuyh
    strategy.entry("Enter Long", strategy.long)
else if TDselll
    strategy.entry("Enter Short", strategy.short)

Thêm nữa