Xu hướng dao động xoáy theo chiến lược

Tác giả:ChaoZhang, Ngày: 2023-12-07 16:48:45
Tags:

img

Tổng quan

Chiến lược theo xu hướng của Động cơ xoáy là một chiến lược theo dõi xu hướng dựa trên Chỉ số xoắn ốc. Nó sử dụng trung bình động của nhiều khung thời gian để xây dựng Chỉ số xoắn ốc để xác định xu hướng giá tiềm năng và kết hợp với trung bình động ngắn hơn như một phán đoán phụ để đạt được các hoạt động theo dõi xu hướng rủi ro thấp.

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

Chỉ số cơ bản của chiến lược này là Chỉ số xoáy. Chỉ số xoáy bao gồm các trung bình động ngắn hạn, trung hạn và dài hạn của nhiều khung thời gian. Cụ thể, chiến lược sử dụng trung bình động 6 ngày, 27 ngày, 72 ngày và 234 ngày. Trung bình động ngắn hạn phản ánh xu hướng giá mới nhất, trong khi trung bình động dài hạn phản ánh xu hướng dài hạn.

Lợi thế đáng kể của Chỉ số xoáy là nó đánh giá chính xác xu hướng và lọc hiệu quả tiếng ồn thị trường. Tuy nhiên, phản ứng của nó không đủ nhạy để nắm bắt các điểm chuyển đổi kịp thời. Do đó, chiến lược kết hợp một đường trung bình di chuyển 6 ngày nhạy cảm hơn để xây dựng một chỉ số đánh giá phụ trợ. Mua khi cả Chỉ số xoáy và chỉ số phụ trợ vượt qua trên đường không, và bán khi cả hai chỉ số vượt qua dưới đường không. Điều này tạo thành một logic xác nhận đa nơi Chỉ số xoáy xác định xu hướng và sức mạnh trong khi chỉ số phụ trợ xác định các điểm vào và ra cụ thể, lọc ra các tín hiệu sai trong khi cải thiện độ nhạy của các hoạt động.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là độ chính xác của phán đoán và độ nhạy của các giao dịch. Sự kết hợp của Chỉ số xoáy và các chỉ số phụ trợ đạt được sự thống nhất hữu cơ của phán đoán xu hướng và xác định các điểm vào / ra cụ thể trong khi tránh can thiệp với nhau. Cơ chế xác nhận đa có thể lọc hiệu quả tiếng ồn thị trường và tránh giao dịch sai. Đồng thời, việc thêm chỉ số phụ trợ cũng đảm bảo độ nhạy của các hoạt động của chiến lược.

So với các chiến lược chỉ số duy nhất, lợi thế của chiến lược này là nó kết hợp nhiều chỉ số để đạt được khả năng mạnh mẽ hơn trong việc xác định và phản ứng với những thay đổi trên thị trường.

Phân tích rủi ro

Các rủi ro chính của chiến lược này đến từ việc thiết lập tham số không đúng của các chỉ số và tác động của các sự kiện cực đoan. Các tham số của đường trung bình động cần cân bằng độ nhạy và khả năng chống nhiễu tiếng ồn.

Để giảm thiểu những rủi ro này, các thông số nên được tối ưu hóa và kiểm tra lại để ổn định hiệu suất chỉ số. Ngoài ra, chú ý chặt chẽ đến tác động của thị trường từ các sự kiện lớn, tạm dừng các chiến lược khi cần thiết để tránh sai lầm trong thời gian biến động bất thường. Khi giá giảm dần, giảm dần các vị trí cũng là một biện pháp bảo tồn vốn hiệu quả.

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

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các tham số trung bình động để cải thiện khả năng chống ồn và độ nhạy hoạt động của chỉ báo.

  2. Thêm cơ chế dừng lỗ. Thiết lập điểm dừng lỗ khi giá phá vỡ mức hỗ trợ chính theo hướng không thuận lợi để tránh tổn thất thêm.

  3. Kết hợp các đánh giá chỉ số khác để tăng sự ổn định của chiến lược, ví dụ: chỉ nhận tín hiệu khi khối lượng giao dịch tăng lên.

  4. Sử dụng các bộ tham số khác nhau dựa trên các giai đoạn thị trường khác nhau. Ví dụ, các tham số tích cực hơn trong các thị trường tăng, và các thiết lập ổn định hơn trong các thị trường gấu.

Kết luận

Chiến lược theo xu hướng dao động xoáy kết hợp thành công phán đoán xu hướng và thực thi thông qua Chỉ số xoáy xác định hướng / sức mạnh xu hướng giá và một đường trung bình động ngắn hạn nhạy cảm xác định thời gian vào / ra cụ thể. Bằng cách tối ưu hóa các thông số, thêm lỗ dừng và giới thiệu các cơ chế trạng thái, chiến lược có tiềm năng để tăng thêm khả năng chống rủi ro và đạt được các số liệu kiểm tra ngược và hiệu suất trực tiếp vượt trội.


/*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")

  




Thêm nữa