Chiến lược định lượng chéo trung bình động

Tác giả:ChaoZhang, Ngày: 2023-12-22 15:05:24
Tags:

img

Tổng quan

Chiến lược này tạo ra các tín hiệu vào và ra bằng cách tính toán đường trung bình di chuyển theo hàm số EMA và chỉ số MACD và kết hợp các tín hiệu chéo của cả hai. Nó đi dài khi giá vượt qua trên đường EMA và đường MACD vượt qua trên đường tín hiệu, và đi ngắn khi giá vượt qua dưới đường EMA và đường MACD vượt qua dưới đường tín hiệu.

Chiến lược logic

Chiến lược này sử dụng đường trung bình di chuyển theo hàm số EMA để xác định hướng xu hướng hiện tại. Đồng thời, nó sử dụng đường chéo trung bình di chuyển của chỉ số MACD để tạo ra tín hiệu giao dịch. Chỉ khi giá vượt qua đường EMA, các tín hiệu chéo vàng và chéo chết của MACD sẽ được xem xét. Điều này tránh các tín hiệu sai.

Chiến lược này chủ yếu dựa trên những lợi thế của các chiến lược giao dịch trung bình động và các chiến lược giao dịch MACD. Mức trung bình động có thể đánh giá hướng xu hướng khá tốt. Các đường chéo nhanh và chậm của đường trung bình động theo hàm số MACD có thể chỉ ra điểm mua và bán. Sử dụng cả hai kết hợp có thể cải thiện độ chính xác của các tín hiệu.

Phân tích lợi thế

Chiến lược này kết hợp các chỉ số kép EMA và MACD để lọc hiệu quả một số tín hiệu sai và cải thiện chất lượng tín hiệu. Đồng thời, EMA đánh giá xu hướng chính và MACD đánh giá các điểm vào và ra cụ thể. Cả hai bổ sung lẫn nhau và có thể đạt được lợi nhuận tốt.

Ngoài ra, chiến lược này chỉ xem xét tín hiệu MACD khi giá vượt qua đường EMA, tránh giao dịch sai trong các thị trường hỗn loạn.

Phân tích rủi ro

Rủi ro chính của chiến lược này nằm trong cài đặt tham số. Nếu các tham số của EMA và MACD được đặt không đúng, các tín hiệu có thể bị bỏ lỡ hoặc các tín hiệu sai có thể được tạo ra. Ngoài ra, nếu xu hướng thị trường đảo ngược, chiến lược sẽ gây ra một số lỗ.

Để giảm rủi ro, các tham số nên được điều chỉnh thích hợp để phù hợp với chu kỳ thị trường hiện tại của EMA và MACD. Đồng thời, nên sử dụng stop loss để kiểm soát lỗ đơn. Khi thị trường bước vào quá trình đáy hoặc chạm vào hỗ trợ, giao dịch nên bị đình chỉ để tránh tổn thất lâu dài.

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

Các khía cạnh sau đây của chiến lược có thể được tối ưu hóa:

  1. Tối ưu hóa các thông số để điều chỉnh các thông số EMA và MACD theo điều kiện và chu kỳ thị trường thời gian thực để đảm bảo tính hợp lệ của các thông số

  2. Thêm các chỉ số khác kết hợp, chẳng hạn như các kênh BOLL hoặc các chỉ số KD, để làm giàu các tín hiệu chiến lược

  3. Sử dụng các phương pháp học máy để tự động tối ưu hóa các thông số chiến lược và điều chỉnh các thông số dựa trên kết quả backtest

  4. Khi phá vỡ đường EMA, đánh giá sức mạnh của hướng để tránh phá vỡ sai

  5. Thêm chiến lược lấy lợi nhuận và dừng lỗ để khóa lợi nhuận và cắt giảm tổn thất

Tóm lại

Chiến lược định lượng chéo trung bình động kết hợp các chỉ số EMA và MACD kép để tạo ra hiệu quả các tín hiệu chất lượng cao. Tối ưu hóa cài đặt tham số, thêm dừng lỗ / lấy lợi nhuận, thêm các chỉ số khác, v.v. có thể tăng thêm sự ổn định và lợi nhuận của chiến lược. Chiến lược hiệu quả và đơn giản này có giá trị tham chiếu và ứng dụng tuyệt vời cho các nhà giao dịch định lượng.


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

//@version=5
strategy("LONERTESTV2", overlay=true)

// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")

// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)

// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)

// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5

if buy_entry
    strategy.entry(id='EL', direction=strategy.long)

if sell_entry
    strategy.entry(id='ES', direction=strategy.short)

// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)


Thêm nữa