RSI 추적 ADX 전략은 RSI 지표와 ADX 지표를 결합한 트렌드 추적 전략이다. RSI 지표를 사용하여 과잉 구매 및 과잉 판매 조건을 결정하고 ADX 지표를 사용하여 트렌드 강도를 측정하여 트렌드가 약화되거나 과잉 구매가 될 때 엔트리를 허용하고 트렌드가 약화되거나 과잉 구매가 될 때 종료됩니다.
이 전략은 주로 RSI 지표와 ADX 지표의 조합을 사용하여 입상과 출구를 결정합니다.
입국 조건:
20일 SMA 상승
ADX는 전날보다 0.2 이상 상승하여 강화 추세를 나타냅니다.
RSI는 85 이하로 하락하여 과잉 매입을 피합니다.
또는:
20일 SMA 상승
ADX가 상승하지만 0.2보다 낮아 가벼운 추세를 나타냅니다.
RSI는 50 이하입니다.
출입 조건:
RSI 75 이상, 과잉 매수 상태
ADX 가벼운 상승, 약한 추세
또는:
RSI 75 이상, 과잉 매수 상태
ADX 급격한 상승, 강한 추세
또는:
20일 SMA가 낮아지고 있습니다.
이 전략은 과잉 구매/ 과잉 판매를 나타내는 RSI와 과잉 구매가 되지 않은 경우 상승 추세에 진입하고 과잉 구매 또는 추세가 약화되면 탈퇴하는 트렌드를 나타내는 ADX를 사용합니다. 이는 중장기 상승 추세를 추적할 수 있습니다.
이 전략의 주요 장점은 다음과 같습니다.
RSI와 ADX를 결합하면 더 정확한 트렌드 및 과잉 구매 / 과잉 판매 판독이 가능하며 더 나은 입점과 출구를 제공합니다.
ADX는 추세 강도를 측정하여 통합 중에 윙사 출구를 피합니다.
RSI는 중장기 트렌드를 추적하고 과도한 거래를 줄이기 위해 느슨한 매개 변수를 사용합니다.
간단한 논리와 쉬운 구현, 장기적인 보유에 적합합니다.
구성 가능한 매개 변수는 유연성을 허용합니다.
주요 위험은 다음과 같습니다.
ADX 지연은 트렌드 전환점을 놓치고 더 큰 손실로 이어질 수 있습니다.
스톱 로즈는 절벽 같은 가격 하락 시 늦게 발생하여 손실을 증가시킬 수 있습니다.
너무 느슨한 RSI 매개 변수는 너무 오랫동안 과잉 매입을 유발할 수 있습니다.
너무 민감한 ADX 매개 변수는 약한 트렌드 중에 잘못된 출구를 유발할 수 있습니다.
시장 체제 변화 중에서는 비정상적으로 행동 할 수 있습니다.
위험 관리
감수성을 위해 짧은 ADX 기간을 사용하십시오.
손실을 제한하기 위해 더 단단한 스톱 로스
RSI 기간을 단축하여 장기간 과잉 매입되는 지분을 피합니다.
너무 민감한 ADX 매개 변수를 피하십시오.
중요한 시장 변동 때 수동으로 대체합니다.
전략은 다음과 같이 최적화 될 수 있습니다.
더 나은 매개 변수를 위해 RSI 기간을 테스트합니다.
트렌드 포착 능력에 대한 ADX 기간 최적화
MACD와 같은 다른 지표를 추가하여 확인합니다.
진입을 개선하기 위해 이동 평균 조합을 테스트합니다.
수익을 취하고 손실을 멈추는 것을 추가하여 위험과 보상 비율을 향상시킵니다.
시장을 판단해서 전환점에 수동으로 대체할 수 있습니다.
RSI 추적 ADX 전략은 효과적이면서도 간단한 트렌드 추적 전략이다. 정확한 트렌드 및 과잉 구매 / 과잉 판매 분석을 위해 RSI 및 ADX의 강점을 시너지화하는 것입니다. 논리는 최적화 유연성과 함께 간단하고 구현하기가 쉽습니다. ADX 지연 및 스톱 로스 설정에 대한 주의가 필요합니다. 전반적으로 중장기 트렌드 추적에 적합하며 안정적인 이익을 줄 수 있습니다.
/*backtest start: 2022-10-03 00:00:00 end: 2023-10-09 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Copyright by Reed Asset Management registered in Shanghai, China //该策略为上海蘆田资产管理有限公司制 //@version=2 strategy("[蘆田策略]ADX+RSI", overlay=true) //ADX adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = change(high) down = -change(low) truerange = rma(tr, len) plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange) minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, 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) plot(sig, color=red, title="ADX") //ADX+RSI Strategy Long Entry longEntry1 = sma(close, 20) > sma(close, 20)[1] //check if the ADX is rising longEntry2 = (adx(14, 14) - adx(14, 14)[1]) > 0.2 longEntry3 = rsi(close, 14) < 85 longEntry4 = (adx(14, 14) - adx(14, 14)[1]) > 0 longEntry5 = (adx(14, 14) - adx(14, 14)[1] ) < 0.2 longEntry6 = rsi(close, 14) < 50 longCondition1 = longEntry1 and longEntry2 and longEntry3 longCondition2 = longEntry1 and longEntry4 and longEntry5 and longEntry6 if(longCondition1 or longCondition2) strategy.entry("long", strategy.long) //ADX+RSI Strategy Long Exit longExit1 = rsi(close, 9) > 75 longExit2 = (adx(14, 14) - adx(14, 14)[1]) > 0 longExit3 = (adx(14, 14) - adx(14, 14)[1] ) < 0.2 longExit4 = (adx(14, 14) - adx(14, 14)[1]) > 0.2 longExit5 = sma(close, 20) < sma(close,20)[1] longExitCondition1 = longExit1 and longExit2 and longExit3 longExitCondition2 = longExit1 and longExit4 longStop1 = strategy.position_avg_price + 4 * tr longExitCondition3 = longExit5 longStop2 = sma(close, 20) strategy.close_all(when = longExitCondition1) if (longExitCondition2) strategy.exit("exit", "long", stop = longStop1) if (longExitCondition3) strategy.exit("exit", "long", stop = longStop2) //Strategy