Chiến lược theo xu hướng dựa trên đường trung bình động


Ngày tạo: 2024-01-18 12:23:59 sửa đổi lần cuối: 2024-01-18 12:23:59
sao chép: 1 Số nhấp chuột: 617
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng dựa trên đường trung bình động

Tổng quan

Chiến lược này dựa trên chiến lược theo dõi xu hướng trên đường trung bình. Nó sử dụng đường trung bình EMA của các chu kỳ khác nhau để xây dựng nhiều nhóm tín hiệu giao dịch, thực hiện giao dịch theo dõi xu hướng.

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

Chiến lược này sử dụng các đường trung bình EMA của 5 chu kỳ khác nhau để xây dựng tín hiệu giao dịch. Các đường trung bình 10 ngày, 20 ngày, 50 ngày, 100 ngày và 200 ngày. Chiến lược thiết lập 4 nhóm điều kiện mua dựa trên mối quan hệ của giá với các đường trung bình này để thực hiện gia tăng vị trí kim tự tháp.

Khi giá thấp hơn đường 20 ngày và cao hơn đường 50 ngày, kích hoạt mua nhóm đầu tiên; khi giá thấp hơn đường 50 ngày và cao hơn đường 100 ngày, kích hoạt mua nhóm thứ hai; khi giá thấp hơn đường 100 ngày và cao hơn đường 200 ngày, kích hoạt mua nhóm thứ ba; khi giá thấp hơn đường 200 ngày, kích hoạt mua nhóm thứ tư. Số lượng mua hàng cũng tăng dần, lần lượt là qt1, qt2, qt3 và qt4.

Trong bán ra, chiến lược sử dụng hai nhóm điều kiện dừng cùng một lúc. Nhóm đầu tiên là dừng khi giá cao hơn đường 10 ngày và đường 10 ngày cao hơn các đường trung bình khác; Nhóm thứ hai là dừng khi giá thấp hơn đường 10 ngày của ngày trước và đường 10 ngày cao hơn các đường trung bình khác.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là có thể tự động theo dõi xu hướng thị trường để thực hiện nắm giữ đường dài. Bằng cách mua nhiều điều kiện mua và đặt hàng theo lô, bạn có thể liên tục giảm chi phí mua và thu được lợi nhuận dư thừa. Đồng thời, cũng tránh rủi ro giá do một điểm mua duy nhất mang lại.

Về dừng lỗ, chiến lược cũng được thiết kế tối ưu. Theo dõi các điểm biến động của đường trung bình ngắn hạn, bạn có thể dừng lại nhanh chóng và khóa lợi nhuận. Điều này tránh nguy cơ mở rộng tổn thất hơn nữa.

Phân tích rủi ro

Rủi ro lớn nhất đối với chiến lược này là bị mắc kẹt trong tình trạng điều chỉnh đường dài. Khi thị trường lớn đang trong tình trạng chấn động hoặc đi xuống, tín hiệu đường trung bình không đáng tin cậy. Khi đó, có thể tiếp tục mua và giữ vị trí, chịu tổn thất lớn hơn.

Một điểm rủi ro khác là đường trung bình không phải lúc nào cũng chính xác. Giá tăng hoặc mở rộng trong thời gian ngắn có thể khiến đường trung bình phát tín hiệu sai. Điều này cần được xác minh và tối ưu hóa kết hợp với các chỉ số kỹ thuật khác.

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

Bạn có thể xem xét thêm các chỉ số kỹ thuật khác trong điều kiện mua hàng, chẳng hạn như chỉ số khối lượng giao dịch, tín hiệu Bollinger Bands, v.v. Điều này có thể làm tăng thêm tỷ lệ mua hàng thành công.

Trong điều kiện bán cũng có thể thêm Boll trên đường ray hoặc các vị trí hỗ trợ quan trọng như là một lớp thứ hai của dừng. Điều này có thể làm giảm các lỗ nhỏ không cần thiết. Hoặc thêm chức năng dừng di động để điều chỉnh dừng trong thời gian thực, cũng có thể khóa lợi nhuận hơn nữa.

Tóm tắt

Chiến lược này sử dụng hệ thống theo dõi xu hướng để giao dịch. Bằng cách đặt hàng theo lô theo kiểu kim tự tháp, bạn có thể tận dụng tối đa lợi nhuận của xu hướng. Đồng thời, điều kiện dừng hai lần cũng được thiết lập để bảo vệ an toàn tài chính. Đây là một chiến lược đáng để theo dõi và kiểm tra thực tế trong thời gian dài.

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

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)