Chiến lược giao dịch trung bình chuyển động hàm số đa

Tác giả:ChaoZhang, Ngày: 2024-03-11 16:17:20
Tags:

img

Tổng quan

Chiến lược này kết hợp nhiều Mức trung bình chuyển động biểu thức (EMA) để xác định các điểm nhập và thoát tiềm năng trên thị trường. Bằng cách so sánh xu hướng của EMA với các giai đoạn khác nhau, nó xác định xu hướng thị trường hiện tại và tham gia giao dịch vào đầu của sự hình thành xu hướng và đóng các vị trí vào đầu của xu hướng.

Nguyên tắc chiến lược

Chiến lược này sử dụng 4 EMA với các khoảng thời gian khác nhau làm chỉ số cốt lõi, cụ thể là EMA cực ngắn hạn (8 khoảng thời gian mặc định), EMA ngắn hạn (13 khoảng thời gian mặc định), EMA trung hạn (21 khoảng thời gian mặc định) và EMA dài hạn (55 khoảng thời gian mặc định). Khi EMA dài hạn thấp hơn ba EMA khác, nó được đánh giá là thị trường hiện tại có thể là khởi đầu của xu hướng tăng, và chiến lược mở một vị trí dài; khi EMA dài hạn cao hơn ba EMA khác, nó được đánh giá là thị trường hiện tại có thể là khởi đầu của xu hướng giảm, và chiến lược đóng tất cả các vị trí dài. Chiến lược xác định các bước ngoặt xu hướng bằng sự kết hợp này của các sắp xếp EMA dài và ngắn để nắm bắt xu hướng mới nổi.

So với đường trung bình di chuyển đơn giản (SMA), EMA nhấn mạnh nhiều hơn vào giá gần đây và do đó xu hướng của nó nhạy cảm hơn và có thể phản ứng với sự thay đổi giá nhanh hơn. Sự chéo chéo của EMA với các giai đoạn khác nhau phản ánh sức mạnh của xu hướng trên các quy mô thời gian khác nhau. EMA dài hạn là ổn định nhất và đại diện cho xu hướng thị trường quan trọng; đường EMA trung hạn và ngắn hạn tương đối nhạy cảm và phản ánh xu hướng thị trường ngắn hạn và trung hạn. Chúng cùng nhau tạo thành logic cốt lõi của chiến lược này.

Phân tích lợi thế

  1. Áp dụng rộng: Chiến lược này dựa trên chỉ số EMA của chính giá và áp dụng cho hầu hết các loại có thanh khoản tốt và xu hướng tương đối mượt mà, chẳng hạn như các hợp đồng tương lai khác nhau, ngoại hối, tiền điện tử chính thống, v.v.

  2. Theo dõi xu hướng: Bằng cách so sánh mối quan hệ vị trí của EMA với các giai đoạn khác nhau để xác định xu hướng, nó có thể nắm bắt sự khởi đầu của sự hình thành xu hướng đến một mức độ nhất định và theo dõi xu hướng.

  3. Các tham số linh hoạt: Các tham số thời gian của EMA có thể được điều chỉnh linh hoạt theo đặc điểm của các giống, chân trời đầu tư, v.v., và có một độ thích nghi nhất định.

  4. Logic rõ ràng: Chiến lược tạo ra các tín hiệu giao dịch dựa trên sự kết hợp đơn giản của các thỏa thuận EMA dài và ngắn, và logic là rõ ràng và dễ hiểu và thực hiện.

Phân tích rủi ro

  1. EMA lag: EMA về cơ bản là một chỉ số theo dõi xu hướng và có một sự chậm trễ nhất định, có thể tạo ra nhiều tín hiệu sai trong một thị trường hỗn loạn.

  2. Độ nhạy của các tham số: Việc lựa chọn các tham số thời gian EMA có tác động đáng kể đến hiệu suất chiến lược và các tham số tối ưu có thể không duy trì hiệu suất tốt trên dữ liệu ngoài mẫu.

  3. Thiếu lọc: Chiến lược này thiếu lọc thêm các tín hiệu giao dịch và tất cả các tín hiệu được tạo sẽ được giao dịch, có thể dẫn đến một số giao dịch chất lượng thấp.

  4. Vị trí cố định: Hiện nay, chiến lược mở một vị trí cố định 1 đơn vị mỗi lần, thiếu kiểm soát vị trí năng động dựa trên rủi ro và quản lý rủi ro không đủ hoàn hảo.

Hướng tối ưu hóa

  1. Giới thiệu lọc xu hướng: Trên cơ sở các tín hiệu EMA, thêm các chỉ số lọc cường độ xu hướng như ATR và ADX để lọc các tín hiệu từ xu hướng yếu và các giai đoạn hỗn loạn.

  2. Tạo bộ lọc biến động: Dựa trên bộ lọc xu hướng, bộ lọc biến động như chiều rộng băng tần Bollinger có thể được đưa vào để lọc ra các tín hiệu chất lượng thấp có thể gây ra bởi biến động cao.

  3. Tối ưu hóa stop-loss: Hiện nay, chiến lược thiếu logic stop-loss rõ ràng. Sau khi giới thiệu xu hướng và lọc biến động, stop-loss động dựa trên ATR hoặc tỷ lệ phần trăm có thể được thêm để kiểm soát mức lỗ tối đa của một giao dịch duy nhất.

  4. Vị trí năng động: Dựa trên sự biến động của các loại, tỷ lệ giá trị tài khoản, vv, số lượng vị trí được mở bởi chiến lược mỗi lần có thể được kiểm soát năng động để theo đuổi lợi nhuận tuyệt đối cao hơn trong khi giảm rủi ro.

  5. Tối ưu hóa các tham số: Đối với các giống khác nhau và các giai đoạn khác nhau, các tham số tối ưu của EMA có thể khác nhau và tối ưu hóa tham số cần phải được thực hiện riêng biệt theo đặc điểm của các giống để cải thiện khả năng áp dụng chiến lược.

Tóm lại

Chiến lược này xác định các bước ngoặt xu hướng bằng cách so sánh các kết hợp sắp xếp dài và ngắn của 4 EMA với các giai đoạn khác nhau để nắm bắt sự bắt đầu của sự hình thành xu hướng. Ý tưởng đơn giản và rõ ràng. Ưu điểm của nó nằm trong phạm vi áp dụng rộng, logic rõ ràng và các tham số linh hoạt, và nó có thể theo dõi xu hướng tốt; nhưng đồng thời, nó cũng có sự chậm trễ vốn có của các chỉ số EMA, cũng như các vấn đề như độ nhạy của tham số, thiếu lọc và vị trí cố định. Trong tương lai, độ mạnh mẽ và lợi nhuận của chiến lược này có thể được cải thiện từ các khía cạnh như giới thiệu xu hướng và lọc biến động, tối ưu hóa stop-loss, vị trí động và tối ưu hóa tham số để làm cho nó hoàn chỉnh và đáng tin cậy hơn.


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 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/
// © n1ghthawk

//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)

float long = na
float short = na

lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")

lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)


emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA

longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)

notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
    long:=high
    strategy.entry("EL", strategy.long)

if shortCondition and emaShortCondition
    short:=low
    strategy.close("EL")


plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)

plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)

Thêm nữa