이 전략은 평균선 전환-분산 지표 ((CMO) 를 기반으로 거래 판단을 한다. CMO 절대값은 가격 분산 정도를 나타내고, 전략은 CMO의 세 주기 절대값의 평균값을 기준으로 과매매를 판단하며, 전형적인 충격 지표 거래 전략에 속한다.
이 전략은 주로 다음과 같은 논리를 적용합니다.
CMO 지수는 가격 변화의 동력을 반영한다. 그것의 절대값 크기는 가격 분산도를 나타내고, 일정 범위를 초과하면 과매매 영역에 들어간다. 이 전략은 CMO의 이 특성을 활용하여, 과매매 상황을 판단하기 위해 여러 주기 평균을 사용하여 곡선을 평형화하고, 전형적인 충격 거래 전략에 속한다.
어떻게 대처해야 할까요?
이 전략은 다음과 같은 차원에서 확장될 수 있습니다.
이 전략은 CMO가 과매매를 판단하여 역전 거래를 하기 위해 사용되며, 다중 주기 평균을 채택하여 곡선을 효과적으로 평형화하여 잘못된 신호를 방지할 수 있다. CMO 지수 자체는 이론적 기반이 안정적이며, 가격 분산 상태를 안정적으로 결정한다. 매개 변수 최적화, 상쇄 전략 등으로 확장하면 보다 안정적인 진동 지수 거래 전략으로 최적화할 수 있다.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-14 07:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////7////////////
// Copyright by HPotter v1.0 21/02/2017
// This indicator plots the absolute value of CMO averaged over three
// different lengths. This indicator plots a classical-looking oscillator,
// which is really an averaged value based on three different periods.
//
// 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="CMOabsav", shorttitle="CMOabsav")
Length1 = input(5, minval=1)
Length2 = input(10, minval=1)
Length3 = input(20, minval=1)
TopBand = input(58, minval=1)
LowBand = input(5, minval=0)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=hline.style_dashed)
hline(TopBand, color=purple, linestyle=hline.style_solid)
hline(LowBand, color=red, linestyle=hline.style_solid)
xMom = close - close[1]
xMomabs = abs(close - close[1])
nSum1 = sum(xMom, Length1)
nSumAbs1 = sum(xMomabs, Length1)
nSum2 = sum(xMom, Length2)
nSumAbs2 = sum(xMomabs, Length2)
nSum3 = sum(xMom, Length3)
nSumAbs3 = sum(xMomabs, Length3)
nRes = abs(100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3)
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="CMOabsav")