
이 전략은 다중 기술 지표의 협동 분석에 기반한 거래 신호 생성 시스템이다. 전략은 상대적으로 약한 지수 ((RSI), 브린 밴드 ((BB), 일일 운동량 지수 ((IMI) 및 자금 흐름 지수 ((MFI) 의 네 가지 고전 기술 지표를 통합하여 지표 간의 교차 검증을 통해 더 신뢰할 수 있는 거래를 생성한다. 신호 전략은 설계적으로 4 시간 시기를 특별히 적합하며, 신호 강도에 따라 일반 신호와 강한 신호 두 단계로 나뉘어진다.
이 전략의 핵심 논리는 여러 지표들의 협동적인 협조를 통해 거래 신호를 확인하는 것이다. 구체적으로:
이 전략은 여러 클래식 기술 지표의 연동 분석을 통해 비교적 신뢰할 수 있는 거래 신호 생성 시스템을 구축한다. 전략 설계는 실용성과 유지 가능성에 초점을 맞추고 있으며, 충분한 최적화 공간을 예약했다. 합리적인 매개 변수 조정과 최적화 방향을 구현함으로써 전략은 실제 거래에서 안정적인 성능을 얻을 것으로 예상된다.
/*backtest
start: 2024-12-10 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Clear Buy/Sell Signals with RSI, Bollinger Bands, IMI, and MFI", overlay=true)
// Input parameters
rsiLength = input.int(14, title="RSI Length")
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(2.0, title="Bollinger Bands Std Dev")
imiLength = input.int(14, title="IMI Length")
mfiLength = input.int(14, title="MFI Length")
// RSI Calculation
rsi = ta.rsi(close, rsiLength)
// Bollinger Bands Calculation
[bbUpper, bbMiddle, bbLower] = ta.bb(close, bbLength, bbStdDev)
// Intraday Momentum Index (IMI) Calculation
upSum = math.sum(close > open ? close - open : 0, imiLength)
downSum = math.sum(close < open ? open - close : 0, imiLength)
imi = (upSum / (upSum + downSum)) * 100
// Money Flow Index (MFI) Calculation
typicalPrice = (high + low + close) / 3
mfi = ta.mfi(typicalPrice, mfiLength)
// Buy/Sell Conditions
buyCondition = rsi < 30 and close < bbLower and imi < 30 and mfi < 20
sellCondition = rsi > 70 and close > bbUpper and imi > 70 and mfi > 80
// Strong Buy/Sell Conditions
strongBuyCondition = rsi < 20 and close < bbLower and imi < 20 and mfi < 10
strongSellCondition = rsi > 80 and close > bbUpper and imi > 80 and mfi > 90
// Plot Buy/Sell Signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Plot Strong Buy/Sell Signals
plotshape(series=strongBuyCondition, title="Strong Buy Signal", location=location.belowbar, color=color.lime, style=shape.labelup, text="STRONG BUY", size=size.normal)
plotshape(series=strongSellCondition, title="Strong Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="STRONG SELL", size=size.normal)
// Strategy Logic (for Backtesting)
if (buyCondition or strongBuyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition or strongSellCondition)
strategy.entry("Sell", strategy.short)