
동적 모멘텀 오스실레이터 거래 전략 동적 모멘텀 오스실레이터 (Dynamic Momentum Oscillator Trading Strategy) 는 E. 마셜 월이 1996년 7월 ?? 포트 ?? 저널에 발표한 글에서 제시한 동적 모멘텀 오스실레이터 (Dynamo) 지표에 기초하여, 표준 오스실레이터 (Dynamic Momentum Oscillator) 는 트렌드의 영향을 제거하기 위해 정상화 처리되었다.
이 전략은 먼저 10일 길이의 무작위 지수를 계산하고, 그 지수의 10일 간단한 이동 평균을 계산하고, 이 이동 평균을 기반으로 20일 이동 평균을 계산한다. 이는 동적 동적 진동기의 계산 기반을 구성한다.
전략은 다음으로 지수의 최고값과 최저값을 계산하고, 그 다음 중간값을 계산한다. 그것은 20일 평균선을 원래 지수와 차분하고, 그 중간값에서 그 차분값을 빼어 표준화된 진동기를 형성한다. 이 표준화된 값이 77보다 높으면 더하고, 23보다 낮으면 더한다.
이 전략의 주요 장점은 다음과 같습니다.
동적 동적 흔들기 지표의 사용은 트렌드의 영향을 제거하고 거래 신호를 더 신뢰할 수있게 만듭니다.
오버 바이 오버 셀 영역과 결합하여, 역점에서 보다 정확한 거래 신호를 생성할 수 있다.
규칙은 간단하고 명확하며 실행하기 쉽습니다.
이 전략의 주요 위험은 다음과 같습니다.
시장의 폭동이 있을 때, 지표가 잘못된 신호를 발산할 확률이 높습니다. 위험을 제어하기 위해 스톱로스를 설정할 수 있습니다.
흔들리는 시장에서는 종종 가짜 신호가 발생한다. 적절한 파라미터를 조정하여 약간의 소음을 필터링 할 수 있다.
거래의 빈도가 높을 수 있고, 거래 비용이 수익에 영향을 미칠 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
다양한 시장의 데이터를 테스트하여 최적의 계약과 최적의 변수 조합을 찾습니다.
필터링 조건을 추가하여 신호를 발산하기 전에 트렌드 강도를 판단하고, 흔들림 시에 함축되는 것을 피한다.
스톱스케이프 메커니즘을 추가한다. 가격이 불리한 방향으로 어떤 하위값을 돌파했을 때 스톱스케이프 탈퇴를 선택한다.
이 전략을 바탕으로 더 복잡한 거래 시스템을 개발할 수 있으며, 여러 다른 지표와 결합하여 의사 결정을 내릴 수 있습니다.
동적 동적 진동기 거래 전략은 트렌드 영향을 제거하여 오버 바이 오버 셀 영역에서 더 정확한 거래 신호를 발송한다. 이 전략은 간단하고 실행하기 쉽지만 위험도 있다. 매개 변수 및 규칙 최적화를 통해 시스템의 안정성과 수익성을 더욱 향상시킬 수 있다.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 10/04/2017
// In July 1996 Futures magazine, E. Marshall Wall introduces the
// Dynamic Momentum Oscillator (Dynamo). Please refer to this article
// for interpretation.
// The Dynamo oscillator is a normalizing function which adjusts the
// values of a standard oscillator for trendiness by taking the difference
// between the value of the oscillator and a moving average of the oscillator
// and then subtracting that value from the oscillator midpoint.
//
// 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="Dynamo", shorttitle="Dynamo")
OscLen = input(10, minval=1)
MALen = input(20, minval=1)
HiBand = input(77, minval=1)
LowBand = input(23)
reverse = input(false, title="Trade reverse")
hline(HiBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xOscK = stoch(close, high, low, OscLen)
xOscAvg = sma(xOscK, OscLen)
xMAVal = sma(xOscAvg, MALen)
maxNum = 9999999
LowestSoFar = iff(xOscAvg < nz(LowestSoFar[1], maxNum), xOscAvg, nz(LowestSoFar[1], maxNum))
HighestSoFar = iff(xOscAvg > nz(HighestSoFar[1]), xOscAvg, nz(HighestSoFar[1]))
MidPnt = (LowestSoFar + HighestSoFar) / 2
nRes = MidPnt - (xMAVal - xOscAvg)
pos = iff(nRes > HiBand, 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="Dynamo")