
다중 시간 프레임 4 인자 트렌드 동적 거래 시스템은 트렌드 확인, 가격 움직임 및 다중 시간 프레임 분석을 결합한 종합적인 양적 거래 전략이다. 이 전략은 헐 이동 평균 (Hull Moving Average, HMA), 이치모쿠 클라우드, 일선 레벨 가격 비교 및 헐 이동 평균을 기반으로 한 MACD 지표를 결합하여, 여러 확인 메커니즘을 통해 높은 확률의 시장 진입 장소를 식별하기 위해 지속적 인 트렌드 상황을 포착하고, 동시에 가짜 신호를 효과적으로 필터링합니다.
이 전략의 핵심 원칙은 4개의 핵심 구성요소들의 협동적인 작용을 통해 거래의 방향을 확인하는 것이다.
헐 이동 평균의 크로스: 현재 주기 및 이전 주기 Hull 이동 평균을 계산합니다. 현재 HMA가 이전 주기 HMA보다 크면 시선 신호로 간주합니다. 반대로 시선 신호로 간주합니다. Hull 이동 평균은 가격 변화에 더 빨리 반응하면서 부드러움을 유지하여 전통적인 이동 평균의 지연을 효과적으로 줄일 수 있습니다.
일선급 가격 비교: 시간 프레임 분석을 통해 현재 일선 가격을 전날 가격과 비교한다. 오늘의 가격이 어제의 가격보다 높을 때 상승 동력을 확인하고 반대로 하락 동력을 확인한다. 이 구성 요소는 더 높은 시간 프레임의 시장 방향 확인을 제공합니다.
이치모쿠 구름 지도 추세 확인: 일회성 평형표의 선행역 A선 ((Senkou Span A) 과 선행역 B선 ((Senkou Span B) 의 상대적 위치를 사용하여 시장 동향을 확인한다. 선행역 A선이 B선 위에 있을 때, 낙향 동향을 확인한다. 반대로 낙향 동향을 확인한다.
헐 기반 MACD 동력 지표: 두 개의 다른 주기의 헐 이동 평균을 사용하여 MACD 라인을 계산하고, 또 다른 헐 이동 평균을 신호 라인으로 사용합니다. MACD 라인이 신호 라인의 위쪽에 있을 때, 운동량을 상향으로 나타냅니다. 반대로 운동량을 하향으로 나타냅니다.
거래 신호의 생성에는 다음의 네 가지 조건이 동시에 충족되어야 한다:
다중 인증 메커니즘이 전략은 4개의 서로 다른 기술 지표가 공동으로 확인되는 것을 요구하며, 가짜 신호의 가능성을 크게 줄이고 거래 신호의 신뢰성을 높였다.
다중 시간 프레임 융합이 전략은 태양계 수준의 가격 동력을 결합하여 시장의 방향을 더 높은 수준에서 확인하고, 단기 변동에서 잘못된 판단을 피할 수 있습니다.
반응 속도는 스릴 파동과 균형을 이룬다.: Hull 이동 평균은 전통적인 이동 평균에 비해 더 빠른 응답 속도와 더 적은 지연성을 가지고 있으며, 동시에 좋은 평형 효과를 유지하며, 신호 적시성과 노이즈 필터링 사이의 균형을 잡을 수 있습니다.
트렌드 및 동력 이중 검증이치모쿠 클라우드 그래프의 트렌드 확인과 MACD의 동력 확인을 결합하여 시장의 방향과 강도를 동시에 확인할 수 있으며 거래 성공률을 높일 수 있습니다.
매우 적응력이 좋다전략의 각 구성 요소는 다양한 시장 환경과 거래 품종에 따라 최적화된 조정을 할 수 있는 조정 가능한 매개 변수를 가지고 있으며, 강한 적응력을 가지고 있다.
매개변수 민감도이 전략은 여러 지표 파라미터 설정을 포함합니다. 예를 들어, Hull 이동 평균 주기, 이치모쿠 각 라인의 계산 주기 등이 포함됩니다. 다양한 파라미터 조합은 매우 다른 거래 결과를 초래할 수 있으며, 과도한 역사 데이터 적합성의 위험이 있습니다.
뒤떨어진 위험: 헐 이동 평균은 전통적인 이동 평균보다 덜 지연적이지만, 기술 지표에 기반한 어떤 전략도 신호 지연 문제를 완전히 피할 수 없으며, 입점점이 충분히 이상적이지 않을 수 있다.
시장의 부진이 전략은 주로 트렌드 시드 디자인을 대상으로 하 고, 수평 정리 또는 극심한 변동성 시장 환경에서 연속 손실로 이어지는 빈번한 잘못된 신호가 발생할 수 있습니다.
다중 조건이 거래 빈도를 제한합니다.네 가지 조건이 동시에 충족되는 요구 사항은 거래 신호가 상대적으로 희귀하게 될 수 있으며, 특정 시장 환경에서 잠재적인 수익 기회를 놓칠 수 있습니다.
시간 프레임 분석의 데이터 의존: 일선 데이터 요청은 더 많은 역사 데이터 지원을 필요로 하며, 전략의 컴퓨팅 자원 요구와 응답 복잡성을 증가시킬 수 있다.
위험 완화 방법:
동적 변수 조정 메커니즘: 시장의 변동에 따라 Hull 이동 평균과 MACD의 매개 변수를 자동으로 조정하는 것을 고려할 수 있습니다. 높은 변동률 환경에서 노이즈를 줄이기 위해 더 긴 주기를 사용하며, 낮은 변동률 환경에서 민감성을 높이기 위해 더 짧은 주기를 사용하십시오.
손해 방지 및 정지 장치를 추가현재 전략은 주로 입시 신호에 초점을 맞추고 있으며, ATR (Average True Range) 또는 이치모쿠 클라우드 그래프 컴포넌트 기반의 동적 중지 및 중지 장치를 추가하고, 위험 관리 시스템을 개선할 수 있다.
수량 확인: 거래량 지표를 추가 확인 요소로 고려하여 거래량이 지원되는 경우에만 거래 신호를 실행하면 트렌드 판단의 정확도를 높일 수 있습니다.
다중 시간 프레임 구조를 최적화: 일선과 현재 주기 이외에 중간 수준의 시간 프레임 분석을 추가하여 4 시간 또는 주위 라인 수준의 트렌드 확인과 같은 더 완전한 다중 시간 프레임 확인 시스템을 구축하는 것이 고려 될 수 있습니다.
기계 학습 최적화: 기계 학습 알고리즘을 사용하여 최적의 변수 조합을 자동으로 찾거나, 역사적 패턴을 기반으로 다양한 시장 환경에서 전략 성능을 예측하고 조정할 수 있습니다.
필터링 조건을 추가: 시장 구조에 기반한 필터링 조건을 추가하는 것을 고려하십시오 (지원/저항 지점과 같은) 또는 불리한 시장 환경에서 거래 신호를 피하기 위해 변동 주기를 사용합니다.
이러한 최적화 방향의 목적은 다양한 시장 환경에서 전략의 적응성과 안정성을 높이고, 전략의 핵심 논리의 완전성과 유효성을 유지시키는 것입니다.
다중 타임 프레임 4 인자 트렌드 동적 거래 시스템은 헐 이동 평균, 일선 가격 비교, 이치모쿠 클라우드 그래프 및 헐-MACD의 연동 작용을 통해 여러 레벨에서 시장의 추세와 동력을 확인하는 고품질 거래 신호를 추구하는 통합 양적 전략입니다. 이 전략은 중장기 트렌드 추적 거래에 특히 적합하며, 여러 확인 메커니즘을 통해 가짜 신호를 효과적으로 필터링하여 거래의 신뢰성을 향상시킵니다.
이 전략은 파라미터 선택과 시장 적응성에서 약간의 도전을 가지고 있지만, 합리적인 위험 관리와 타겟팅 최적화를 통해 다양한 시장 환경에서 그 성능을 더욱 향상시킬 수 있습니다. 특히, 동적 파라미터 조정, 손실 차단 장치의 추가 및 다중 시간 프레임 구조의 최적화와 같은 방향의 개선으로 전략은 높은 품질의 신호 특성을 유지하면서 전반적인 수익 안정성과 위험 조정 후 수익률을 향상시킬 것으로 예상됩니다.
이 전략의 핵심 가치는 거래 신호의 질에 대한 엄격한 요구 사항에 있으며, 다단계, 다각적인 시장 분석을 통해 거래 의사 결정에 대한 견고한 기술 기반을 제공하며, “적자보다 더 많은 것을 선호”하는 정교한 양적 거래 방법을 추구합니다.
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Ichimoku + Daily-Candle_X + HULL-MA_X + MacD (v6)", shorttitle="٩(̾●̮̮̃̾•̃̾)۶", overlay=true,
initial_capital=10000, default_qty_type=strategy.percent_of_equity,
default_qty_value=100, commission_type=strategy.commission.percent,
commission_value=0.25, slippage=1, max_bars_back=2999)
// === INPUTS ===
hmaPeriod = input.int(14, minval=1, title="Hull MA Period")
resolution = input.timeframe("D", title="Daily Candle Resolution")
priceSource = input.source(open, title="Price Source")
// Ichimoku inputs
conversionPeriod = input.int(9, minval=1, title="Conversion Line Period")
basePeriod = input.int(26, minval=1, title="Base Line Period")
spanPeriod = input.int(52, minval=1, title="Lagging Span Period")
displacement = input.int(26, minval=1, title="Displacement")
// MACD inputs
macdFastLen = input.int(12, title="MACD Fast Length")
macdSlowLen = input.int(26, title="MACD Slow Length")
macdSignalLen = input.int(9, title="MACD Signal Length")
// === HULL MOVING AVERAGE ===
hmaNow = ta.hma(priceSource, hmaPeriod)
hmaPrev = ta.hma(priceSource[1], hmaPeriod)
hmaBull = hmaNow > hmaPrev
hmaBear = hmaNow < hmaPrev
// === DAILY CANDLE COMPARISON ===
dailyNow = request.security(syminfo.tickerid, resolution, priceSource)
dailyPrev = request.security(syminfo.tickerid, resolution, priceSource[1])
dailyBull = dailyNow > dailyPrev
dailyBear = dailyNow < dailyPrev
// === ICHIMOKU ===
donchian(len) =>
(ta.lowest(len) + ta.highest(len)) / 2
conversionLine = donchian(conversionPeriod)
baseLine = donchian(basePeriod)
leadLine1 = (conversionLine + baseLine) / 2
leadLine2 = donchian(spanPeriod)
// === CUSTOM MACD USING HULL ===
macdLine = ta.hma(priceSource, macdFastLen) - ta.hma(priceSource, macdSlowLen)
macdSignal = ta.hma(macdLine, macdSignalLen)
macdBull = macdLine > macdSignal
macdBear = macdLine < macdSignal
// === ENTRY CONDITIONS ===
longCondition = hmaBull and dailyBull and priceSource > hmaPrev and leadLine1 > leadLine2 and macdBull
shortCondition = hmaBear and dailyBear and priceSource < hmaPrev and leadLine1 < leadLine2 and macdBear
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// === OPTIONAL PLOTS ===
// Uncomment these if you want to see the indicators visually
// plot(hmaNow, color=color.green, title="HMA Now")
// plot(hmaPrev, color=color.red, title="HMA Prev")
// plot(conversionLine, color=color.blue, title="Conversion Line")
// plot(baseLine, color=color.red, title="Base Line")
// plot(priceSource, offset=-displacement, color=color.gray, title="Lagging Span")
// lead1 = plot(leadLine1, offset=displacement, color=color.green, title="Lead Line 1")
// lead2 = plot(leadLine2, offset=displacement, color=color.red, title="Lead Line 2")
// fill(lead1, lead2, color=leadLine1 > leadLine2 ? color.new(color.green, 80) : color.new(color.red, 80))