
Chiến lược này là một hệ thống giao dịch cân bằng động dựa trên nhiều chỉ số kỹ thuật. Nó sử dụng một số công cụ phân tích kỹ thuật như chỉ số tương đối mạnh (RSI), Bollinger Bands (BB), chỉ số di chuyển trung bình (EMA) và chỉ số phân tán xu hướng di chuyển trung bình (MACD) để xác định cơ hội mua và bán thị trường thông qua xác minh lẫn nhau giữa các chỉ số. Chiến lược này sử dụng quản lý vị trí phần trăm, đặt 10% tổng tài sản theo mặc định cho mỗi giao dịch.
Lập luận cốt lõi của chiến lược là tăng độ tin cậy của tín hiệu giao dịch bằng cách xác nhận đồng bộ của nhiều chỉ số. Cụ thể:
Các tín hiệu mua phải đáp ứng ít nhất hai trong số các điều kiện sau:
Các tín hiệu bán ra được kích hoạt khi xảy ra một trong các tình huống sau:
Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh bằng cách sử dụng kết hợp nhiều chỉ số kỹ thuật. Bằng cách kiểm tra chéo giữa các chỉ số, tín hiệu giao dịch được tăng độ tin cậy. Trong khi đó, quản lý vị trí bảo thủ để kiểm soát rủi ro. Mặc dù có một số khía cạnh cần được tối ưu hóa, thiết kế khung tổng thể hợp lý và có giá trị ứng dụng thực tế.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ETH/USDT Multi-Indicator Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=250)
// Parametri za RSI
rsiPeriod = 14
rsiOversold = 30
rsiOverbought = 70
// Parametri za Bollinger Bands
bbLength = 20
bbStdDev = 2
// Parametri za EMA
emaShort = 50
emaLong = 200
// Parametri za MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// RSI izračun
rsi = ta.rsi(close, rsiPeriod)
// Bollinger Bands izračun
basis = ta.sma(close, bbLength)
upperBand = basis + bbStdDev * ta.stdev(close, bbLength)
lowerBand = basis - bbStdDev * ta.stdev(close, bbLength)
// EMA izračun
emaFast = ta.ema(close, emaShort)
emaSlow = ta.ema(close, emaLong)
// Pravilo 1: RSI prelazi iznad 30 nakon preprodatosti
rsiSignal = rsi < rsiOversold
// Pravilo 2: Cena dotakne donju Bollinger traku
bbSignal = close < lowerBand
// Pravilo 3: EMA crossover (zlatni krst)
emaSignal = emaFast > emaSlow
// Pravilo 4: MACD prelazak iznad signalne linije
macdSignal = macdLine > signalLine
// Kombinovani signal za kupovinu (bar dva uslova ispunjena)
buySignal = (rsiSignal and bbSignal) or (emaSignal and macdSignal)
// Pravilo za prodaju (RSI prekupljen ili cena iznad gornje Bollinger trake)
sellSignal = rsi > rsiOverbought or close > upperBand
// Vizualizacija signala
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategija: Otvaranje i zatvaranje pozicija
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.close("Buy")
// Bollinger Bands vizualizacija
plot(upperBand, color=color.new(color.blue, 50), title="Upper Band")
plot(lowerBand, color=color.new(color.blue, 50), title="Lower Band")
plot(basis, color=color.blue, title="Basis")
// EMA vizualizacija
plot(emaFast, color=color.orange, title="EMA Short")
plot(emaSlow, color=color.red, title="EMA Long")