이 전략은 RSI 지표를 사용하여 매입 시기를 판단하는 것과 ATR 중지 중지 시기를 적용하는 경향 추적 전략의 일종이다. 다른 주기 RSI 지표를 교차하여 시장 추세 전환점을 결정하고, 상쇄 가격 판단 필터와 더 많은 공백 시기를 결정한다. 중지 중지 시기는 위험을 효과적으로 제어하고 수익을 잠금한다.
이 전략은 먼저 SMA 평준화 기술을 사용하여 26주기의 지수 이동 평균을 계산하여 다중 시장 판단의 기준으로 사용한다. 그리고는 RSI 지수의 4주기 값을 계산하여 30의 초상 판매 지역을 거쳐 내려가면 시장이 상승할 수 있다고 생각합니다. 이 시점에 shortdays 파라미터의 새로운 높이가 longdays 파라미터의 최근의 새로운 높이를 돌파 할 수 있는지 판단합니다.
입시 후, 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()