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

EMA ATR
Ngày tạo: 2024-06-14 15:35:15 sửa đổi lần cuối: 2024-06-14 15:35:15
sao chép: 8 Số nhấp chuột: 351
1
tập trung vào
1166
Người theo dõi

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

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, đồng thời kết hợp các chỉ số EMA và ATR để tối ưu hóa điểm vào và thoát. Ý tưởng chính của chiến lược là: Khi giá phá vỡ đường dẫn G và làm nhiều khi ở dưới EMA, phá vỡ đường dẫn G và làm rỗng khi ở trên EMA. Đồng thời, sử dụng ATR để thiết lập điểm dừng và dừng động, dừng lỗ là 2 lần ATR và dừng lại là 4 lần ATR.

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

  1. Tính đường lên xuống của kênh G: Tính đường lên xuống của kênh G bằng cách sử dụng giá đóng cửa hiện tại với giá cao nhất trước đó và giá thấp nhất.
  2. Xác định xu hướng xu hướng: Xác định xu hướng đa không gian bằng cách quan sát mối quan hệ giữa giá và đường G.
  3. Tính toán EMA: Tính toán giá trị EMA cho chu kỳ được chỉ định.
  4. Tính ATR: Tính ATR cho chu kỳ được chỉ định.
  5. Xác định điều kiện mua và bán: kích hoạt tăng giá khi giá phá vỡ kênh G lên đường và thấp hơn EMA, kích hoạt giảm giá khi phá vỡ đường mòn và cao hơn EMA
  6. Cài đặt Stop Loss: Stop Loss là giá mở vị trí - 2 lần ATR, Stop Loss là giá mở vị trí + 4 lần ATR (hầu đầu); Stop Loss là giá mở vị trí + 2 lần ATR, Stop Loss là giá mở vị trí - 4 lần ATR (hầu đầu trống).
  7. Chiến lược kích hoạt: thực hiện các hoạt động mở vị trí tương ứng khi đáp ứng các điều kiện mua và bán, và thiết lập điểm dừng lỗ tương ứng.

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

  1. Theo dõi xu hướng: Chiến lược sử dụng kênh G để nắm bắt xu hướng thị trường một cách hiệu quả, phù hợp với tình hình xu hướng.
  2. Động thái dừng lỗ: Sử dụng ATR động điều chỉnh dừng lỗ, có thể thích ứng tốt hơn với biến động thị trường.
  3. Kiểm soát rủi ro: Cài đặt Stop Loss là 2 lần ATR, kiểm soát chặt chẽ rủi ro cho mỗi giao dịch.
  4. Dễ sử dụng và đơn giản: Chiến lược có logic rõ ràng và phù hợp với hầu hết các nhà đầu tư.

Rủi ro chiến lược

  1. Trong thị trường bất ổn, các tín hiệu giao dịch thường xuyên có thể làm tăng tổn thất.
  2. Tối ưu hóa tham số: Các loại và chu kỳ khác nhau có thể yêu cầu các tham số khác nhau, và việc sử dụng mù quáng có thể mang lại rủi ro.
  3. Sự kiện Thiên nga đen: Trong trường hợp cực đoan, giá có thể biến động mạnh và lệnh dừng có thể không được thực hiện hiệu quả.

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

  1. Trình lọc xu hướng: Tăng các điều kiện lọc xu hướng, chẳng hạn như MA giao, DMI, và giảm giao dịch trong tình huống xung đột.
  2. Tối ưu hóa tham số: Tối ưu hóa tham số cho các giống và chu kỳ khác nhau để tìm ra sự kết hợp tham số tối ưu nhất.
  3. Quản lý vị trí: Điều chỉnh vị trí theo động thái biến động của thị trường, nâng cao tỷ lệ sử dụng vốn.
  4. Chiến lược kết hợp: kết hợp chiến lược này với các chiến lược hiệu quả khác để tăng sự ổn định.

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch theo dõi xu hướng đơn giản và hiệu quả thông qua các chỉ số như kênh G, EMA, ATR. Có thể đạt được hiệu quả tốt trong tình trạng xu hướng, nhưng hoạt động chung trong tình trạng xung đột. Sau đó, chiến lược có thể được tối ưu hóa từ các khía cạnh của bộ lọc xu hướng, tối ưu hóa tham số, quản lý vị trí, chiến lược kết hợp, v.v., để nâng cao hơn nữa sức khỏe và khả năng sinh lợi của chiến lược.

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