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

G-Trend EMA ATR Chiến lược giao dịch thông minh

Tác giả:ChaoZhang, Ngày: 2024-06-14 15:35:15
Tags:EMAATR

img

Tổng quan

Chiến lược này sử dụng chỉ số G-Channel để xác định hướng xu hướng của thị trường, trong khi kết hợp các chỉ số EMA và ATR để tối ưu hóa các điểm vào và ra. Ý tưởng chính là: đi dài khi giá vượt qua dải trên của G-Channel và dưới EMA; đi ngắn khi giá vượt qua dải dưới và trên EMA. Trong khi đó, ATR được sử dụng để thiết lập mức dừng lỗ và lấy lợi nhuận năng động, với mức dừng lỗ là 2 lần ATR và lấy lợi nhuận là 4 lần ATR. Cách tiếp cận này có thể thu được nhiều lợi nhuận hơn trong các thị trường xu hướng trong khi kiểm soát chặt chẽ rủi ro.

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

  1. Tính toán dải trên và dưới của kênh G: sử dụng giá đóng hiện tại và giá cao và thấp trước đó để tính toán dải trên và dưới của kênh G.
  2. Xác định hướng xu hướng: quan sát mối quan hệ giữa giá và các dải kênh G để xác định xu hướng tăng hoặc giảm.
  3. Tính toán EMA: tính toán giá trị EMA cho khoảng thời gian được chỉ định.
  4. Tính toán ATR: tính toán giá trị ATR cho khoảng thời gian được chỉ định.
  5. Xác định các điều kiện mua/bán: kích hoạt một vị trí dài khi giá vượt qua dải trên và dưới EMA; kích hoạt một vị trí ngắn khi giá vượt qua dải dưới và trên EMA.
  6. Đặt stop-loss và take-profit: stop-loss là giá nhập cảnh - 2ATR, lấy lợi nhuận là giá nhập + 4ATR (long); stop-loss là giá nhập cảnh + 2ATR, lấy lợi nhuận là giá nhập cảnh - 4ATR (khó).
  7. Thực hiện chiến lược: khi các điều kiện mua/bán được đáp ứng, thực hiện các hoạt động vào tương ứng và thiết lập stop-loss và take-profit phù hợp.

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

  1. Theo dõi xu hướng: chiến lược nắm bắt hiệu quả xu hướng thị trường bằng cách sử dụng kênh G, phù hợp với các thị trường xu hướng.
  2. Động thái dừng lỗ và lấy lợi nhuận: ATR được sử dụng để điều chỉnh động mức dừng lỗ và lấy lợi nhuận, thích nghi tốt hơn với biến động thị trường.
  3. Kiểm soát rủi ro: Stop-loss được thiết lập ở mức 2 lần ATR, kiểm soát chặt chẽ rủi ro của mỗi giao dịch.
  4. Đơn giản và dễ sử dụng: logic chiến lược rõ ràng và thẳng thắn, phù hợp với hầu hết các nhà đầu tư.

Rủi ro chiến lược

  1. Các thị trường dao động: Trong các thị trường dao động, các tín hiệu giao dịch thường xuyên có thể dẫn đến tăng lỗ.
  2. Tối ưu hóa tham số: các công cụ giao dịch và khung thời gian khác nhau có thể yêu cầu các tham số khác nhau; áp dụng mù quáng có thể mang lại rủi ro.
  3. Các sự kiện thiên nga đen: trong điều kiện thị trường cực đoan với biến động giá mạnh mẽ, lệnh dừng lỗ có thể không thực hiện hiệu quả.

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

  1. Việc lọc xu hướng: thêm các điều kiện lọc xu hướng như giao thoa MA, DMI, v.v., để giảm giao dịch trên các thị trường khác nhau.
  2. Tối ưu hóa tham số: tối ưu hóa các tham số cho các công cụ và khung thời gian khác nhau để tìm ra sự kết hợp tham số tốt nhất.
  3. Quản lý vị trí: điều chỉnh vị trí năng động dựa trên biến động thị trường để cải thiện việc sử dụng vốn.
  4. Kết hợp chiến lược: kết hợp chiến lược này với các chiến lược hiệu quả khác để cải thiện sự ổn định.

Tóm lại

Chiến lược này xây dựng một hệ thống giao dịch theo xu hướng đơn giản và hiệu quả bằng cách sử dụng các chỉ số như G-Channel, EMA và ATR. Nó có thể đạt được kết quả tốt trong các thị trường xu hướng, nhưng hoạt động trung bình trong các thị trường khác nhau.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy ("G-Channel Trend Detection with EMA Strategy and ATR", shorttitle="G-Trend EMA ATR Strategy", overlay=true)

// Inputs for G-Channel
length = input(100, title="G-Channel Length")
src = input(close, title="Source")

// G-Channel Calculation
var float a = na
var float b = na
a := max(src, nz(a[1])) - (nz(a[1] - b[1]) / length)
b := min(src, nz(b[1])) + (nz(a[1] - b[1]) / length)
avg = (a + b) / 2

// G-Channel Signals
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
c = bullish ? color.lime : color.red

// Plot G-Channel Average
p1 = plot(avg, "Average", color=c, linewidth=1, transp=90)
p2 = plot(close, "Close price", color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)

// Show Buy/Sell Labels
showcross = input(true, title="Show Buy/Sell Labels")
plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1)

// Inputs for EMA
emaLength = input(50, title="EMA Length")
emaValue = ema(close, emaLength)

// Plot EMA
plot(emaValue, title="EMA", color=color.blue, linewidth=1)

// ATR Calculation
atrLength = input(14, title="ATR Length")
atrValue = atr(atrLength)

// Strategy Conditions
buyCondition = bullish and close < emaValue
sellCondition = not bullish and close > emaValue

// Stop Loss and Take Profit Levels
longStopLoss = close - 2 * atrValue
longTakeProfit = close + 4 * atrValue
shortStopLoss = close + 2 * atrValue
shortTakeProfit = close - 4 * atrValue

// Execute Strategy with ATR-based stop loss and take profit
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss, limit=longTakeProfit)

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Buy/Sell Signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", offset=-1)
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", offset=-1)


Có liên quan

Thêm nữa