
이 전략은 동력 지표 변화 비율 ((ROC) 을 기반으로 최적화 개선을 하는 전략이다. 원래의 ROC 전략에 비해 이 전략은 다음과 같은 최적화를 한다:
이러한 최적화 수단으로, 많은 비효율적 신호를 필터링하여 전략을 더 안정적이고 신뢰할 수 있게 할 수 있습니다.
이 전략의 핵심 지표는 변화의 비율이다. ROC는 주식 가격의 일정한 주기의 변화의 속도를 측정한다. 이 전략은 먼저 9주기의 ROC 값을 계산한다. 그 다음에는 이 ROC 지표의 지난 200주기의 최대 값을 기록하고, 현재 ROC가 최대 역사 ROC의 비율을 계산하여 동력의 상대 강도를 얻는다. 예를 들어, 지난 200일 동안 ROC이 100을 넘어서면, 그날의 ROC이 80일 때 상대 강도는 80%이다.
이 상대적 강도는 길이 10의 SMA를 통해 부드럽게 처리하고, 단기 변동을 필터링하여, 부드러운 곡선을 얻는다. 부드러운 곡선이 3일 연속으로 상승하고, 값이 -80% 이하일 때, 주식 가격 하락이 느려지기 시작하고, 바닥의 징후가 생기는 것으로 간주하고, 따라서 더 많은 것을 한다. 부드러운 곡선이 3일 연속으로 하락하고, 값이 80% 이상일 때, 주식 가격 상승이 느려지기 시작하고, 상단의 징후가 생기는 것으로 간주하고, 따라서 평지한다.
이 전략은 원래의 ROC 전략에 비해 다음과 같은 장점이 있습니다.
전체적으로, 이 전략은 ROC 지표에 대한 효과적인 2차 가공을 수행하여 실판 거래에 더 적합하게 만들었습니다.
이 전략에는 다음과 같은 위험들이 있습니다.
위와 같은 위험을 줄이기 위해, 트렌드 지표와 결합하여 큰 트렌드를 판단 할 수 있습니다. 절벽 파라미터를 조정하여 최적의 파라미터를 테스트하십시오. 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")