서로 다른 시간 프레임의 모멘텀 스택 전략

저자:차오장, 날짜: 2023-10-26 17:39:26
태그:

img

전반적인 설명

모멘텀 스택 전략 (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을 넘어서고, 짧은 신호로 들어가면

마지막으로, 거래 방향을 바꿀 수도 있습니다.

장점

  1. 단기 및 장기적인 동력 지표를 쌓아 놓으면 단기 및 장기적인 트렌드를 모두 파악할 수 있고 잘못된 신호를 피할 수 있습니다.

  2. osc와 oscsmt를 비교하면 부적절한 거래가 경부 시장에서 줄 수 있습니다.

  3. ROC 기간과 SMA 부드러움을 조정할 수 있는 매개 변수

  4. 회전 가능한 거래 방향은 다양한 거래 스타일을 충족시킵니다.

  5. 시각적 지표는 구매 및 판매 지점을 직관적으로 만듭니다.

위험 과 최적화

  1. ROC는 갑작스러운 가격 이상에 매우 민감하며 잘못된 신호를 생성 할 수 있습니다.

  2. 기본 매개 변수는 모든 거래 도구에 적합하지 않을 수 있습니다. 다른 특성에 따라 최상의 매개 변수 조합을 찾기 위해 최적화가 필요합니다.

  3. 거래는 osc와 oscsmt 크로스오버에 기반합니다. 신호를 필터하고 오류를 줄이기 위해 다른 지표를 추가 할 수 있습니다.

  4. 중장기 거래에 더 적합합니다. 사용 시나리오를 최적화하기 위해 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")

더 많은