Triple Exponential Moving Average Long Chỉ chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-15 10:54:39
Tags:

img

Tổng quan

Triple Exponential Moving Average Long Only Strategy là một chiến lược theo xu hướng dài hạn dựa trên chỉ số TEMA (Triple Exponential Moving Average). Nó sử dụng TEMA để lọc ra tiếng ồn thị trường ngắn hạn và xác định hướng xu hướng trung hạn đến dài hạn. Chiến lược này đi dài khi giá vượt trên TEMA và thoát ra khi giá giảm dưới TEMA. Nó phù hợp với các nhà đầu tư quan tâm đến giao dịch xu hướng trung hạn đến dài hạn.

Chiến lược logic

Chiến lược xác định xu hướng trung hạn đến dài hạn bằng cách sử dụng chỉ số TEMA. TEMA là một chỉ số xu hướng trơn tru bắt nguồn từ trơn tru theo tỷ lệ nhân ba của EMA tiêu chuẩn. EMA tự nó có một số hiệu ứng lọc tiếng ồn. TEMA tiếp tục giảm tiếng ồn ngắn hạn bằng cách làm mịn ba EMA của các giai đoạn khác nhau.

Cụ thể, chiến lược đầu tiên tính toán EMA (ema1) của giai đoạn fastEmaPeriod, sau đó tính toán một EMA (ema2) khác của ema1 bằng cách sử dụng cùng một giai đoạn, và cuối cùng tính toán ema3 dựa trên ema2.

Thông qua việc làm mịn theo tỷ lệ nhân nhiều lần, TEMA có thể xác định hiệu quả hướng xu hướng trung và dài hạn mặc dù ngập chập và đảo ngược, lọc ra tiếng ồn ngắn hạn.

Phân tích lợi thế

  • TEMA xác định hiệu quả các xu hướng trung bình đến dài hạn và lọc ra tiếng ồn ngắn hạn, tránh các whipsaws.

  • Chỉ có các vị trí dài tránh rủi ro giảm không giới hạn của việc mua ngắn.

  • Phân số phần trăm vị trí có kích thước linh hoạt dựa trên kích thước tài khoản để kiểm soát rủi ro.

  • Kiểm tra ngược cửa sổ thời gian tối ưu hóa các thông số về các giai đoạn lịch sử cụ thể.

Phân tích rủi ro

  • Các sự kiện thiên nga đen nghiêm trọng có thể gây ra sự đảo ngược mạnh trong thời gian giữ lâu, dẫn đến tổn thất lớn.

  • TEMA có thể không báo hiệu thay đổi xu hướng để dừng lỗ kịp thời.

  • Số lượng tỷ lệ phần trăm không giới hạn kích thước lỗ trên mỗi giao dịch, đòi hỏi dừng.

  • Kiểm tra ngược có nguy cơ quá phù hợp, các thông số tối ưu có thể không phù hợp với thị trường tương lai.

Hướng dẫn cải thiện

  • Thêm số liệu biến động để củng cố các thông số.

  • Thực hiện stop loss để kiểm soát kích thước lỗ giao dịch duy nhất.

  • Tối ưu hóa kích thước vị trí để giảm kích thước trong khi rút tiền.

  • Thêm các chỉ số xu hướng xuyên khung thời gian để cải thiện độ chính xác xu hướng.

  • Kiểm tra các thông số thời gian giữ khác nhau cho tối ưu.

Kết luận

Tóm lại, Triple EMA Long Only Strategy xác định các hướng xu hướng thông qua chỉ số TEMA, giữ các vị trí dài hạn để tránh tiếng ồn ngắn hạn, chỉ ở lại lâu để tránh xu hướng giảm không giới hạn và có hiệu quả bắt được xu hướng trung và dài hạn. Tuy nhiên, có những rủi ro đòi hỏi tối ưu hóa để cải thiện độ bền.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA_System_long_only", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(7, minval=1, title="Fast TEMA Period")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

fastEma = ema(close, fastEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3


buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'TEMA', linewidth=3, color=white)

if window()
    strategy.entry("long",strategy.long, when = buy)
    strategy.close("long", when = sell )

Thêm nữa