이 전략의 이름은 기반 다중 지표 통합의 트렌드 추적 전략 . 이 전략은 RSI, ADX 및 MACD의 세 가지 지표를 사용하여 통합하여 상승 추세가 확인되면 더 많이하고 하락 추세가 확인되면 평소합니다.
RSI 지표는 과매매 과매매 상태를 판단한다. RSI 상위 30을 넘기는 것은 과매매의 끝을 의미하며, 더 많은 것을 고려한다. RSI 아래 70을 넘기는 것은 과매매의 끝을 의미하며, 평점을 고려한다.
ADX 지표는 트렌드 강도를 판단한다. ADX 값이 25를 넘으면 트렌드 상태에 들어간다는 것을 의미하며, 25을 넘으면 트렌드가 끝난다는 것을 의미한다.
MACD 지표는 단기 트렌드를 판단한다. DIFF 위쪽 DEA를 넘어서는 것은 상단선 상승을 의미하며, 더 많은 것을 고려한다.
RSI, ADX 및 MACD 삼가지 지표가 동시에 다면 신호를 표시 할 때, 더 많이하십시오. 세 가지 지표가 다면 트렌드의 끝을 표시 할 때, 평소하십시오.
이 전략의 장점은 다중 지표 확인으로 거짓 신호를 효과적으로 방지할 수 있다. 그러나 지표 매개 변수는 개별적으로 최적화가 필요하며, 손해 방지 전략은 필수적이다.
전반적으로, 지표 통합은 판단의 효율성을 향상시킵니다. 그러나 거래자는 여전히 분별력을 유지하여 실제 상황에 따라 전략 매개 변수를 조정하고 검증해야합니다.
/*backtest
start: 2023-09-05 00:00:00
end: 2023-09-08 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// RSI
//@version=3
// strategy("Femi Strategy", overlay=true)
strategy("Femi Strategy", overlay=false)
RSIlength = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, RSIlength)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
// ADX
//@version=3
adxlen = input(14)
dilen = input(14)
adxThreshold = input( 25 )
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
// MACD
//@version=3
MACDZero = input(0)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
if (not na(vrsi))
if (crossover(delta, MACDZero))
strategy.entry("FEMIMACDLE", strategy.long, comment="FEMIMACDLE")
else
strategy.cancel(id="FEMIMACDLE")
if (crossunder(vrsi, overSold))
strategy.entry("FEMIRSILE", strategy.long, comment="FEMIRSILE")
else
strategy.cancel(id="FEMIRSILE")
// if(crossover(sig, adxThreshold)) // crossover(sig, adxThreshold) crossover(delta, MACDZero) crossunder(vrsi, overSold)
// strategy.entry("FEMIADXLE", strategy.long, comment="FEMIADXLE")
// else
// strategy.cancel(id="FEMIADXLE")
// if (crossover(source, lower))
// strategy.entry("FEMIBBLE", strategy.long, comment="FEMIBBLE")
// else
// strategy.cancel(id="FEMIBBLE")
// if(crossunder(sig, adxThreshold))
// strategy.cancel(id="FEMILE")
// strategy.exit(id="FEMILE")
// if (crossunder(delta, MACDZero))
// strategy.entry("FEMIMACDSE", strategy.short, comment="FEMIMACDSE")
if (crossover(vrsi, overBought))
// strategy.entry("FEMIRSISE", strategy.short, comment="FEMIRSISE")
strategy.close("FEMIRSILE")
strategy.close("FEMIMACDLE")
strategy.close("FEMIADXLE")
strategy.close("FEMIBBLE")
if (crossunder(sig, adxThreshold) and crossunder(delta, MACDZero) and crossunder(source, upper)) // crossover(delta, MACDZero) crossover(vrsi, overSold) crossover(sig, adxThreshold)
strategy.close("FEMIRSILE")
strategy.close("FEMIMACDLE")
strategy.close("FEMIADXLE")
strategy.close("FEMIBBLE")
// if(crossunder(source, upper))
// strategy.close("FEMIRSILE")
// strategy.close("FEMIMACDLE")
// strategy.close("FEMIADXLE")
// strategy.close("FEMIBBLE")
// strategy.entry("FEMIADXSE", strategy.short, comment="FEMIADXSE")
// else
// strategy.cancel(id="FEMISE")
// plot(sig, color=red, title="ADX", linewidth=2, style=areabr)
// plot(adxThreshold, color=blue, title="ADX")
// plot(vrsi, color=green, title="RSI", linewidth=2, style=areabr)
// plot(overSold, color=blue, title="RSI")
// plot(overBought, color=red, title="RSI")
// plot(delta, color=green, title="MACD", linewidth=2, style=areabr)
// plot(MACDZero, color=blue, title="MACD")
// plot(overBought, color=red, title="MACD")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)