Chiến lược dừng lỗ động Golden Cross và Death Cross


Ngày tạo: 2023-11-01 13:46:28 sửa đổi lần cuối: 2023-11-01 13:46:28
sao chép: 1 Số nhấp chuột: 707
1
tập trung vào
1617
Người theo dõi

Chiến lược dừng lỗ động Golden Cross và Death Cross

Tổng quan

Chiến lược này quản lý rủi ro bằng cách tính toán chỉ số ATR làm đường dừng, tạo ra tín hiệu mua khi giá vượt qua EMA, tạo ra tín hiệu bán khi giá vượt qua EMA và sử dụng dừng động.

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

Lập luận cốt lõi của chiến lược này là:

  1. Tính toán chỉ số ATR làm đường dừng, giá trị ATR được sử dụng để tính toán khoảng cách dừng nLoss

  2. Theo Heikin Ashi chọn lựa chọn h để xác định nguồn giá, mặc định sử dụng giá đóng cửa, nếu chọn Heikin Ashi thì sử dụng giá đóng cửa của thùng

  3. Định nghĩa xATRTrailingStop là một đường dừng theo dõi động, xác định đường dừng của đường K hiện tại dựa trên giá so với đường dừng của đường K trước đó

  4. Xác định vị trí Pos, đặt thành 1 (thông khi giá vượt qua đường dừng) và 1 (thông khi giá vượt qua đường dừng) hoặc 0 (thông khi giá vượt qua đường dừng)

  5. Tính trung bình đường EMA của một đường K, xác định các chỉ số trên đứt (tín hiệu mua) và dưới đứt (tín hiệu bán)

  6. Thiết lập giao dịch vào và ra khi tín hiệu mua và bán xảy ra

  7. Sử dụng hàm barcolor để đánh dấu màu của đường K dựa trên vị trí

  8. Sử dụng plotshape để đánh dấu tín hiệu khi mua và bán

Chiến lược này quản lý rủi ro thông qua dừng động ATR, có thể nhập vào khi xu hướng xuất hiện và dừng lại khi đường dừng bị kích hoạt.

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

Chiến lược này có những ưu điểm sau:

  1. Sử dụng ATR động dừng, có thể điều chỉnh khoảng cách dừng tùy theo mức độ biến động của thị trường, trong khi bảo đảm dừng cũng tránh dừng quá mạnh do biến động ngắn hạn của giá

  2. Sử dụng EMA để tạo tín hiệu giao dịch, có thể lọc ra một số giao dịch không cần thiết từ các đột phá giả

  3. Cho phép chọn Heikin Ashi để làm nguồn giá, có thể lọc tiếng ồn để nhận ra xu hướng

  4. Quản lý vị trí rõ ràng, thực hiện nhiều vị trí trống rõ ràng, tránh theo dõi các giao dịch gây ra lỗ hổng thường xuyên

  5. Dấu hiệu giao dịch và dừng lỗ được hiển thị trực quan bằng đường vẽ, đánh dấu và màu sắc

  6. Logic của chiến lược đơn giản, rõ ràng, dễ hiểu và sửa đổi

  7. Có thể tùy chỉnh chu kỳ ATR và ATR Stop Loss Coefficient để phù hợp với các môi trường thị trường khác nhau

Nhìn chung, chiến lược này tích hợp các công nghệ theo dõi xu hướng và dừng động để xác định hiệu quả các xu hướng và quản lý rủi ro, phù hợp cho các giao dịch theo dõi xu hướng đường dài.

Rủi ro chiến lược

Chiến lược này cũng có những rủi ro:

  1. EMA trung bình tạo ra tín hiệu giao dịch có thể bị trễ, bỏ lỡ cơ hội đường ngắn

  2. Khoảng cách dừng lỗ được quyết định bởi ATR, dễ bị dừng lại trong các biến động thị trường

  3. Không tính đến chi phí, phí giao dịch thực tế sẽ ảnh hưởng đến lợi nhuận

  4. Không có kiểm soát vị thế thích hợp, cần cải thiện quản lý tài chính

  5. Hiệu quả phụ thuộc vào tối ưu hóa tham số, tùy theo thị trường cần điều chỉnh tham số

  6. Có thể bị mắc kẹt trong một thị trường bất ổn

  7. Cần giám sát, can thiệp hoặc dừng chiến lược kịp thời

Có thể giảm rủi ro bằng cách tối ưu hóa các tham số thích hợp, thiết lập kiểm soát vị trí, kết hợp với các tín hiệu lọc chỉ số khác. Trong giao dịch trực tiếp, hãy kiểm soát quy mô vị trí, liên tục giám sát hiệu quả chiến lược, can thiệp hoặc đóng cửa nếu cần thiết.

Hướng tối ưu hóa

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

  1. Điều chỉnh tham số ATR để hợp lý hóa khoảng cách dừng lỗ trong các thị trường khác nhau

  2. Kiểm tra các chỉ số khác nhau để lọc thêm các tín hiệu giả

  3. Tăng các chỉ số đánh giá xu hướng, xác định xu hướng và sau đó nhập học

  4. Thiết lập kiểm soát vị trí, hạn chế số lượng vị trí một chiều

  5. Tăng điều kiện mở vị trí, như khối lượng giao dịch, giá đóng cửa xa đường trung bình, v.v.

  6. Cân nhắc các yếu tố chi phí, thiết lập khoảng cách dừng lỗ theo phí xử lý

  7. Tối ưu hóa thời gian mua và bán, kết hợp nhiều tín hiệu và chỉ số

  8. Cài đặt một phần dừng hoặc di chuyển dừng

  9. Thêm chức năng tối ưu hóa tham số, tự động tối ưu hóa tham số thử nghiệm

Bằng cách sử dụng nhiều chỉ số kỹ thuật và phương pháp tối ưu hóa, chiến lược này có thể được hoàn thiện hơn nữa để có được hiệu quả ổn định hơn trong nhiều thị trường.

Tóm tắt

Chiến lược này tích hợp các kỹ thuật theo dõi xu hướng và dừng động, có các ưu điểm như hiệu quả dừng lỗ, theo dõi trơn tru, dễ hiểu và tối ưu hóa, phù hợp với mô hình theo dõi xu hướng đường dài. Nhưng cũng cần chú ý đến kiểm soát rủi ro, tham số tối ưu hóa. Nếu sử dụng chiến lược này một cách tốt, có thể đạt được hiệu quả tốt trong thị trường có xu hướng rõ ràng. Nói chung, chiến lược này cung cấp một chiến lược giao dịch ngắn gọn và thực tế để theo dõi xu hướng và quản lý rủi ro.

Mã nguồn chiến lược
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 
sell = src < xATRTrailingStop and below

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

strategy.entry("long",   true, when = buy)
strategy.entry("short", false, when = sell)