Chiến lược chéo siêu xu hướng và trung bình động

Tác giả:ChaoZhang, Ngày: 2024-02-19 11:56:52
Tags:

img

Tổng quan

Chiến lược được đặt tên là Supertrend và Moving Average Crossover Strategy. Nó kết hợp chỉ số Supertrend và moving averages, đi dài khi siêu xu hướng chỉ ra xu hướng tăng và EMA 10 ngày trên SMA 20 ngày, và đi ngắn khi siêu xu hướng chỉ ra xu hướng giảm và EMA 10 ngày dưới SMA 20 ngày.

Chiến lược logic

Chiến lược này sử dụng chỉ số siêu xu hướng để xác định hướng xu hướng thị trường. Supertrend được tính dựa trên phạm vi trung bình thực sự và một yếu tố. Khi giá trên đường siêu xu hướng, đó là xu hướng tăng; khi giá dưới đường siêu xu hướng, đó là xu hướng giảm. Trong chiến lược này, yếu tố được thiết lập là 3.0 và chiều dài ATR là 10.

Ngoài ra, chiến lược này sử dụng EMA 10 ngày và SMA 20 ngày để xây dựng đường trung bình động. EMA (Mức trung bình chuyển động theo cấp số) gán trọng lượng cao hơn cho giá gần đây, trong khi SMA (Mức trung bình chuyển động đơn giản) xem xét tất cả các dữ liệu có trọng lượng bằng nhau. Khi EMA ngắn hạn cao hơn SMA dài hạn, nó được coi là tín hiệu mua.

Tóm lại, logic tạo tín hiệu giao dịch là:

Mở đầu dài: siêu xu hướng > 0 (trend tăng) và EMA 10 ngày > SMA 20 ngày Mở đầu ngắn: Supertrend < 0 (downtrend) và 10-day EMA < 20-day SMA

Vì vậy, nó xác định hướng xu hướng với Supertrend và sử dụng đường chéo trung bình động để xác nhận thêm, để xây dựng xu hướng sau chiến lược này.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là kết hợp Supertrend và đường trung bình động, cải thiện cả độ tin cậy và độ nhạy.

  1. Supertrend xác định rõ xu hướng chính, giảm các tín hiệu sai
  2. EMA+SMA crossover cải thiện độ nhạy cảm với những thay đổi xu hướng
  3. Đánh giá nhiều yếu tố cải thiện độ tin cậy
  4. Chỉ số đơn giản và rõ ràng, dễ hiểu và tối ưu hóa
  5. Độ linh hoạt cao để điều chỉnh các tham số của Supertrend và MAs

Phân tích rủi ro

Có một số rủi ro trong chiến lược này:

  1. Các thông số Supertrend không chính xác có thể bỏ lỡ các điểm chuyển đổi
  2. Các thông số MA không chính xác có thể tạo ra tín hiệu sai
  3. Lựa chọn thời gian kiểm tra hậu quả không đúng có thể đánh giá quá cao hiệu suất
  4. Không tính đến chi phí giao dịch

Chúng ta có thể kiểm tra các giá trị ATR và Factor khác nhau cho Supertrend, và các giá trị độ dài khác nhau cho MAs. Ngoài ra thời gian backtest nên bao gồm các môi trường thị trường khác nhau. Chi phí giao dịch nên được thêm vào giao dịch trực tiếp.

Hướng dẫn tối ưu hóa

Có rất nhiều chỗ để tối ưu hóa:

  1. Điều chỉnh chiều dài ATR và Factor trong Supertrend
  2. Điều chỉnh chiều dài của EMA và SMA
  3. Thêm các chỉ số khác như RSI, MACD để lọc tín hiệu
  4. Mua khi Supertrend xuất hiện và EMA vượt qua SMA sau một thời gian
  5. Thêm chiến lược dừng lỗ

Điều này có thể cải thiện hơn nữa hiệu suất và sự ổn định.

Kết luận

Chiến lược này kết hợp Supertrend cho hướng xu hướng và EMA + SMA chéo để tạo ra tín hiệu, một hệ thống theo xu hướng điển hình. Nó có độ tin cậy cao và rất linh hoạt để tối ưu hóa, đáng để xác minh trong giao dịch trực tiếp. Nhưng chúng ta cũng nên kiểm soát rủi ro và ngăn ngừa tối ưu hóa quá mức.


/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend and Moving Averages Strategy", overlay=true)

// Supertrend parameters
atrLength = input.int(10, title="ATR Length", minval=1)
factor = input.float(3.0, title="Factor", minval=0.01, step=0.01)
[supertrend, direction] = ta.supertrend(factor, atrLength)

// Moving Averages parameters
length_ema = input(10, title="Length of EMA")
length_sma = input(20, title="Length of SMA")

// Calculate EMAs and SMAs
ema_10 = ta.ema(close, length_ema)
sma_20 = ta.sma(close, length_sma)

// Strategy logic
longCondition = ema_10 > sma_20 and direction > 0
shortCondition = ema_10 < sma_20 and direction < 0

strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot Supertrend
plot(direction > 0 ? supertrend : na, color=color.green, style=plot.style_line, linewidth=2, title="Up Trend")
plot(direction < 0 ? supertrend : na, color=color.red, style=plot.style_line, linewidth=2, title="Down Trend")

// Plot Moving Averages
plot(ema_10, color=color.blue, title="10 EMA")
plot(sma_20, color=color.red, title="20 SMA")

// Alerts for Supertrend
alertcondition(direction[1] > direction, title='Downtrend to Uptrend', message='The Supertrend value switched from Downtrend to Uptrend ')
alertcondition(direction[1] < direction, title='Uptrend to Downtrend', message='The Supertrend value switched from Uptrend to Downtrend')
alertcondition(direction[1] != direction, title='Trend Change', message='The Supertrend value switched from Uptrend to Downtrend or vice versa')


Thêm nữa