모멘텀 스택 전략 (Momentum Stacking Strategy) 은 주로 다른 기간에 걸쳐 변화율 (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+...
소정의 ROC를 계산하는 경우, roc1-roc12는 10일에서 530일까지의 다른 기간에 대한 ROC를 나타냅니다.
그 다음 oscsmt을 얻기 위해 osc를 SMA (예정 10) 일로 부드럽게 합니다.
OSC와 oscsmt을 비교합니다. OSC가 올림 신호로 oscsmt을 넘어서고, 긴 신호로 들어가면 OSC가 하락 신호로 oscsmt을 넘어서고, 짧은 신호로 들어가면
마지막으로, 거래 방향을 바꿀 수도 있습니다.
단기 및 장기적인 동력 지표를 쌓아 놓으면 단기 및 장기적인 트렌드를 모두 파악할 수 있고 잘못된 신호를 피할 수 있습니다.
osc와 oscsmt를 비교하면 부적절한 거래가 경부 시장에서 줄 수 있습니다.
ROC 기간과 SMA 부드러움을 조정할 수 있는 매개 변수
회전 가능한 거래 방향은 다양한 거래 스타일을 충족시킵니다.
시각적 지표는 구매 및 판매 지점을 직관적으로 만듭니다.
ROC는 갑작스러운 가격 이상에 매우 민감하며 잘못된 신호를 생성 할 수 있습니다.
기본 매개 변수는 모든 거래 도구에 적합하지 않을 수 있습니다. 다른 특성에 따라 최상의 매개 변수 조합을 찾기 위해 최적화가 필요합니다.
거래는 osc와 oscsmt 크로스오버에 기반합니다. 신호를 필터하고 오류를 줄이기 위해 다른 지표를 추가 할 수 있습니다.
중장기 거래에 더 적합합니다. 사용 시나리오를 최적화하기 위해 ROC 기간을 조정해야 할 수 있습니다.
모멘텀 스택 전략 (Momentum Stacking Strategy) 은 포괄적인 모멘텀 지표를 얻기 위해 여러 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")