이 전략은 크로스 사이클 판단을 통해 엔트리 타이밍을 결정하기 위해 RSI 지표를 사용하고 트렌드 추적 전략에 ATR 이익 및 정지 메커니즘을 채택합니다. 다른 사이클의 RSI 지표의 교차를 통해 시장 트렌드의 전환점을 결정하고 긴 및 짧은 포지션의 타이밍을 필터링하기 위해 폐쇄 가격을 결합합니다. 이윤 및 정지 메커니즘은 위험과 수익에 대한 잠금을 효과적으로 제어합니다.
이 전략은 먼저 26주 이동평균을 계산하기 위해 SMA 평평화 기술을 사용하여 황소 시장을 평가하는 기준으로 사용한다. 그 다음 4주 RSI 지표 값을 계산하면 과판 영역에서 30 이하를 넘으면 시장이 복귀할 수 있다고 간주된다. 이 시점에서 단기 매개 변수의 새로운 최고가 단기 매개 변수의 최근의 새로운 최고를 뚫을 수 있는지 판단하여 단기 트렌드가 강화되고 있음을 나타낸다. 위의 조건이 동시에 충족되면 긴 신호가 발송된다.
시장에 진입한 후 ATR 지표 곱셈을 수익 범위로 사용하고, 폐쇄 가격의 높은 지점의 특정 비율로 손실을 멈추십시오.
이 전략은 다음과 같은 장점을 가지고 있습니다.
RSI 지표를 사용하여 좋은 타이밍 능력으로 반전 지점을 결정합니다.
잘못된 신호를 피하기 위해 새로운 상승과 하락 메커니즘을 적용하십시오.
ATR을 사용하여 수익을 올리고, 자동으로 최적의 출구점을 추적합니다.
유연한 매개 변수 설정은 최적의 수준으로 조정할 수 있습니다.
전략 아이디어는 명확하고 이해하기 쉽고, 강한 안정성을 가지고 있습니다.
이 전략은 또한 다음과 같은 위험을 가지고 있습니다.
RSI 지표는 잘못된 신호를 발산하여 잘못된 타이밍을 초래할 수 있습니다. RSI 매개 변수는 그에 따라 조정되거나 필터링을 위해 다른 지표가 추가 될 수 있습니다.
ATR 수익 범위는 최대 수익을 차단하기 위해 너무 크거나 너무 작게 설정 될 수 있습니다. 더 나은 매개 변수 조합을 테스트 할 수 있습니다.
스톱 로스 포인트가 너무 가깝고 스톱 로스가 깨질 수 있습니다. 적절하게 스톱 로스 거리를 느슨하게하십시오.
역시험 데이터의 부족은 전략의 수익률을 과대평가 할 수 있습니다. 역시험 기간과 시장 환경 테스트를 늘려야 합니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
가장 좋은 매개 변수 조합을 찾기 위해 RSI 매개 변수와 이익과 손실 곱자를 테스트하고 최적화합니다.
전략 정확성을 높이기 위해 다른 지표를 증가시킵니다. 예를 들어 MACD, KD 등.
스톱 손실 메커니즘을 최적화하고 ATR 변동 범위에 따라 동적으로 조정합니다.
다른 거래 품종에 대한 성과 효과를 테스트하십시오. 유동성 및 높은 변동성을 가진 품종을 선택하십시오.
서로 다른 종류의 스톱 손실의 성능을 비교합니다.
이 전략의 전반적인 운영은 명확하고 원활하며, 지표 선택과 매개 변수 설정은 합리적이며, 강력한 실용성을 가지고 있습니다. 매개 변수 최적화 및 메커니즘 개선을 통해 추가 개선의 여지가 있습니다. 전반적으로 전략은 안정적인 이익을 창출 할 수있는 상대적으로 높은 능력을 가지고 있습니다. 실제 거래에서 디버깅하고 사용하기에 가치가 있습니다.
/*backtest start: 2023-02-05 00:00:00 end: 2024-01-18 05:20:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //A translation from info found at http://backtestwizard.com/swing-trading-system-for-stocks/ strategy("Swing Trading System RSI", overlay=true) source = close[1] longperiod = input(26,"long week",minval=2,maxval=500,step=1) s = request.security(syminfo.tickerid, "W", sma(close[1], longperiod)) // 1 Day plot(s) shortdays = input(21,"short days high period",minval=2,maxval=500,step=1) longdays = input(50,"long days high period",minval=2,maxval=500,step=1) rsiperiod = input(4,"rsi period",minval=2,maxval=500,step=1) rsithresh = input(30,"rsi thresh",minval=2,maxval=500,step=1) highcheck = highest(source,shortdays) == highest(source,longdays) rsicheck = crossunder(rsi(source,rsiperiod),rsithresh) longCondition = (highcheck) and (rsicheck) and source > s if (longCondition) strategy.entry("My Long Entry Id", strategy.long) profittarget = input(3,"profit target",minval=2,maxval=500,step=1) stoploss = input(2,"stop target",minval=2,maxval=500,step=1) exitCondition1 = source > strategy.position_avg_price + (atr(50) * profittarget) exitCondition2 = source < strategy.position_avg_price - (atr(50) * stoploss) if (exitCondition1) strategy.close_all() if (exitCondition2) strategy.close_all()