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

Tác giả:ChaoZhang, Ngày: 2023-11-27
Tags:

img

Tổng quan

Đây là một chiến lược theo xu hướng dựa trên đường trung bình động. Nó sử dụng chỉ số Ichimoku Cloud để xác định hướng xu hướng kết hợp với đường trung bình động 200 ngày để lọc tín hiệu, do đó theo dõi xu hướng.

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

Chiến lược này chủ yếu sử dụng đường chuyển đổi và đường cơ sở của Ichimoku Cloud để đánh giá hướng xu hướng. Đường chuyển đổi là giá trung bình trung bình 9 ngày và đường cơ sở là giá trung bình 26 ngày.

Chiến lược này cũng sử dụng đường trung bình động 200 ngày để lọc tín hiệu. Chỉ khi giá đóng trên đường 200 ngày, tín hiệu mua sẽ được kích hoạt. Điều này lọc hầu hết các tín hiệu sai.

Ở phía thoát, chiến lược chỉ đơn giản là sử dụng đường chuyển đổi vượt dưới đường cơ sở làm tín hiệu đóng.

Phân tích lợi thế

Chiến lược này kết hợp chỉ số đánh giá xu hướng Ichimoku Cloud và chỉ số lọc xu hướng dài hạn đường 200 ngày, có thể theo dõi hiệu quả xu hướng và lọc hầu hết các tín hiệu sai.

So với chỉ sử dụng đường trung bình động, chiến lược này có thể nắm bắt tốt hơn các điểm chuyển hướng và điều chỉnh đúng thời điểm các vị trí.

Phân tích rủi ro

Chiến lược này chủ yếu dựa trên đám mây Ichimoku để xác định hướng xu hướng, mà chính nó cũng có thể tạo ra các tín hiệu sai.

Ngoài ra, cài đặt tham số không đúng cũng có thể dẫn đến hiệu suất chiến lược kém. Nếu tham số đường chuyển đổi quá ngắn, các tín hiệu sai dễ dàng hình thành; nếu tham số đường cơ sở quá dài, hiệu ứng theo dõi xấu đi.

Hướng dẫn tối ưu hóa

Xem xét kết hợp các chỉ số khác để cải thiện chất lượng tín hiệu, chẳng hạn như chỉ số KDJ để lọc tín hiệu trong các khu vực mua quá mức / bán quá mức.

Về phía tham số, hãy thử nhiều kết hợp hơn, chẳng hạn như điều chỉnh tham số đường chuyển đổi thành 5 hoặc 7 ngày cho các tín hiệu giao dịch nhạy cảm hơn.

Ngoài ra, hãy xem xét vô hiệu hóa chiến lược trong một số môi trường biến động nhất định để tránh tác động của sự dao động hoang dã.

Kết luận

Chiến lược này tích hợp các lợi thế của đánh giá xu hướng và các chỉ số lọc dài hạn, có thể theo dõi hiệu quả xu hướng trung và dài hạn. Trong khi đó, cài đặt tham số và các biện pháp kiểm soát rủi ro cũng cần tối ưu hóa liên tục để giảm tín hiệu sai và tác động từ biến động. Nhìn chung, chiến lược có hiệu suất tốt và giá trị thực tế cho giao dịch thực tế.


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

//@version=3
strategy(title="TK Cross > EMA200 Strat",  overlay=true)

ema200 = ema(close, 200)
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=3)
plot(baseLine, color=#991515, title="Base Line", linewidth=3)
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)

plot(ema200, color=purple, linewidth=4,title='ema200')
strategy.initial_capital = 50000

strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200)
strategy.close('tkcross', when=conversionLine<baseLine)


start = input(2, minval=0, maxval=10, title="Start - Default = 2 - Multiplied by .01")
increment = input(2, minval=0, maxval=10, title="Step Setting (Sensitivity) - Default = 2 - Multiplied by .01" )
maximum = input(2, minval=1, maxval=10, title="Maximum Step (Sensitivity) - Default = 2 - Multiplied by .10")
sus = input(true, "Show Up Trending Parabolic Sar")
sds = input(true, "Show Down Trending Parabolic Sar")
disc = input(false, title="Start and Step settings are *.01 so 2 = .02 etc, Maximum Step is *.10 so 2 = .2")
//"------Step Setting Definition------"
//"A higher step moves SAR closer to the price action, which makes a reversal more likely."
//"The indicator will reverse too often if the step is set too high."

//"------Maximum Step Definition-----")
//"The sensitivity of the indicator can also be adjusted using the Maximum Step."
//"While the Maximum Step can influence sensitivity, the Step carries more weight"
//"because it sets the incremental rate-of-increase as the trend develops"

startCalc = start * .01
incrementCalc = increment * .01
maximumCalc = maximum * .10

sarUp = sar(startCalc, incrementCalc, maximumCalc)
sarDown = sar(startCalc, incrementCalc, maximumCalc)

colUp = close >= sarDown ? lime : na
colDown = close <= sarUp ? red : na

plot(sus and sarUp ? sarUp : na, title="Up Trending SAR", style=circles, linewidth=3,color=colUp)
plot(sds and sarDown ? sarDown : na, title="Up Trending SAR", style=circles, linewidth=3,color=colDown)





Thêm nữa