절대적인 추진력 지표 전략

저자:차오장, 날짜: 2024-02-19 14:13:01
태그:

img

전반적인 설명

절대 동력 지표 전략은 투샤르 찬데가 개발한 동력 지표 CMO를 기반으로 한 개선된 버전입니다. 이 전략은 시장의 중장기 가격 변동을 파악하기 위해 가격 동력의 절대 값을 계산하여 시장이 현재 과소매 또는 과소매인지 판단합니다.

전략 원칙

이 전략의 핵심 지표는 개선된 CMO 지표인 AbsCMO입니다. AbsCMO의 계산 공식은:

AbsCMO = abs(100 * (latest closing price - closing price Length periods ago) / (simple moving average of absolute price fluctuations over Length period * Length))

여기서 길이는 평균 기간의 길이를 나타냅니다. AbsCMO 값의 범위는 0에서 100입니다. 이 지표는 중장기 시장 추세와 과잉 구매 / 과잉 판매 영역을 명확하게 결정하기 위해 방향성과 동력 기념비성의 강도를 결합합니다.

AbsCMO가 지정된 상단 레일을 (디폴트 70) 통과하면 시장이 과잉 매수 영역에 진입하여 단격이 된다는 것을 나타냅니다. AbsCMO가 지정된 하단 레일을 (디폴트 20) 통과하면 시장이 과잉 매수 영역에 진입하여 단격이 된다는 것을 나타냅니다.

이점 분석

다른 추진력 지표와 비교하면 AbsCMO 지표는 다음과 같은 장점을 가지고 있습니다.

  1. 그것은 절대적인 가격 동력을 반영하고 중장기 동향을 더 정확하게 판단합니다.
  2. 방향성과 강도를 통합함으로써 과소매/ 과소매 조건을 더 명확하게 식별합니다.
  3. 그 범위는 0-100 사이로 제한되어 있어 다른 제품들을 비교하기에 더 적합합니다.
  4. 중장기 동향을 반영하여 단기 변동성에 덜 민감합니다.
  5. 커스터마이징 가능한 매개 변수들은 매우 적응력을 갖습니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 중장기 지표로서 단기 변동에 덜 민감합니다.
  2. 기본 매개 변수는 모든 제품에 적합하지 않을 수 있으며 최적화되어야합니다.
  3. 장기간 보유 기간은 큰 마감으로 이어질 수 있습니다.

이러한 위험은 보유 기간을 단축하거나 매개 변수를 최적화하거나 다른 지표를 포함함으로써 감소할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 더 많은 제품에 적응하기 위해 AbsCMO의 매개 변수를 최적화합니다.
  2. 거짓 신호를 필터링하기 위해 다른 표시기를 포함합니다.
  3. 스톱 로스를 설정하고 리스크를 제어하기 위해 수익을 취하는 규칙을 설정합니다.
  4. 더 나은 입구점을 찾기 위해 딥러닝 같은 기술을 활용하세요.

결론

요약하자면 절대 동력 지표 전략은 유용한 중장기 거래 전략이다. 중장기 동안 가격의 절대 동력 특성을 반영하고 중장기 트렌드의 강력한 예측력을 가지고 있다. 그러나 이 전략은 단기 변동에 덜 민감하고 특정 위험을 안고 있다. 매개 변수 최적화, 지표 필터, 스톱 로스 메커니즘과 같은 추가 개선은 라이브 성능을 더 안정적이고 신뢰할 수 있게 할 수 있다.


/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/02/2017
//    This indicator plots the absolute value of CMO. CMO was developed by Tushar 
//    Chande. A scientist, an inventor, and a respected trading system developer, 
//    Mr. Chande developed the CMO to capture what he calls "pure momentum". For 
//    more definitive information on the CMO and other indicators we recommend the 
//    book The New Technical Trader by Tushar Chande and Stanley Kroll.
//    The CMO is closely related to, yet unique from, other momentum oriented indicators 
//    such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely 
//    related to Welles Wilder`s RSI, yet it differs in several ways:
//        - It uses data for both up days and down days in the numerator, thereby directly 
//          measuring momentum;
//        - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
//          movements in price are not hidden. Once calculated, smoothing can be applied to 
//          the CMO, if desired;
//        - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
//          changes in net momentum using the 0 level. The bounded scale also allows you to 
//          conveniently compare values across different securities.
//
// 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="CMOabs", shorttitle="CMOabs")
Length = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, minval=0)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
pos = iff(nRes > TopBand, -1,
	     iff(nRes < LowBand, 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(nRes, color=blue, title="CMO")

더 많은