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.
Ý 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ỗ.
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.
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 đó.
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.
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))