
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.
Lập luận cốt lõi của chiến lược này là:
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
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
Đị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 đó
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)
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)
Thiết lập giao dịch vào và ra khi tín hiệu mua và bán xảy ra
Sử dụng hàm barcolor để đánh dấu màu của đường K dựa trên vị trí
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.
Chiến lược này có những ưu điểm sau:
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á
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ả
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
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
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
Logic của chiến lược đơn giản, rõ ràng, dễ hiểu và sửa đổi
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.
Chiến lược này cũng có những rủi ro:
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
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
Không tính đến chi phí, phí giao dịch thực tế sẽ ảnh hưởng đến lợi nhuận
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
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ố
Có thể bị mắc kẹt trong một thị trường bất ổn
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.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Đ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
Kiểm tra các chỉ số khác nhau để lọc thêm các tín hiệu giả
Tăng các chỉ số đánh giá xu hướng, xác định xu hướng và sau đó nhập học
Thiết lập kiểm soát vị trí, hạn chế số lượng vị trí một chiều
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.
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ý
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ố
Cài đặt một phần dừng hoặc di chuyển dừng
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.
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.
/*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)