
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên các chỉ số năng lượng biến động (Vortex Indicator, VI). Chiến lược này xác định các điểm biến động của xu hướng thị trường bằng cách tính toán động lượng tích cực (VI +) và động lượng tiêu cực (VI -), và tạo ra tín hiệu giao dịch tại các điểm giao nhau của các chỉ số quan trọng. Chiến lược này sử dụng trung bình di chuyển trơn (SMA) để giảm tiếng ồn và tăng độ tin cậy của tín hiệu.
Trọng tâm của chiến lược là đánh giá hướng xu hướng bằng cách so sánh cường độ tương đối của VI + và VI - . Quá trình tính toán cụ thể như sau:
Chiến lược này cung cấp một khuôn khổ phân tích đáng tin cậy cho giao dịch theo dõi xu hướng thông qua việc áp dụng các chỉ số năng lượng biến động. Mặc dù có một số chậm trễ, nhưng có thể xây dựng một hệ thống giao dịch ổn định thông qua các biện pháp quản lý rủi ro và tối ưu hóa tham số hợp lý.
/*backtest
start: 2022-02-11 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Vortex Strategy with Signals", shorttitle="VI_Strat", overlay=true)
// Užívateľský vstup
length = input.int(14, title="Period", minval=1)
//------------------------------------
// 1) Výpočet Vortexu
//------------------------------------
vmPlus = math.abs(high - low[1])
vmMinus = math.abs(low - high[1])
trueRange = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
// SMA vyhladzovanie
smoothedVMPlus = ta.sma(vmPlus, length)
smoothedVMMinus = ta.sma(vmMinus, length)
smoothedTrueRange = ta.sma(trueRange, length)
// Vortex Indikátory
viPlus = smoothedVMPlus / smoothedTrueRange
viMinus = smoothedVMMinus / smoothedTrueRange
//------------------------------------
// 2) Plot indikátora
//------------------------------------
plot(viPlus, color=color.green, title="VI+")
plot(viMinus, color=color.red, title="VI-")
//------------------------------------
// 3) Definícia signálov
//------------------------------------
bullSignal = ta.crossover(viPlus, viMinus) // VI+ pretína VI- smerom nahor
bearSignal = ta.crossunder(viPlus, viMinus) // VI+ pretína VI- smerom nadol
//------------------------------------
// 4) Vizualizácia signálov na grafe
//------------------------------------
plotshape(bullSignal,
title="Bull Signal",
style=shape.labelup,
location=location.belowbar,
color=color.green,
text="BUY",
textcolor=color.white,
size=size.small)
plotshape(bearSignal,
title="Bear Signal",
style=shape.labeldown,
location=location.abovebar,
color=color.red,
text="SELL",
textcolor=color.white,
size=size.small)
//------------------------------------
// 5) STRATEGY LOGIC
//------------------------------------
if bullSignal
strategy.entry("Long", strategy.long)
if bearSignal
strategy.entry("Short", strategy.short)