
이 전략은 다중 기술 지표를 기반으로 한 동적 균형 거래 시스템이다. 이 전략은 상대적으로 강한 지표 ((RSI), 브린 밴드 ((BB), 지수 이동 평균 ((EMA) 및 이동 평균 동질 분산 지표 ((MACD) 와 같은 여러 기술 분석 도구를 종합적으로 사용하여 지표 간의 상호 검증을 통해 시장의 매매 기회를 식별한다. 이 전략은 백분율 포지션 관리 방식을 채택하고 있으며, 매 거래마다 전체 자산의 10%를 기본으로 투입한다. 이러한 보수적인 포지션 관리는 위험을 제어하는 데 도움이됩니다.
이 전략의 핵심 논리는 여러 지표의 연동 확인을 통해 거래 신호의 신뢰성을 높이는 것입니다. 구체적으로:
구매 신호는 다음 조건 중 적어도 두 가지를 충족해야 합니다.
판매 신호는 다음의 어느 하나에 해당하는 경우 발동됩니다.
이 전략은 다중 기술 지표의 조합 응용을 통해, 비교적 완전한 거래 시스템을 구축한다. 지표 간의 교차 검증을 통해 거래 신호의 신뢰성을 높인다. 동시에 위험을 제어하기 위해 보수적인 포지션 관리를 사용합니다. 최적화해야 할 부분이 있지만, 전체적인 프레임 워크 디자인은 합리적이며 실제 응용 가치가 있습니다.
/*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")