Chiến lược ATR EMA của kênh Keltner

EMA ATR
Ngày tạo: 2024-06-03 10:39:20 sửa đổi lần cuối: 2024-06-03 10:39:20
sao chép: 0 Số nhấp chuột: 617
1
tập trung vào
1617
Người theo dõi

Chiến lược ATR EMA của kênh Keltner

Tổng quan

Chiến lược này dựa trên chỉ số Keltner channel, sử dụng chỉ số trung bình di chuyển ((EMA) và độ dao động thực tế trung bình ((ATR) để xây dựng một đường đi lên xuống, đặt nhiều khi giá phá vỡ đường đi xuống, và đóng cửa khi giá phá vỡ đường đi lên. Chiến lược này cố gắng nắm bắt các vùng dao động của giá, và thu lợi nhuận khi giá phá vỡ đường đi lên.

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

  1. Tính toán EMA của một chu kỳ được chỉ định như là quỹ đạo trung tâm của kênh Keltner.
  2. Tính ATR cho chu kỳ được chỉ định, sau đó nhân với một số nhân như đường dẫn lên xuống.
  3. Khi giá đóng cửa giảm xuống đường, hãy mở thêm và ghi lại giá mở.
  4. Khi giá mở cửa phá vỡ đường ray trên, nó sẽ bị phá vỡ.
  5. Trong trạng thái mở, nếu giá mở cao hơn giá trên đường ray, bạn sẽ xóa nhiều lệnh.

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

  1. Khả năng tự điều chỉnh độ dao động của giá. Vì kênh Keltner sử dụng ATR để xây dựng lên và xuống đường, ATR có thể đo lường tỷ lệ dao động của giá, do đó, khi tỷ lệ dao động lớn hơn, chiều rộng của kênh sẽ tăng tương ứng, do đó làm giảm hiệu quả chi phí của giao dịch thường xuyên.
  2. Có tính năng logic rõ ràng và đơn giản, dễ hiểu và thực hiện. Các chỉ số được sử dụng trong chiến lược này là đơn giản, logic cốt lõi cũng dễ nắm bắt hơn.
  3. Có một số khả năng theo dõi xu hướng. Trong xu hướng tăng, chiến lược này có thể giữ nhiều vị trí đầu, cho đến khi giá phá vỡ đường ray.

Rủi ro chiến lược

  1. Thiếu cơ chế dừng lỗ rõ ràng. Chiến lược này không đặt điểm dừng lỗ sau khi mở vị trí, điều này có thể dẫn đến việc chịu được sự rút lui lớn trong trường hợp ngược lại.
  2. Định nghĩa về tín hiệu phá vỡ là khá thô sơ. Chỉ sử dụng giá đóng cửa giảm xuống đường và giá mở cửa phá vỡ đường ray như tín hiệu mở lỗ, có thể tạo ra một số sai lầm, dẫn đến giao dịch thua lỗ.
  3. Lựa chọn tham số chiến lược có ảnh hưởng lớn đến kết quả. Lựa chọn chu kỳ của EMA và ATR và cài đặt nhân ATR đều ảnh hưởng đến hiệu suất của chiến lược, nhưng chiến lược không đưa ra phương pháp tối ưu hóa tham số rõ ràng.

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

  1. Lập ra một cơ chế dừng lỗ rõ ràng. Bạn có thể cân nhắc thiết lập một điểm dừng cố định hoặc tỷ lệ phần trăm khi mở vị trí để kiểm soát mức lỗ tối đa trong một giao dịch.
  2. Điều kiện đánh giá tín hiệu tối ưu. Bạn có thể xem xét sử dụng nhiều thông tin giá hơn để xác nhận sự phá vỡ, chẳng hạn như yêu cầu giá đóng cửa liên tục vài đường K dưới đường dưới để mở vị trí, tránh phá vỡ giả của đường K đơn.
  3. Tối ưu hóa tham số. Các phương pháp như thuật toán di truyền có thể được sử dụng để tối ưu hóa chu kỳ của EMA, ATR và ATR, tìm kiếm các cặp tham số phù hợp hơn với thị trường hiện tại.
  4. Thêm điều kiện lọc. Bạn có thể xem xét thêm một số tín hiệu lọc, chẳng hạn như chỉ mở lệnh khi ADX cao hơn một ngưỡng nhất định, hoặc sử dụng hàng đầu nhiều đầu của MA làm bộ lọc xu hướng.

Tóm tắt

Chiến lược này dựa trên chỉ số Keltner channel, sử dụng logic của giá để phá vỡ đường mòn lên xuống. Những ưu điểm của nó là logic đơn giản và rõ ràng, khả năng thích ứng mạnh mẽ, nhược điểm là thiếu dừng và chất lượng tín hiệu kém. Trong tương lai, chiến lược có thể được cải thiện từ việc giới thiệu dừng, tối ưu hóa tín hiệu, tìm kiếm tham số và tăng điều kiệ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: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © satrusskumar

//@version=5

// Input parameters
length = input.int(21, title="EMA Length")
mult = input.float(2, title="ATR Multiplier")
atrLength = input.int(13, title="ATR Length")

// Calculate Keltner Channels
ema = ta.ema(close, length)
atr = ta.atr(atrLength)
upper_band = ema + mult * atr
lower_band = ema - mult * atr

// Plot Keltner Channels
plot(upper_band, color=color.red, title="Keltner Upper Band")
plot(ema, color=color.blue, title="Keltner EMA")
plot(lower_band, color=color.green, title="Keltner Lower Band")

// Strategy logic
var float entry_price = na
var bool in_trade = false

if (not in_trade and close < lower_band)
    strategy.entry("Long", strategy.long)
    entry_price := close
    in_trade := true

if (in_trade and open > upper_band)
    strategy.close("Long")
    in_trade := false
// Strategy settings
strategy("Keltner Channel Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)