Chiến lược mua và bán điểm dựa trên TD Sequential Breakouts và Retracements


Ngày tạo: 2024-04-01 11:23:26 sửa đổi lần cuối: 2024-04-01 11:23:26
sao chép: 3 Số nhấp chuột: 755
1
tập trung vào
1617
Người theo dõi

Chiến lược mua và bán điểm dựa trên TD Sequential Breakouts và Retracements

Tổng quan

Chiến lược này là một chiến lược điểm mua và bán phá vỡ và rút lui dựa trên chuỗi TD. Nó xác định điểm đảo ngược xu hướng tiềm năng bằng cách xác định các đường K gốc 8 và 9 trong chuỗi TD.

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

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

Lợi thế chiến lược

  1. Có khả năng 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 xu hướng mạnh, các điểm thâm nhập thu hồi sau khi đột phá chuỗi TD thường có tỷ lệ lợi nhuận rủi ro tốt hơn.
  2. Bằng cách xem xét sự rút lui sau khi đột phá chuỗi TD, một số tín hiệu giả có thể được lọc một cách hiệu quả và tăng độ chính xác của điểm vào.
  3. Việc sử dụng đường trung bình di chuyển có thể 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 hoạt động theo chiều hướng trôi chảy.

Rủi ro chiến lược

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

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

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

Tóm tắt

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 thông qua kết hợp chuỗi TD và đường trung bình di chuyển và cải thiện độ chính xác của điểm nhập cảnh bằng cách xem xét các trường hợp rút lui. Mặc dù có một số rủi ro và hạn chế đối với chiến lược, nhưng các biện pháp tối ưu hóa như giới thiệu nhiều chỉ số kỹ thuật, tối ưu hóa phương pháp đánh giá xu hướng và thiết lập cơ chế dừng lỗ rõ ràng có thể làm tăng thêm sức mạnh và khả năng sinh lời của chiến lược.

Mã nguồn chiến lược
/*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)