Chiến lược xu hướng dựa trên trung bình di chuyển nhiều khung thời gian và EMA

Tác giả:ChaoZhang, Ngày: 2024-02-21
Tags:

img

Tổng quan

Chiến lược này sử dụng đường trung bình động (MA) và đường EMA trên các khung thời gian khác nhau để xác định và giao dịch xu hướng. Bằng cách kết hợp đường SMA, đường EMA của các giai đoạn khác nhau, cũng như các cơ quan nến, nó có thể lọc hiệu quả tiếng ồn thị trường và giao dịch xu hướng trung gian đến dài hạn với rủi ro thấp.

Chiến lược logic

Ý tưởng cốt lõi dựa trên việc so sánh 3 SMA của các giai đoạn khác nhau để xác định đà tăng giá. Ngoài ra, EMA được sử dụng để kiểm tra xem thân nến có hướng lên hay không.

Cụ thể, chiến lược sử dụng 3 SMA - 3-, 8- và 10-thời gian SMA. Khi giá thấp hơn tất cả 3 SMA, nó được coi là xu hướng giảm.

Ngoài ra, EMA 5 giai đoạn kiểm tra xem cơ thể nến đang hướng lên trước khi tham gia giao dịch dài.

Đối với các quy tắc thoát, số lượng tối đa của kết thúc có lợi nhuận hoặc thời gian tối đa được sử dụng như cơ chế dừng lỗ.

Phân tích lợi thế

Bằng cách kết hợp các MAs của các khung thời gian khác nhau, chiến lược này có thể lọc hiệu quả tiếng ồn thị trường và nắm bắt xu hướng trung gian đến dài hạn.

Sử dụng EMA để kiểm tra hướng thân nến làm giảm trượt không cần thiết từ mua vào nến rơi.

Nhìn chung đây là một hệ thống ổn định và đáng tin cậy phù hợp với xu hướng theo dõi trong nhiều tuần đến nhiều tháng.

Rủi ro và giảm thiểu

  • Chiến lược này nhạy cảm với các thông số. Sự lựa chọn kém tối ưu của 3 giai đoạn SMA hoặc 1 EMA có thể làm suy giảm chất lượng tín hiệu. Các thông số cần được tối ưu hóa cho các công cụ khác nhau.

  • Rủi ro chênh lệch không được xử lý. Tin tức cơ bản đột ngột rằng giá chênh lệch có thể gây ra tổn thất. Giá dừng lỗ có thể giúp giảm thiểu những rủi ro đó.

Cơ hội gia tăng

  • Nhiều khung thời gian của MAs hoặc EMA có thể được thêm vào để tiếp tục cải thiện độ chính xác xu hướng.

  • Giá dừng lỗ vừa phải có thể được thử nghiệm để khóa lợi nhuận trong khi giảm lỗ trong các động thái cực đoan.

  • Học máy có thể tối ưu hóa các tham số một cách năng động để thích nghi với các điều kiện thị trường đang phát triển.

Kết luận

Chiến lược này là mạnh mẽ và đáng tin cậy nói chung, sử dụng MA chéo để xác định xu hướng bổ sung bằng bộ lọc EMA. Tăng cường thêm các tham số và kiểm soát rủi ro thận trọng có thể tăng tỷ lệ thắng và lợi nhuận. Đáng nghiên cứu và áp dụng thêm.


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

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Thêm nữa