다중 클라우드 모멘텀 EMA 전략: 이치모쿠 클라우드와 지수 이동 평균을 기반으로 한 추세 거래 시스템

ICHIMOKU EMA VOLUME FILTER CLOUD BREAKOUT momentum TREND FOLLOWING STOP LOSS
생성 날짜: 2025-08-04 13:51:36 마지막으로 수정됨: 2025-08-04 13:51:36
복사: 0 클릭수: 203
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 클라우드 모멘텀 EMA 전략: 이치모쿠 클라우드와 지수 이동 평균을 기반으로 한 추세 거래 시스템 다중 클라우드 모멘텀 EMA 전략: 이치모쿠 클라우드와 지수 이동 평균을 기반으로 한 추세 거래 시스템

전략 개요

다중구름 동적 EMA 전략은 1차 균형 구름 (이치모쿠 클라우드) 과 지수 이동 평균 (이치모쿠 EMA) 을 결합한 트렌드 추적 시스템이다. 이 전략은 가격의 구름에 대한 위치를 판단하여 거래량 필터와 EMA 기술 지표를 통해 시장의 트렌드 방향을 식별하고 적절한 시기에 구매 및 판매 신호를 발송한다. 이 전략은 동적 스톱포드 메커니즘을 사용하여 위험을 제어하면서 비교적 완전한 거래 시스템으로 만든다.

전략 원칙

이 전략은 다음과 같은 핵심 원칙에 기초하고 있습니다.

  1. 이 사진의 제목은 “미국”입니다.

    • 가격이 구름층 위 (→ 전환선 텐칸-센과 기준선 키-센보다 높다) 에 위치하고 다른 조건이 충족될 때, 시스템은 다중 신호를 발생시킨다.
    • 가격이 구름 아래에 있을 때 (→ 전환선 텐칸-센과 기준선 키-센보다 낮게) 다른 조건이 충족될 때, 시스템은 하위 신호를 낸다.
  2. 거래량 확인:

    • 거래량 필터를 사용하는 전략은 거래량이 지난 N 주기의 평균 거래량보다 높을 때만 입장을 보장합니다.
    • 이것은 충분한 시장 참여를 보장하고 신호의 신뢰성을 높이는 데 도움이 됩니다.
  3. EMA 지표 필터:

    • 선택적으로 EMA 필터 조건을 추가하여 가격이 EMA 위에 있고, EMA 아래에 있다고 요구합니다.
    • EMA ((44주기) 는 동시에 퇴출 신호 지표로, 가격이 EMA를 돌파할 때 평점
  4. 손해 방지 설정:

    • 백분율 정지, 기본 입점 가격의 2%를 적용하여 사용자 정의 할 수 있습니다.
    • 이것은 거래에 대한 명확한 위험 제어 매개 변수를 제공합니다.

전략 실행 논리 프로세스:

  1. 초기 평형 구름의 각 지표들을 계산한다. (변환선, 기준선, 선행선 A, 선행선 B)
  2. 44주기 EMA와 거래량 조건을 계산합니다.
  3. 가격과 클라우드 위치, 거래량 조건 및 선택 가능한 EMA 필터 조건에 따라 구매/판매 기회를 판단합니다.
  4. 조건이 충족되면 입금하고 스톱을 설정합니다.
  5. 가격이 EMA를 돌파했을 때 현재 지분을 탈퇴

전략적 이점

  1. 다중 지표 확인• 1차 균형 클라우드, 거래량 및 EMA와 같은 여러 기술 지표와 결합하여 신호 신뢰도를 높이고, 가짜 신호의 위험을 줄입니다.

  2. 유연한 조건 구성정책은 사용자가 EMA 필터링 조건을 충족해야하는지 사용자 정의 할 수 있도록 허용하며, 다양한 시장 환경에 대한 적응력을 제공합니다.

  3. 전체적인 위험 관리100% Stop Loss 설정으로 명확한 위험 제어 매개 변수를 제공하여 자금을 안전하게 보호합니다.

  4. 트렌드 포착 능력우선, 평형 클라우드 자체는 훌륭한 트렌드 판단 도구이며, EMA의 확인과 함께 중·장기 트렌드를 포착하는 전략의 능력을 강화합니다.

  5. 유동성 고려거래량 필터를 통해 시장에서 충분한 유동성이 있을 때만 거래하도록 하고, 낮은 유동성 환경의 불확실성을 피하십시오.

  6. 명확한 입출장 논리전략은 명확한 입점 (Cloud Break + 거래량) 과 출구 (EMA Break 또는 Stop) 조건을 가지고 거래 의사 결정 과정을 명확하게합니다.

전략적 위험

  1. 상자 시장의 부진: 트렌드 추적 전략으로, 수평 변동 동향에서 잘못된 신호가 자주 발생하여 연속 손실이 발생할 수 있습니다. 해결 방법: 변동률 필터를 추가하여 낮은 변동률 환경에서 거래를 중지 할 수 있습니다.

  2. 지연 위험우선, 평형 클라우드 지표는 약간의 지연성을 가지고 있으며, 특히 선행 밴드가 26개의 주기적 이동을 설정하고 있기 때문에, 입시 시기가 좋지 않을 수 있다. 해결 방법: 이동 매개 변수를 조정하거나 더 민감한 단기 지표를 결합하는 것을 보조적으로 고려할 수 있다.

  3. 스티어링 트리거 주파수: 높은 변동성이 있는 시장에서 2%의 중지 손실 설정이 너무 긴밀할 수 있으며, 이로 인해 자주 유발된다. 해결 방법: 거래 품종의 변동성에 따라 중지 손실 비율을 동적으로 조정한다.

  4. 매개변수 민감도: 전략 효과는 파라미터 설정 (예: EMA 주기, 1차 균형 클라우드 파라미터) 에 민감하며, 다른 시장 환경에는 다른 파라미터가 필요할 수 있다. 해결 방법: 파라미터 최적화 테스트를 수행하여 더 안정적인 파라미터 조합을 찾는다.

  5. 수익 목표의 부재전략: 명확한 스톱로스를 정의하지만 수익 목표를 설정하지 않고, 회귀에서 이미 수익을 얻은 수익을 잃을 수 있습니다. 해결 방법: 이동 스톱로스 또는 수익 목표 변수를 추가하십시오.

전략 최적화 방향

  1. 동적 변수 조정:

    • 시장의 변동에 따라 동적으로 조정할 수 있는 초기 균형 클라우드 파라미터 및 EMA 주기
    • 높은 변동성 시장에서 더 긴 주기를 사용 하 고 낮은 변동성 시장에서 더 짧은 주기를 사용 하 여 다른 시장 환경에 적응
    • 이렇게 하면 매개 변수 고정으로 인한 과도한 적합성의 위험을 줄일 수 있습니다.
  2. 시장 환경 필터링:

    • 트렌드 강도 지표 (ADX와 같은) 를 추가하여 강한 트렌드 환경에서만 거래
    • 변동률 지표 (ATR와 같은) 를 추가하고, 극심한 변동성 환경에서 포지션을 조정하거나 거래를 중지합니다.
    • 이것은 다양한 시장 환경에서 전략의 안정성을 높일 것입니다.
  3. 방지 장치의 최적화:

    • 모바일 스톱 기능이 추가되어 가격 유리한 모바일 스톱 레벨을 자동으로 조정합니다.
    • 특정 수익을 달성한 후에 수익의 일부를 잠금하는 변동율에 기반한 수익 목표를 설정합니다.
    • 이것은 전략의 명확한 수익 목표가 없는 문제를 해결해 줄 것입니다.
  4. 진출과 퇴출:

    • “시작적 선택의 위험을 줄이기 위해, 매장 평화 메커니즘을 구현하십시오”.
    • 신호 강도에 따라 위치 크기를 조정할 수 있습니다.
    • 이 방법은 전체 창고 운영의 위험을 줄이고 자금 활용 효율성을 높일 수 있습니다.
  5. 역확인 지표를 추가합니다.:

    • 동력 지표 (RSI 또는 MACD와 같은) 와 결합하여 트렌드 반전 신호를 확인합니다.
    • 이것은 출전시간의 정확성을 높이고 잘못된 신호를 줄일 것입니다.

요약하다

다중 클라우드 동력 EMA 전략은 일차 균형 클라우드, EMA 및 거래량 필터를 통합적으로 사용하는 트렌드 추적 시스템입니다. 다중 기술 지표의 조합 사용으로, 이 전략은 트렌드를 더 잘 식별하고 명확한 진입 및 퇴출 신호를 제공합니다. 동시에, 내장 된 손실 메커니즘은 위험 통제를 보장합니다.

전략의 핵심 장점은 가격 위치, 트렌드 방향, 거래량 및 동적 스톱로즈와 같은 여러 핵심 거래 요소를 종합적으로 고려하여 비교적 완전한 거래 의사 결정 프레임 워크를 구축한다는 것입니다. 그러나, 트렌드 추적 시스템으로서, 이 전략은横断 시장에서 좋지 않은 성능을 발휘할 수 있으며, 매개 변수 설정에는 약간의 민감성이 있습니다.

제안된 방향의 최적화, 특히 동적 파라미터 조정, 시장 환경 필터링 및 최적화 스톱 메커니즘을 구현함으로써, 이 전략은 다양한 시장 환경에서 더 안정적인 성과를 낼 것으로 예상된다. 궁극적으로, 이 전략은 트렌드를 추적하는 거래자에게 구조화된 기술 분석 프레임워크를 제공하여 트렌드 기회를 잡는 동시에 위험을 제어하는 데 도움이됩니다.

전략 소스 코드
/*backtest
start: 2024-08-04 00:00:00
end: 2025-08-02 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud Buy & Sell w/ Custom EMA & Volume Filters", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === INPUTS ===
conversionPeriods = input.int(9, title="Tenkan-sen Periods")
basePeriods      = input.int(26, title="Kijun-sen Periods")
displacement     = input.int(26, title="Cloud Displacement")
laggingSpan      = input.int(52, title="Senkou Span B Periods")

emaPeriod        = input.int(44, title="EMA Length for Exit", minval=1)
avgVolLen        = input.int(10, title="Average Volume Length for Filter")
useStopLoss      = input.bool(true, title="Use Stop Loss for Exits")
stopLossPerc     = input.float(2.0, title="Stop Loss (%)", minval=0.1, step=0.1)
requireAboveEMA  = input.bool(true, title="Only Buy Above EMA?")
requireBelowEMA  = input.bool(true, title="Only Sell Below EMA?")

// === ICHIMOKU CALCULATIONS ===
tenkan = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2
kijun  = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2
senkouA = (tenkan + kijun) / 2
senkouB = (ta.highest(high, laggingSpan) + ta.lowest(low, laggingSpan)) / 2
senkouA_now = senkouA[displacement]
senkouB_now = senkouB[displacement]

// === EMA CALC ===
emaVal = ta.ema(close, emaPeriod)

// === VOLUME CONDITION ===
avgVol = ta.sma(volume[1], avgVolLen) // Excludes current candle's volume
volCondition = volume > avgVol

// === BUY CONDITION ===
buyCondition = (close > senkouA_now and close > senkouB_now and volCondition and (not requireAboveEMA or close > emaVal))

if buyCondition
    stopLevel = useStopLoss ? close * (1 - stopLossPerc / 100) : na
    strategy.entry("Buy", strategy.long)
    if useStopLoss
        strategy.exit("Buy SL", from_entry="Buy", stop=stopLevel)

// === SELL CONDITION ===
sellCondition = (close < senkouA_now and close < senkouB_now and volCondition and (not requireBelowEMA or close < emaVal))

if sellCondition
    stopLevelSell = useStopLoss ? close * (1 + stopLossPerc / 100) : na
    strategy.entry("Sell", strategy.short)
    if useStopLoss
        strategy.exit("Sell SL", from_entry="Sell", stop=stopLevelSell)

// === EXIT CONDITIONS ===
exitBuy = close < emaVal // Exit long if close < EMA
if exitBuy
    strategy.close("Buy")

exitSell = close > emaVal // Exit short if close > EMA
if exitSell
    strategy.close("Sell")

// === PLOTS ===
plot(emaVal, color=color.yellow, linewidth=2, title="EMA")
plot(senkouA, color=color.green, title="Senkou Span A", offset=displacement)
plot(senkouB, color=color.red, title="Senkou Span B", offset=displacement)