이 전략의 이름은 DEMA MACD 조합 전략이다. 이 전략은 DEMA 이동 평균 지표와 MACD 지표를 결합하여 이중 지표 확인과 함께 구매 및 판매 신호를 생성합니다. 주요 아이디어는 신호 정확성을 향상시키고 더 나은 전략 성능을 달성하기 위해 여러 확인을 위해 DEMA 트렌드 지표와 MACD 모멘텀 지표 모두를 사용하는 것입니다.
이 전략은 주로 DEMA 이동 평균 지표와 MACD 지표의 조합에 기반합니다. 구체적인 논리는 다음과 같습니다.
21일 DEMA 이동 평균을 계산합니다. 닫기 가격이 DEMA 라인을 넘으면 구매 신호로 간주됩니다. 아래를 넘으면 판매 신호로 간주됩니다.
MACD 히스토그램 값을 계산하고 구매 신호를 추가로 확인하기 위해 MACD 히스토그램이 0보다 크어야하는지 확인하기 위해 선택적 매개 변수를 추가합니다.
DEMA 구매 신호가 표시되면 MACD 히스토그램의 0 이상의 추가 확인이 활성화되면 MACD 히스토그램이 양으로 변한 후에야 실제 구매 신호가 발사됩니다.
DEMA 판매 신호가 나타나면 추가 MACD 확인이 필요없이 직접 판매 신호가 발송됩니다.
이 두 가지 지표 조합을 통해, DEMA 라인은 트렌드 방향을 판단하는 데 사용될 수 있으며, MACD 히스토그램은 시장이 잘못된 브레이크를 피하고 수익 잠재력을 높이기 위해 트렌드의 초기 단계에 있는지 여부를 결정하는 데 사용됩니다. 구매에 대한 0 이상의 MACD 히스토그램은 전략이 상승 추세 동안만 구매하는 것을 보장하며, 판매에 대한 빠른 DEMA 확인은 전략이 적시에 손실을 줄일 수 있습니다.
이 전략에서 DEMA와 MACD 지표를 결합하는 주요 장점은 다음과 같습니다.
DEMA는 더 민감하고 트렌드 변화를 적시에 파악할 수 있고 랜에 묶인 함정에 빠지지 않도록 합니다.
MACD 히스토그램은 0 이상의 확인을 통해 잘못된 신호를 필터링하고 트렌드의 시작에서만 구매하여 수익 잠재력을 확장합니다.
MACD 확인 없이 DEMA에서 직접 판매하면 빠른 스톱 손실을 허용하고 보존된 이익을 극대화 할 수 있습니다.
이중 지표 검증은 신호의 정확성을 향상시키고 잘못된 거래를 줄입니다.
다양한 시장 환경에 적응하도록 조정 할 수있는 매개 변수에 대한 큰 최적화 공간.
이 전략의 주요 위험은 다음과 같습니다.
DEMA가 너무 민감하기 때문에 더 많은 잘못된 신호가 발생할 수 있으며 MACD가 신호를 필터해야 합니다.
MACD는 지연이 있으며 가장 좋은 입구 지점을 놓칠 수 있습니다. 다른 주요 지표는 결합으로 고려해야합니다.
시장에 따라 성능이 달라지는 매개 변수 최적화에 의존합니다. 최적 매개 변수를 찾기 위해 지속적인 백테스팅이 필요합니다.
DEMA와 MACD가 계산에서 EMA에 의존하는 일련의 상관관계 위험. 신호 정확성은 검증이 필요합니다.
해결책:
거짓 신호를 줄이기 위해 다른 지표 필터를 추가하여 여러 지표 조합을 구성합니다.
MACD를 BB나 KD와 같은 주요 지표로 교체해 보다 빨리 회전을 잡으세요.
매개 변수 최적화 및 업데이트 메커니즘을 구축하여 실시간으로 매개 변수 안정성을 평가합니다.
상관관계 위험을 줄이기 위해 상관관계가 없는 지표를 도입해야 합니다.
이 전략의 주요 최적화 방향은 다음과 같습니다.
최적의 조합을 찾기 위해 다른 DEMA 매개 변수를 시도합니다. DEMA 매개 변수는 전략 감수성을 직접 제어합니다.
스톱 로스 메커니즘을 추가합니다. 현재 전략은 스톱을 위해 DEMA 다운에만 의존합니다. 트레일링 스톱 또는 퍼센트 스톱을 추가 할 수 있습니다.
MACD를 이전 신호의 다른 주요 지표로 대체합니다. 예를 들어 볼링거 밴드 또는 KDJ.
안정성을 높이기 위해 관련되지 않은 지표, 예를 들어 부피, 변동성 지표를 도입합니다.
매개 변수 최적화 및 업데이트 메커니즘을 구축하여 매개 변수 상태를 지속적으로 평가하고 자동 조정합니다.
이 전략은 신호 확증 및 발급을 위해 DEMA 이동 평균과 MACD 지표를 결합하여 이점을 얻습니다. 단일 지표 전략과 비교하면 더 높은 민감성과 신호 정확성을 가지고 있습니다. 또한 매개 변수를 최적화하여 개선할 여지가 있습니다.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © melihtuna //@version=1 strategy("DEMA Strategy with MACD", overlay=true) // === Trend Trader Strategy === DemaLength = input(21, minval=1) MacdControl = input(false, title="Control 'MACD Histogram is positive?' when Buy condition") e1 = ema(close, DemaLength) e2 = ema(e1, DemaLength) dema1 = 2 * e1 - e2 pos = close > dema1 ? 1 : 0 barcolor(pos == 0 ? red: pos == 1 ? green : blue ) plot(dema1, color= blue , title="DEMA Strategy with MACD") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2020, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // === MACD === [macdLine, signalLine, histLine] = macd(close, 12, 26, 9) macdCond= MacdControl ? histLine[0] > 0 ? true : false : true strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond) strategy.entry("SELL", strategy.short, when = window() and pos == 0)