Chiến lược theo dõi xu hướng hội tụ trung bình động kép

Tác giả:ChaoZhang, Ngày: 2023-12-28 17:24:53
Tags:

img

Tổng quan

Chiến lược theo dõi xu hướng hội tụ trung bình chuyển động kép tính toán các đường trung bình chuyển động nhanh, chậm và siêu chậm, kết hợp với chỉ số MACD để xác định hướng xu hướng giá và thực hiện các giao dịch theo dõi xu hướng.

Nguyên tắc

Chiến lược này đầu tiên tính toán trung bình di chuyển nhanh 12 ngày, trung bình di chuyển chậm 26 ngày và trung bình di chuyển siêu chậm 200 ngày. Khi trung bình di chuyển nhanh vượt qua trên trung bình di chuyển chậm, đường chéo vàng xảy ra, cho thấy thị trường bò. Khi đường chéo nhanh vượt xuống dưới đường chéo chậm, đường chéo chết xảy ra, cho thấy thị trường gấu. Chiến lược đi dài trên đường chéo vàng và đi ngắn trên đường chéo chết.

Chiến lược này cũng sử dụng chỉ số MACD để xác định hướng xu hướng. MACD bao gồm đường nhanh, đường chậm và các thanh MACD. Khi đường nhanh vượt qua đường chậm, đó là một tín hiệu tăng và khi vượt qua bên dưới nó là giảm. Kết hợp với đường trung bình động dài hạn để lọc các tín hiệu sai, chỉ khi đường nhanh phá vỡ đường chậm, thanh MACD chuyển từ âm sang dương, và giá đứng trên đường MA 200 ngày, tín hiệu dài kích hoạt. Chỉ khi đường nhanh phá vỡ đường chậm, thanh MACD chuyển từ dương sang âm và giá giảm xuống dưới đường MA 200 ngày, tín hiệu ngắn kích hoạt.

Với sự xác nhận kép từ hệ thống trung bình động và chỉ số MACD, việc phá vỡ sai có thể được tránh và đảm bảo bước vào lúc bắt đầu xu hướng.

Ưu điểm

  1. Xác nhận hai lần tránh phá vỡ sai, đảm bảo nhập vào khi bắt đầu xu hướng.

  2. MA 200 ngày lọc các giao dịch sai lầm trong thời gian biến động thị trường.

  3. Đặt dừng lỗ để giới hạn lỗ tối đa.

  4. Các thông số có thể tùy chỉnh như chiều dài MA, mức dừng lỗ, vv để thích nghi với các sản phẩm khác nhau.

  5. Logic đơn giản và rõ ràng, dễ hiểu và tối ưu hóa.

Rủi ro

  1. Theo dõi xu hướng dài hạn không thể nắm bắt các cơ hội ngắn hạn.

  2. Hiệu ứng theo dõi phụ thuộc vào cài đặt tham số.

  3. Cài đặt stop loss không đúng có thể quá lỏng lẻo hoặc quá chặt chẽ, làm tăng lỗ hoặc dừng sớm.

  4. Thời gian nắm giữ dài dẫn đến áp lực vốn nhất định.

Tối ưu hóa

  1. Tối ưu hóa các tham số chiều dài MA để kết hợp các tham số tốt nhất.

  2. Thêm các chỉ số khác như KDJ để đánh giá phụ trợ.

  3. Tối ưu hóa các chiến lược dừng lỗ như dừng chặt chẽ, dừng kéo theo vv

  4. Điều chỉnh các thông số MA dựa trên sản phẩm và khung thời gian.

  5. Thêm bộ lọc âm lượng để tránh tín hiệu sai.

Kết luận

Chiến lược theo dõi xu hướng hội tụ MA kép đánh giá hướng xu hướng bằng cách tính toán nhiều hệ thống MA và sử dụng bộ lọc MACD. Ưu điểm của nó là logic đơn giản và rõ ràng, rủi ro có thể kiểm soát được, phù hợp với theo dõi xu hướng. Nó có thể được cải thiện bằng cách tối ưu hóa tham số, tối ưu hóa stop loss, thêm các chỉ số phụ, v.v. Một chiến lược theo dõi xu hướng được khuyến cáo.


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

//@version=2
strategy("Trend Strategy", shorttitle="TSTrend Strategy", overlay=true)


// Trend Strategy
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
veryslowMA = sma(source, veryslowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? green : red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na
bgcolor(switch3?backgroundcolor:na,transp=80)
barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA

if (cancelLong)
    strategy.cancel("MACDLE")

if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

if (cancelShort)
    strategy.cancel("MACDSE")

if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

// maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Thêm nữa