
Chiến lược theo dõi xu hướng của xoáy xoáy là một chiến lược theo dõi xu hướng dựa trên các chỉ số xoáy xoáy. Nó sử dụng các đường trung bình di chuyển của nhiều chu kỳ khác nhau để xây dựng các chỉ số xoáy xoáy, xác định xu hướng tiềm năng của giá cả và kết hợp với các đường trung bình di chuyển của chu kỳ ngắn hơn như một phán đoán hỗ trợ, để thực hiện các hoạt động theo dõi xu hướng có rủi ro thấp.
Các chỉ số trung tâm của chiến lược là các chỉ số xoáy. Các chỉ số xoáy được tạo thành từ các trung bình di chuyển ngắn hạn, trung bình và dài hạn của nhiều chu kỳ khác nhau. Cụ thể hơn, chiến lược sử dụng các trung bình di chuyển bốn chu kỳ là 6, 27, 72 và 234 ngày.
Các chỉ số xoáy có lợi thế đáng kể là xác định xu hướng chính xác, có thể lọc hiệu quả tiếng ồn thị trường. Tuy nhiên, phản ứng của nó không đủ nhạy cảm, không thể bắt kịp thời điểm biến. Do đó, chiến lược đã thêm một trung bình di chuyển 6 ngày nhạy cảm hơn, xây dựng các chỉ số phán đoán hỗ trợ.
Ưu điểm lớn nhất của chiến lược này là tính chính xác và nhạy cảm của chiến lược. Sự kết hợp của các chỉ số xoáy và các chỉ số hỗ trợ, tạo ra sự thống nhất hữu cơ trong việc đánh giá xu hướng và xác định điểm mua bán cụ thể, và các công việc của các cổ đông tránh can thiệp lẫn nhau. Cơ chế xác nhận nhiều lần có thể lọc hiệu quả tiếng ồn thị trường, tránh hoạt động sai.
So với chiến lược chỉ số duy nhất, chiến lược này sử dụng lợi thế của nhiều chỉ số tổng hợp, có khả năng nhận diện và đáp ứng tốt hơn với sự thay đổi của thị trường. Trong trường hợp xu hướng lớn không thay đổi, chiến lược có thể đạt được lợi nhuận ổn định; Khi xu hướng lớn thay đổi, chiến lược cũng có thể phản ứng nhanh chóng, giảm tổn thất.
Rủi ro chính của chiến lược này là các tham số chỉ số được thiết lập không đúng và tác động của sự kiện bất ngờ. Thiết lập tham số trung bình di chuyển cần cân bằng giữa độ nhạy và khả năng chống nhiễu tiếng ồn, nếu tham số được thiết lập không đúng, sẽ dẫn đến hành động bất thường của chiến lược. Ngoài ra, sự kiện bất ngờ quan trọng cũng có thể dẫn đến biến động mạnh mẽ của giá, làm cho chỉ số không hiệu quả, dẫn đến giao dịch sai.
Để giảm những rủi ro này, nên tối ưu hóa các tham số và kiểm tra lại để chỉ số hoạt động ổn định hơn. Ngoài ra, cần chú ý đến tác động của thị trường do các sự kiện quan trọng, tạm dừng chiến lược khi cần thiết và tránh hành động sai trong thời gian biến động bất thường.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa tham số trung bình di chuyển, tăng khả năng chống nhiễu và nhạy cảm khi vận hành các chỉ số. Bạn có thể thử các kết hợp các tham số chiều dài khác nhau, chọn các chỉ số ổn định và nhạy cảm.
Tăng cơ chế dừng lỗ. Thiết lập điểm dừng lỗ khi giá vượt qua ngưỡng hỗ trợ quan trọng theo hướng bất lợi để tránh tổn thất thêm.
Kết hợp với các chỉ số khác, tăng sự ổn định của chiến lược. Ví dụ, thêm chỉ số khối lượng giao dịch, chỉ tạo ra tín hiệu giao dịch khi khối lượng giao dịch tăng lên.
Sử dụng các tổ hợp tham số khác nhau tùy theo giai đoạn thị trường khác nhau. Ví dụ: tham số tích cực hơn được sử dụng trong thị trường bò và thiết lập ổn định hơn trong thị trường gấu.
Chiến lược theo dõi xu hướng của máy rung xoáy xoáy sử dụng chỉ số xoáy xoáy để xác định hướng và cường độ của xu hướng giá, và hỗ trợ bằng đường trung bình di chuyển ngắn hạn nhạy cảm hơn để xác định thời điểm mua bán cụ thể. Chiến lược này kết hợp thành công hai mặt của phán đoán xu hướng và thực hiện giao dịch, đảm bảo sự ổn định của hoạt động và tăng tính linh hoạt của chiến lược.
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//swap strategy line for study line to enable backtesting
strategy(title="Vortex Ocillator" )
//study(title = "Vortex Oscillator", precision = 6)
// Component Code Start
// Example usage:
// if testPeriod()
// strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2048, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Code Stop
//vortex histogram
short_input = input(6, minval = 1)
long_input = input(27, minval = 1)
longer_input = input(72, minval = 1)
longest_input = input(234, minval = 1)
short = sma(close, short_input)
long = sma(close, long_input)
longer = sma(close, longer_input)
longest = sma(close, longest_input)
hist = short - long
longhist = short - longer
longesthist = short - longest
hist_fractal = input(3, minval = 0)
longhist_fractal = input(2, minval = 0)
longesthist_fractal = input(4, minval = 0)
vortexhist = avg((hist / hist_fractal), (longhist / longhist_fractal), (longesthist / longesthist_fractal))
crossover_calc = vortexhist > 0 and vortexhist[1] < 0
crossunder_calc = vortexhist < 0 and vortexhist[1] > 0
crossover2 = crossover(vortexhist, 0)
crossunder2 = crossunder(vortexhist, 0)
hist_color = hist > 0? fuchsia : purple
longhist_color = longhist > 0? olive : orange
longesthist_color = longesthist > 0? teal : blue
vortexhist_color = vortexhist >= 0? green : red
plot(longesthist, "Longest Ocillator", style = histogram, color = longesthist_color, transp = 5)
plot(longhist, "Longer Ocillator", style = histogram, color = longhist_color, transp = 30)
plot(hist, "Short Ocillator", style = histogram, color = hist_color, transp = 30)
plot(vortexhist, "Vortex Ocillator", style = columns, color = vortexhist_color, transp = 40)
plotshape(crossover_calc,title = "Crossover",location = location.bottom, style = shape.triangleup, size = size.small, color = green)
plotshape(crossunder_calc,title = "Crossunder",location = location.bottom, style = shape.triangledown, size = size.small, color = red)
//micro
micro_ema_length = input(6,"Micro EMA Length")
micro = ema(vortexhist, micro_ema_length)
plot(micro, title = "micro", linewidth = 1, color = white)
microup = crossover(vortexhist, micro)
microdown = crossunder(vortexhist, micro)
//new micro signals
xmicroup = microup and vortexhist >=0 or crossover_calc
xmicrodown = microdown and vortexhist >=0 or crossunder_calc
plotshape(xmicroup, title = "Micro up", style = shape.circle, color = olive, location = location.bottom, size = size.tiny)
plotshape(xmicrodown, title = "Micro down", style = shape.circle, color = fuchsia, location = location.bottom, size = size.tiny)
//optional strategy options for backtesting, comment out the alertcondition rows and swap the top study row for the strategy row to compile as strategy
if testPeriod()
strategy.entry("buy", true, 1, when = xmicroup, limit = low)
if testPeriod()
strategy.close("buy", when = xmicrodown)
//if (xmicroup)
//strategy.entry("My Long Entry Id", strategy.long)
//if (xmicroup)
//strategy.exit("My Short Exit Id", "My Short Entry Id")
//if (xmicrodown)
//strategy.exit("My Long Exit Id", "My Long Entry Id")