Chiến lược giao dịch chuyển động trung bình kép là một chiến lược giao dịch định lượng phổ biến. Chiến lược này sử dụng hai trung bình chuyển động với các khoảng thời gian khác nhau làm tín hiệu mua và bán. Nó mua khi trung bình chuyển động ngắn hạn vượt qua trên trung bình chuyển động dài hạn và bán khi trung bình chuyển động ngắn hạn vượt qua dưới trung bình chuyển động dài hạn. Mã chiến lược hỗ trợ các loại trung bình chuyển động phổ biến khác nhau, chẳng hạn như Moving Simple Average (SMA), Exponential Moving Average (EMA), Double Exponential Moving Average (DEMA), Triple Exponential Moving Average (TEMA), Weighted Moving Average (WMA), và Volume Weighted Moving Average (VWMA).
Nguyên tắc cốt lõi của chiến lược này là nắm bắt xu hướng giá bằng cách tận dụng các đặc điểm xu hướng và chậm trễ của hai đường trung bình động với các giai đoạn khác nhau. Nói chung, đường trung bình động ngắn hạn nhạy cảm hơn với sự thay đổi giá, trong khi đường trung bình động dài hạn tương đối chậm trễ. Khi giá đang trong xu hướng tăng, đường trung bình động ngắn hạn sẽ di chuyển lên trước đường trung bình động dài hạn và cuối cùng vượt qua trên nó, tạo thành tín hiệu mua. Ngược lại, khi giá đang trong xu hướng giảm, đường trung bình động ngắn hạn sẽ di chuyển xuống trước đường trung bình động dài hạn và cuối cùng vượt qua bên dưới nó, tạo thành tín hiệu bán. Bằng cách nắm bắt các tín hiệu chéo vàng và chéo chết, chiến lược này có thể giao dịch phù hợp với xu hướng chính của giá.
Đơn giản và dễ sử dụng: Chiến lược chéo trung bình chuyển động kép là một chiến lược giao dịch định lượng đơn giản, dễ hiểu và dễ thực hiện, phù hợp cho các nhà giao dịch mới bắt đầu học và sử dụng.
Áp dụng rộng rãi: Chiến lược này có thể được áp dụng cho các thị trường tài chính và các công cụ giao dịch khác nhau, chẳng hạn như cổ phiếu, tương lai, ngoại hối, tiền điện tử, v.v., với tính linh hoạt mạnh mẽ.
Các thông số linh hoạt: Mã chiến lược hỗ trợ nhiều loại thông thường của các đường trung bình động và các loại giá, cho phép người dùng thiết lập các thông số linh hoạt theo nhu cầu của họ để thích nghi với các điều kiện thị trường và phong cách giao dịch khác nhau.
Theo dõi xu hướng: Bằng cách sử dụng các tín hiệu chéo của hai đường trung bình động với các giai đoạn khác nhau, chiến lược này có thể nắm bắt hiệu quả xu hướng chính của giá, giúp theo dõi xu hướng và tránh giao dịch ngược xu hướng.
Sự chậm trễ: Trung bình động về cơ bản là các chỉ số theo xu hướng và có một sự chậm trễ nhất định, có thể bỏ lỡ thời gian vào và ra tốt nhất.
Không hiệu quả trong các thị trường giới hạn phạm vi: Trong các thị trường giới hạn phạm vi hoặc bên cạnh, biến động giá là lớn và tín hiệu chéo trung bình động xảy ra thường xuyên, có thể dẫn đến giao dịch thường xuyên và dẫn đến chi phí giao dịch cao và tổn thất vốn.
Khó khăn trong tối ưu hóa tham số: Việc lựa chọn các khoảng thời gian trung bình động có tác động đáng kể đến hiệu suất chiến lược, nhưng các tham số tối ưu thường thay đổi tùy thuộc vào điều kiện thị trường, khiến việc tìm kiếm các kết hợp tham số tối ưu có thể áp dụng phổ biến trở nên khó khăn.
Tạo bộ lọc xu hướng: Ngoài các tín hiệu chéo trung bình động, các chỉ số xu hướng khác như MACD và ADX có thể được kết hợp để lọc xu hướng, chỉ giao dịch khi xu hướng rõ ràng để tránh giao dịch thường xuyên trên các thị trường giới hạn phạm vi.
Tối ưu hóa lợi nhuận và dừng lỗ: Kết hợp logic lợi nhuận và dừng lỗ hợp lý vào chiến lược, chẳng hạn như dừng lỗ và dừng lỗ dựa trên biến động, để kiểm soát rủi ro giao dịch duy nhất và cải thiện tỷ lệ rủi ro-lợi nhuận của chiến lược.
Tối ưu hóa tham số động: Đối với các môi trường thị trường khác nhau, thường xuyên thực hiện tối ưu hóa động về các tham số như thời gian trung bình động để cho phép chiến lược thích nghi với những thay đổi của thị trường và cải thiện độ bền.
Kết hợp nhiều yếu tố: Kết hợp các tín hiệu chéo trung bình động kép với các yếu tố định lượng hiệu quả khác (như động lượng, giá trị, khối lượng, v.v.) để tạo ra một chiến lược đa yếu tố mạnh mẽ và hiệu quả hơn.
Chiến lược chéo trung bình chuyển động kép là một chiến lược theo xu hướng đơn giản và cổ điển nắm bắt xu hướng giá thông qua các tín hiệu chéo của hai trung bình chuyển động với các giai đoạn khác nhau, phù hợp với thị trường xu hướng. Tuy nhiên, chiến lược này cũng có những vấn đề như chậm trễ và khó khăn trong tối ưu hóa tham số, đòi hỏi sự kết hợp với các phương pháp khác để tối ưu hóa và cải thiện, chẳng hạn như lọc xu hướng, tối ưu hóa tham số động, kết hợp đa yếu tố, v.v., để tăng khả năng áp dụng và độ mạnh mẽ của chiến lược. Nhìn chung, Chiến lược chéo trung bình chuyển động kép có thể phục vụ như một trong những chiến lược cơ bản trong giao dịch định lượng, xứng đáng được học và nghiên cứu bởi những người đam mê định lượng.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SustainableInvestment //@version=5 strategy("Moving average strategy (이동평균선 전략)", overlay=true) // === INPUTS === basisType = input.string(defval = "EMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA ",options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA"]) shortLen = input.int(defval = 1, title = "Short MA Period", minval = 1) longLen = input.int(defval = 20, title = "Long MA Period", minval = 1) price = input.string(defval = "Typical", title = "Price Type : Close, High, Open, Low, Typical, Center ",options=["Close", "High", "Open", "Low", "Typical", "Center"]) // === BASE FUNCTIONS === // 가격 종류 설정 priceType(price) => Typical = (high+low+close)/3 Center = (high+low) / 2 price=="High"?high : price=="Low"?low : price=="Open"?open : price=="Typical"?Typical : price=="Center"?Center : close // 이동평균선 종류 설정 variant(type, src, len) => v1 = ta.sma(src, len) // Simple v2 = ta.ema(src, len) // Exponential v3 = 2 * v2 - ta.ema(v2, len) // Double Exponential v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len) // Triple Exponential v5 = ta.wma(src, len) // Weighted v6 = ta.vwma(src, len) // Volume Weighted type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : v1 longCondition = ta.crossover(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen)) if (longCondition) strategy.entry("Long Entry", strategy.long) exitCondition = ta.crossunder(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen)) if (exitCondition) strategy.close("Long Entry","Long Exit")