집적동량지수전략은 시장의 흐름 변화를 포착하기 위해 시장의 자금 흐름을 판단하기 위해 집적동량지수를 사용한다. 이 전략은 빠른 이동 평균과 느린 이동 평균을 결합하여 지표 곡선을 형성하고, 곡선 상단 트렌드 구매, 곡선 아래의 트렌드 판매를 통해 시장 트렌드를 추적한다.
이 전략은 집적 동력 지표에 기반하며, 이 지표는 윌리엄 지표를 개선하여, 당일 최고 가격과 최저 가격의 평균 가격으로 개시 가격을 대체하여 개시 가격의 부재 문제를 해결합니다. 지표의 공식은 다음과 같습니다.
응집 운동 양 선 = 빠른 응집 운동 양 지수 이동 평균 - 느린 응집 운동 양 지수 이동 평균
그 중, 집적 운동량 지수의 계산 공식은:
집적 동력 지수 = (폐쇄 가격 - 오픈 가격) / (최고 가격 - 최저 가격) * 거래량
오픈 가격의 부재로 인해, 여기서는 다음과 같이 사용된다:
집적 동량 지수 = (폐쇄 가격 - (최고 가격 + 최저 가격) /2) / (최고 가격 - 최저 가격) * 거래량
지표는 빠른 이동 평균과 느린 이동 평균의 차이는 집적 운동량 라인이다. 빠른 라인을 가로질러 느린 라인을 가로질러 구매 신호를 주고, 아래 가로질러 판매 신호를 준다.
그 중 하나는:
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
매개 변수 최적화, 다른 지표와 결합한 방법 등으로 위험을 제어할 수 있다.
이 전략은 다음과 같은 방향으로 최적화를 고려할 수 있습니다.
집적동량 지표 전략은 전체적으로 안정적이고 신뢰할 수 있으며, 매개 변수를 조정하여 수익과 위험을 균형을 잡을 수 있다. 필터링 조건과 스톱로드를 추가하면 전략의 안정성을 더욱 향상시킬 수 있다. 이 전략은 트렌드형 시장을 추적하는 데 적합하며, 맞춤형으로 최적화하여 만족스러운 전략 효과를 얻을 수 있다.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-10-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/09/2017
// Indicator plots Money Flow Indicator (Chaikin). This indicator looks
// to improve on Larry William's Accumulation Distribution formula that
// compared the closing price with the opening price. In the early 1970's,
// opening prices for stocks stopped being transmitted by the exchanges.
// This made it difficult to calculate Williams' formula. The Chaikin
// Oscillator uses the average price of the bar calculated as follows
// (High + Low) /2 instead of the Open.
// The indicator subtracts a 10 period exponential moving average of the
// AccumDist function from a 3 period exponential moving average of the
// AccumDist function.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Money Flow Indicator (Chaikin Oscillator)", shorttitle="MFI")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=hline.style_dashed)
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos = iff(nRes > 0, 1,
iff(nRes < 0, -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="RMI")