Chiến lược giao cắt đường trung bình động được làm mịn


Ngày tạo: 2023-11-24 13:49:45 sửa đổi lần cuối: 2023-11-24 13:49:45
sao chép: 0 Số nhấp chuột: 617
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt đường trung bình động được làm mịn

Tổng quan

Chiến lược này là một chiến lược giao dịch dựa trên các đường trung bình di chuyển trơn. Nó sử dụng đường trung bình di chuyển chỉ số ((EMA) 50 chu kỳ làm chỉ số kỹ thuật chính, làm nhiều khi đường giá đi qua EMA từ phía dưới và làm trống khi đi qua EMA từ phía trên xuống, để đạt được lợi nhuận.

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

Ý tưởng cốt lõi là sử dụng EMA 50 chu kỳ như một công cụ để xác định xu hướng giá. Dòng EMA có thể làm mịn giá, loại bỏ tiếng ồn thị trường ngắn hạn, phản ánh hướng xu hướng giá dài hơn.

Cụ thể, chiến lược này bao gồm:

  1. Các tham số đầu vào: thiết lập EMA với độ dài chu kỳ là 50

  2. Tính toán chỉ số: Gọi hàm ta.ema để tính toán EMA 50 chu kỳ.

  3. Điều kiện nhập cảnh: Giá trên sẽ tạo ra nhiều tín hiệu khi đi qua đường EMA, giá dưới sẽ tạo ra tín hiệu trống khi đi qua đường EMA.

  4. Điều kiện ra sân: Giá cao nhất / giá thấp nhất được ghi lại khi vào sân, giá sau đó sẽ bị phá vỡ.

  5. Hình ảnh: vẽ đường EMA, đánh dấu điểm vào và điểm ra với nhiều điểm trống.

Bằng cách này, chúng ta có thể giao dịch theo chiều hướng, theo xu hướng, và dừng lỗ khi giá bắt đầu đảo ngược.

Phân tích lợi thế chiến lược

EMA có một số ưu điểm đáng kể so với các chỉ số và chiến lược khác:

Đơn giản, trực quan。 Chỉ số cốt lõi chỉ có một dòng EMA, dễ hiểu và vận hành。 Không có trường hợp chỉ số phức tạp。

Chuyển đổi linh hoạtThời gian chu kỳ của EMA có thể được điều chỉnh rất linh hoạt cho các thị trường và giống khác nhau.

Nhận biết xu hướng│EMA có thể làm mịn dữ liệu giá một cách hiệu quả để nắm bắt sự thay đổi của xu hướng giá trong trung và dài hạn│

Quay lại kiểm soátSử dụng các điểm cao/thấp mới của giá để dừng lỗ, có thể kiểm soát tốt sự rút lui.

Rủi ro và giải pháp

Chiến lược này cũng có một số rủi ro, bao gồm:

Trải qua xu hướngKhi giá biến động mạnh, đường EMA không thể bắt kịp thời điểm chuyển hướng và có thể bỏ lỡ thời điểm chuyển hướng. Nó có thể được xác minh kết hợp với các chỉ số khác như Brin.

Chấm dứt quá sớm│ điểm dừng trực tiếp lấy tín hiệu giá cao nhất / giá thấp nhất khi xuất hiện, có thể dễ dàng đạt được và dừng sớm. │ có thể xem xét phương pháp như dừng di động, mở rộng phạm vi dừng.

Điều chỉnh tham sốEMA không phù hợp với chu kỳ sẽ dẫn đến nhiều tín hiệu sai. Cần điều chỉnh tham số EMA cho các chu kỳ khác nhau và biến động thị trường.

Hướng tối ưu hóa chiến lược

Chiến lược này có thể được tối ưu hóa hơn nữa:

  1. Kết hợp với tín hiệu xác nhận chỉ số của dây chuyền Brin, tránh tạo ra tín hiệu sai của đường EMA.

  2. Cải thiện các cơ chế dừng lỗ, sử dụng các phương pháp như dừng di chuyển, xem lại dừng biến động để tránh dừng lỗ quá sớm.

  3. Tối ưu hóa các tham số của EMA theo thị trường và các loại giao dịch khác nhau để tìm chu kỳ phù hợp nhất.

  4. Thêm mô-đun tối ưu hóa tham số tự động để chính sách tự tìm kiếm sự kết hợp tham số tốt nhất.

Tóm tắt

Chiến lược này dựa trên các chỉ số EMA để xác định xu hướng giá, dựa trên giao dịch vàng và giao dịch chết. Chiến lược này rất đơn giản và dễ vận hành, có thể bắt được xu hướng giá, kiểm soát rủi ro dừng lỗ. Chiến lược này cũng có thể được tối ưu hóa hơn nữa, kết hợp với nhiều tín hiệu lọc chỉ số, cải thiện cơ chế dừng lỗ, v.v..

Mã nguồn chiến lược
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA 50 Crossover Strategy", shorttitle="EMA 50 xover", overlay=true)

// Input for EMA length
emaLength = input(50, title="EMA Length")

// Calculate EMA 50
ema50 = ta.ema(close, emaLength)

// Define conditions for long entry
longCondition = ta.crossover(close, ema50)

// Define conditions for short entry
shortCondition = ta.crossunder(close, ema50)

// Calculate the high of the signal candle for long entry
var float longSignalHigh = na
if (longCondition)
    longSignalHigh := high

// Calculate the low of the signal candle for short entry
var float shortSignalLow = na
if (shortCondition)
    shortSignalLow := low

// Long entry
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Short entry
plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Exit conditions
longExitCondition = ta.crossunder(close, longSignalHigh)
shortExitCondition = ta.crossover(close, shortSignalLow)

// Plot exit signals
plotshape(series=longExitCondition, title="Long Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=shortExitCondition, title="Short Exit Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Strategy entry and exit logic
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=longExitCondition)
strategy.close("Short", when=shortExitCondition)

// Plot EMA 50
plot(ema50, title="EMA 50", color=color.blue)