
Đây là một chiến lược giao dịch quay trở lại trung bình tổng hợp của VWAP (giá trung bình trọng lượng giao dịch) và OBV (giá năng lượng) RSI. Chiến lược này được thực hiện bằng cách theo dõi mức độ lệch của giá so với VWAP và trạng thái mua bán quá mức của chỉ số OBV-RSI để giao dịch khi thị trường xảy ra tình trạng cực đoan.
Chiến lược này dựa trên hai chỉ số cốt lõi:
Điều kiện mở cửa:
Điều kiện:
Chiến lược này được xây dựng bằng cách kết hợp các chỉ số VWAP và OBV-RSI để xây dựng một hệ thống giao dịch quay trở về giá trị trung bình vững chắc. Chiến lược tìm kiếm cơ hội giao dịch trong tình trạng thị trường cực đoan và bảo vệ an toàn tài chính thông qua nhiều cơ chế kiểm soát rủi ro. Mặc dù có một số rủi ro, nhưng thông qua việc tối ưu hóa và hoàn thiện liên tục, chiến lược có khả năng duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy('[Hoss] Combined Strategy', overlay=true)
// Indikator 1: [Hoss] VWAP Deviation
indicator_vwap = input.bool(true, title="Show VWAP Deviation Indicator", group="Visibility")
length = input.int(60, title="VWAP Length", group="VWAP Settings")
src = input(close, title="Source", group="VWAP Settings")
// Berechnungen für VWAP
vwmean = ta.wma(src, length)
dev = ta.stdev(src, length)
basis = vwmean
upper_dev2 = vwmean + dev * 2
lower_dev2 = vwmean - dev * 2
// Plotting VWAP Deviation
plot(indicator_vwap ? basis : na, color=color.gray, title='Basis', linewidth=2)
plot1 = plot(indicator_vwap ? upper_dev2 : na, color=color.red, title='Upper Dev 2', linewidth=2)
plot2 = plot(indicator_vwap ? lower_dev2 : na, color=color.green, title='Lower Dev 2', linewidth=2)
fill(plot1, plot2, color=color.new(color.green, 80), title='Deviation Band')
// Indikator 2: [Hoss] OBV RSI
indicator_obv_rsi = input.bool(true, title="Show OBV RSI Indicator", group="Visibility")
len = input.int(14, title="RSI Length", group="OBV RSI Settings")
obv = ta.cum(ta.change(src) > 0 ? volume : ta.change(src) < 0 ? -volume : 0)
rsi = ta.rsi(obv, len)
// Plotting OBV RSI
plot(indicator_obv_rsi ? rsi : na, color=color.blue, title="OBV RSI", linewidth=2)
hline(70, title="Overbought", color=color.red, linestyle=hline.style_dashed)
hline(30, title="Oversold", color=color.green, linestyle=hline.style_dashed)
// Strategie: Kauf- und Verkaufssignale
long_condition = not na(rsi) and rsi <= 30 and close <= lower_dev2
short_condition = not na(rsi) and rsi >= 70 and close >= upper_dev2
if (long_condition)
strategy.entry("Long", strategy.long, stop=close * 0.994) // Stop-Loss bei 0.6%
if (short_condition)
strategy.entry("Short", strategy.short, stop=close * 1.006) // Stop-Loss bei 0.6%
// Flash Close beim Erreichen des VWAP
if (strategy.position_size > 0 and close >= basis)
strategy.close("Long")
if (strategy.position_size < 0 and close <= basis)
strategy.close("Short")