
봄 가을 중복 운동량 전략은 주로 서로 다른 주기의 변화율 ROC를 계산하고, 비율에 따라 권한을 중복하여, 종합 운동량 지표를 형성하여, 시장 추세 방향을 판단하는 전략이다. 이 전략은 단기, 중기 및 장기 운동량 지표를 중복하여, 단기 및 장기 추세를 균형을 잡을 수 있으며, 잘못된 신호를 발생하지 않도록 한다.
이 전략은 먼저 10, 15, 20 일과 같은 다른 기간의 ROC 지표를 계산하고 ROC를 부드럽게 처리하고 1-4 비율로 위임 중첩을 수행합니다. 계산 공식은 다음과 같습니다.
roc1 = (sma(roc(close,10),10)*1)
roc2 = (sma(roc(close,15),10)*2)
...
osc = roc1+roc2+roc3+roc4+...
그 중, roc1-roc12는 각각 10일, 15일부터 530일까지의 기간에 해당하는 서로 다른 주기 ROC의 계산을 나타냅니다.
다음으로 osc에 대해 a일 (기본은 10일) 의 SMA 평소 처리를 하여 oscsmt。을 얻는다.
그리고 osc와 oscsmt의 크기를 비교하여, osc 위에 oscsmt을 뚫을 때 우측 신호로, 다방향으로 들어갑니다. osc 아래 oscsmt을 뚫을 때 하향 신호로, 공백 방향으로 들어갑니다.
마지막으로, 거래 방향의 역전도 가능합니다.
단기 및 장기 동력 지표를 중첩하여 단기 및 장기 동향을 동시에 포착하여 잘못된 신호를 피합니다.
osc와 oscsmt의 가격 차이를 비교함으로써 평판 영역의 무관한 거래를 줄일 수 있다.
사용자 정의 가능한 변수, 조정 ROC 계산의 주기 변수, 그리고 SMA의 평형 변수
다른 거래 스타일을 만족시키기 위해 거래 방향을 바꿀 수 있습니다.
시각적 지표, 직관적으로 구매 및 판매 지점을 판단한다.
ROC 지표는 갑작스러운 비정상적인 가격에 매우 민감하여 잘못된 신호를 일으킬 수 있다. SMA 평면 변수 a를 적절히 확대하여 ROC 지표의 감수성을 줄일 수 있다.
모든 품종에 적용되지 않을 수 있으며, 다양한 품종 특성에 따라 최적화된 변수를 찾아야합니다.
Osc와 oscsmt의 차이점 비교만으로 거래 신호를 생성하고, 다른 지표 필터링 신호와 결합하여 잘못된 거래 가능성을 줄일 수 있다.
이 전략은 중장선 거래에 더 적합하며, 단선 거래 효과는 좋지 않을 수 있다. ROC의 계산주기를 조정하여 이 전략의 사용 시나리오를 최적화할 수 있다.
봄 가을 겹치는 운동량 전략은 여러 주기의 ROC 지표를 계산하고 통합 운동량 지표를 겹치는 것으로, 단기 및 장기 동향을 동시에 고려하여 가짜 신호를 생성하는 것을 피할 수 있다. 단일 ROC 지표에 비해 이 전략은 신호 품질과 신뢰성을 크게 향상시킬 수 있다. 그러나 이 전략은 또한 일정 모니터링 위험을 가지고 있으며, 파라미터를 최적화하고 다른 지표와 결합하여 사용함으로써 최대 효과를 발휘할 수 있다.
/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter 08/08/2017
// Pring's Special K is a cyclical indicator created by Martin Pring.
// His method combines short-term, intermediate and long-term velocity
// into one complete series. Useful tool for Long Term Investors
// Modified for any source.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Martin Pring's Special K Backtest", shorttitle="UCS_Pring_sK")
a = input(10, title = "Smooth" )
sources = input(title="Source", defval=close)
reverse = input(false, title="Trade reverse")
roc1 = (sma(roc(sources,10),10)*1)
roc2 = (sma(roc(sources,15),10)*2)
roc3 = (sma(roc(sources,20),10)*3)
roc4 = (sma(roc(sources,30),15)*4)
roc5 = (sma(roc(sources,40),50)*1)
roc6 = (sma(roc(sources,65),65)*2)
roc7 = (sma(roc(sources,75),75)*3)
roc8 = (sma(roc(sources,100),100)*4)
roc9 = (sma(roc(sources,195),130)*1)
roc10 = (sma(roc(sources,265),130)*2)
roc11 = (sma(roc(sources,390),130)*3)
roc12 = (sma(roc(sources,530),195)*4)
osc = roc1+roc2+roc3+roc4+roc5+roc6+roc7+roc8+roc9+roc10+roc11+roc12
oscsmt = sma(osc,a)
pos = iff(osc > oscsmt, 1,
iff(osc < oscsmt, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(osc, color=blue, title="Martin Pring's Special K")
plot(oscsmt, color = red, title = "Smooth")
hline(0, title="Zero Line")