이 전략은 원래의 변화율 (ROC) 전략을 최적화합니다. 원래의 ROC 전략과 비교하면 이 전략은 다음과 같은 최적화를 가지고 있습니다.
이러한 최적화 조치를 통해 많은 유효하지 않은 신호를 필터링하여 전략을 더 안정적이고 신뢰할 수 있습니다.
이 전략의 핵심 지표는 변화율 (ROC) 이다. ROC는 특정 기간 동안 주식 가격의 변화율을 측정한다. 이 전략은 먼저 9 기간 동안 ROC 값을 계산한다. 그 다음 지난 200 기간 동안이 ROC 지표의 최대 값을 기록하고 동력의 상대적 강도를 얻기 위해 현재 ROC를 최대 역사 ROC의 비율로 계산한다. 예를 들어 지난 200 일 동안 가장 높은 ROC가 100에 도달하면 오늘날의 ROC가 80일 때 상대적 강도는 80%이다.
상대적 강도는 단기 변동을 필터링하고 부드러운 곡선을 얻기 위해 10 기간 SMA로 부드럽게됩니다. 부드러운 곡선이 3 일 동안 지속적으로 상승하고 값이 -80% 이하인 경우 주식 가격 하락이 느려지기 시작한다고 간주되며 바닥 신호가 나타나므로 길게 이동합니다. 부드러운 곡선이 3 일 동안 지속적으로 떨어지고 값이 80% 이상인 경우 주식 가격 상승이 느려지기 시작하고 상위 신호가 나타나므로 가까운 위치로 간주됩니다.
원래 ROC 전략과 비교했을 때, 이 전략은 다음과 같은 주요 장점을 가지고 있습니다.
일반적으로 이 전략은 ROC 지표를 효과적으로 처리하여 라이브 거래에 더 적합하게 만듭니다.
이 전략의 주요 위험은 다음과 같습니다.
위의 위험을 줄이기 위해 주요 트렌드를 결정하기 위해 트렌드 지표를 결합하는 것을 고려하십시오. 문턱 매개 변수를 조정하고 최적 매개 변수를 테스트하십시오. SMA 사이클 매개 변수를 최적화하십시오.
전략은 다음과 같은 방법으로 최적화 될 수 있습니다.
이 전략은 ROC 지표의 2차 개발에 기반한 최적화 전략이다. 이는 유효하지 않은 신호를 필터링하고 전략을 더 안정적으로 만들기 위해 역사적 최대 가치 비교, SMA 평형화, 구매 및 판매 임계와 같은 방법을 도입한다. 주요 장점은 실시간 거래에 적합한 높은 신호 품질이다. 트렌드 결합, 매개 변수 최적화 등으로 후속 개선이 가능하여 전략 성능을 더욱 향상시킬 수 있다.
/*backtest start: 2024-02-12 00:00:00 end: 2024-02-19 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Rate Of Change Mod Strategy", shorttitle="ROC", format=format.price, precision=2) //length = input.int(9, minval=1) //source = input(close, "Source") //roc = 100 * (source - source[length])/source[length] //plot(roc, color=#2962FF, title="ROC") //hline(0, color=#787B86, title="Zero Line") length = input.int(9, minval=1, title="Length") maxHistory = input(200, title="Max Historical Period for ROC") lenghtSmooth = input.int(10, minval=1, title="Length Smoothed ROC") lenghtBUY = input.int(-80, title="Buy Threshold") lenghtSELL = input.int(80, title="Buy Threshold") source = close roc = 100 * (source - source[length]) / source[length] // Calculate the maximum ROC value in the historical period maxRoc = ta.highest(roc, maxHistory) // Calculate current ROC as a percentage of the maximum historical ROC rocPercentage = (roc / maxRoc) * 100 rocPercentageS = ta.sma(rocPercentage, lenghtSmooth) if ta.rising(rocPercentageS, 3) and rocPercentageS < lenghtBUY strategy.entry("Buy", strategy.long) if ta.falling(rocPercentageS, 3) and rocPercentageS > lenghtSELL strategy.close("Buy") plot(rocPercentage, color=color.new(color.blue, 0), title="Percentage ROC") plot(rocPercentageS, color=color.new(#21f32c, 0), title="Percentage ROC") hline(0, color=color.new(color.gray, 0), title="Zero Line")