
Chiến lược này là một chiến lược theo dõi xu hướng dựa trên đường thẳng. Nó sử dụng chỉ số biểu đồ đám mây Ichimoku để xác định hướng xu hướng, kết hợp với tín hiệu lọc trung bình di chuyển 200 ngày để thực hiện theo dõi xu hướng.
Chiến lược này chủ yếu sử dụng đường chuyển đổi và đường cơ sở của một biểu đồ đám mây để đánh giá xu hướng. Đường chuyển đổi là giá trung bình trong 9 ngày qua, đường cơ sở là giá trung bình trong 26 ngày qua.
Chiến lược này cũng sử dụng đường trung bình di chuyển 200 ngày để lọc tín hiệu. Chỉ khi giá đóng cửa cao hơn đường 200 ngày, tín hiệu mua sẽ được đưa ra thị trường. Điều này có thể lọc ra hầu hết các tín hiệu giả.
Trong trường hợp rút ra, chiến lược đơn giản là sử dụng chuyển đổi dưới đường xuyên qua đường cơ sở như một tín hiệu cân bằng.
Chiến lược này kết hợp các chỉ số định xu hướng và các chỉ số lọc xu hướng dài hạn 200 ngày, có thể theo dõi xu hướng hiệu quả, lọc ra hầu hết các tín hiệu giả. Sử dụng các tham số trung bình trung bình có thể làm giảm ảnh hưởng của đường trung bình do biến động bất thường của giá cả.
Chiến lược này có thể nắm bắt được các điểm thay đổi xu hướng tốt hơn so với việc sử dụng các chỉ số như trung bình di chuyển một mình, do đó điều chỉnh vị trí kịp thời. Đây là ưu điểm lớn nhất của nó.
Chiến lược này chủ yếu dựa vào các chỉ số của một biểu đồ đám mây để xác định xu hướng, và bản thân một biểu đồ đám mây cũng sẽ tạo ra tín hiệu sai. Nếu phán đoán bị sai lệch, chiến lược này có thể gây ra tổn thất.
Ngoài ra, thiết lập 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, nó dễ tạo ra tín hiệu giả; Nếu tham số đường gốc quá dài, hiệu quả theo dõi sẽ bị thay đổi. Cần điều chỉnh tối ưu hóa để đạt được sự cân bằng.
Có thể xem xét kết hợp với 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 để xác định vùng quá mua để lọc tín hiệu quá bán. Hoặc sử dụng chỉ số ATR để thiết lập điểm dừng.
Các tham số có thể được thử nghiệm nhiều hơn, chẳng hạn như điều chỉnh tham số đường chuyển đổi 5 hoặc 7 ngày để có được tín hiệu giao dịch nhạy hơn. Ngoài ra, bạn cũng có thể thử nghiệm thay đổi tham số đường cơ sở khoảng 20 ngày để cân bằng hiệu quả theo dõi.
Ngoài ra, bạn cũng có thể xem xét đóng chiến lược trong một môi trường biến động cụ thể để tránh ảnh hưởng của tình hình kinh tế mạnh mẽ.
Chiến lược này tích hợp các ưu điểm của phán đoán xu hướng và các chỉ số lọc dài hạn, có thể theo dõi hiệu quả các xu hướng trung và dài hạn. Đồng thời, các biện pháp kiểm soát và điều chỉnh tham số cũng cần được tối ưu hóa liên tục để giảm tác động của tín hiệu sai và biến động.
/*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)