다중 시간대 동적 추세 판단 시스템: 상대 강도 지수와 거래량 가중 평균 가격 전략을 결합한 지수 이동 평균 교차

EMA RSI VWAP ADX MT
생성 날짜: 2025-05-13 10:03:56 마지막으로 수정됨: 2025-05-13 10:03:56
복사: 0 클릭수: 461
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 시간대 동적 추세 판단 시스템: 상대 강도 지수와 거래량 가중 평균 가격 전략을 결합한 지수 이동 평균 교차 다중 시간대 동적 추세 판단 시스템: 상대 강도 지수와 거래량 가중 평균 가격 전략을 결합한 지수 이동 평균 교차

전략 개요

이 전략은 다중 시간 프레임 동적 트렌드 판단 시스템 (Multi-Time Frame Dynamic Trend Judgment System) 이라는 이름의 수량 거래 전략은 여러 가지 기술 지표가 결합된 통합 시스템으로, 주요 통합 지수 이동 평균 (EMA) 교차, 상대적으로 강한 지수 (RSI), 거래량 중도 평균 (VWAP) 및 평균 방향 지수 (ADX) 등의 여러 요소를 사용하여 거래 결정을 합니다. 이 전략은 여러 시간 프레임 분석을 통해 트렌드 확인 및 동력 지표를 결합하여 시장의 초과 판매 지역을 효과적으로 식별하고 기관의 자금 흐름을 판단합니다.

전략 원칙

이 전략의 핵심 원칙은 다단계 시장 지표의 협동 확인에 기초한다. 첫째, 시스템은 트렌드 방향과 잠재적인 트렌드 전환점을 식별하기 위해 단기 EMA (9) 와 장기 EMA (21) 의 두 가지 다른 기간의 지수 이동 평균을 계산한다. 둘째, 시스템은 15 분 시간 프레임에서 RSI (14) 데이터를 얻고, 가격 운동량을 확인하기 위해 시간 프레임 분석을 도입한다. 셋째, 시스템은 현재 시간 프레임의 VWAP를 기관 자금 참여의 참조 지표로 사용하고, VWAP와 평균 선 사이의 차이의 0.1%를 설정하여 거래 신호를 필터링합니다.

구체적으로, 상장 입시 조건은 동시에 충족되어야 합니다: 단기 EMA 아래에서 장기 EMA ((상승 교차), 15분 RSI 값이 30보다 크다 ((오버셀하지 않은), VWAP는 두 EMA ((최소 0.1%보다 현저하게 낮다) 를 통과해야 합니다. 이것은 기관의 판매 압력과 하락 감정이 있음을 나타냅니다.

또한, 전략은 선택 가능한 ADX 필터를 도입하여 ADX 값을 수동으로 계산하여 (기본 길이는 14) 최소 값을 설정하여 (기본 20) 명확한 추세에서만 거래하는 것을 보장합니다. 사용자는 ADX 필터를 활성화하거나 비활성화하여 전략의 유연성을 증가시킬 수 있습니다. 전략은 또한 입력 파라미터를 통해 거래 방향을 선택하도록 지원합니다.

전략적 이점

  1. 다중 지표 공인: EMA 교차, RSI 동력, VWAP 기관 자금 흐름 및 ADX 트렌드 강도의 4가지 지표가 결합되어 다단계 거래 신호 확인 메커니즘을 형성하여 신호의 신뢰성을 크게 향상시킵니다.

  2. 다중 시간 프레임 분석15분 시간 프레임의 RSI 데이터를 도입함으로써, 전략은 시장 동력을 보다 거시적인 관점에서 평가할 수 있으며, 단일 시간 프레임 분석으로 인해 발생할 수 있는 맹점을 줄일 수 있습니다.

  3. 기관의 재정 전망VWAP와 EMA 사이의 격차를 기관 자금 참여의 지표로 활용하는 기관 관점은 전략이 진정한 시장 압박과 지지 지역을 더 잘 식별 할 수있게합니다.

  4. 유연한 운영 방식: tradeDirection 파라미터를 통해 사용자는 시장 환경이나 개인 취향에 따라 다중 전략 버전을 유지하지 않고 다중, 다중 또는 양방향 거래를 선택할 수 있습니다.

  5. 동적 추세 필터선택 가능한 ADX 필터는 전략이 명확한 추세에서만 거래하도록 도와주고, 흔들리는 시장에서 가짜 신호를 효과적으로 줄여주고, 필터를 비활성화 할 수있는 유연성을 유지합니다.

  6. 리스크 관리 통합이 전략은 스톱로스 및 스톱스톱 메커니즘을 내장하고 있으며, RSI 과잉 구매 과잉 판매 조건과 결합하여 종료 신호로 완전한 거래 폐쇄 고리를 형성한다.

  7. 코드 효율성전략: 명확한 코드 구조, 논리 모듈화, 계산 과정의 효율성, 유지 관리 및 추가 최적화를 용이함

전략적 위험

  1. 복수 입학 조건이 불완전하다현재 전략의 오버로직은 RSI <30 과잉 판매 조건에만 기반하며, EMA와 VWAP 필터링의 부족으로 인해 초기에 입점하거나 지속적인 하향 추세에서 자주 오버로하는 것이 손실 위험을 증가시킬 수 있습니다.

  2. 고정 스톱 스톱 설정전략: 일정한 점수를 사용하는 전략 ((100점의 정지, 200점의 정지) 는 비율이나 변동율에 기반한 동적 정지보다는, 다양한 변동 환경에서는 유연하지 않을 수 있으며, 높은 변동기에는 너무 느슨하게, 낮은 변동기에는 너무 단단하게 정지할 수 있다.

  3. 거래 빈도 제어Opentrades == 0 판단이 부족하여 신호가 연속적으로 발동되면 반복적으로 입장이 발생할 수 있으며, 포지션 중첩을 형성하여 의도치 않게 위험 틈을 증가시킬 수 있습니다.

  4. ADX 계산 복잡성: 수동으로 계산하는 ADX는 코드 복잡성을 증가시킵니다. 기능이 정확하지만 유지보수가 좋지 않아 계산 편차가 발생하면 잘못된 추세 판단을 초래할 수 있습니다.

  5. VWAP 격차 마이너스 고정: 0.1%의 고정 VWAP 격차 마이너스는 모든 시장 조건에 적용되지 않을 수 있으며, 높은 변동성 시장에서는 너무 완만하고 낮은 변동성 시장에서는 너무 엄격할 수 있습니다.

  6. 응답 민감성 분석의 부족: 코드는 변수 최적화 또는 민감성 분석의 결과를 표시하지 않으며, 현재 변수 조합 (예: EMA 921, RSI 14, ADX 1420) 이 최적인지 여부를 결정할 수 없습니다.

  7. 시간이 지연될 수 있습니다.시간 프레임 데이터 요청은 특정 상황에서 데이터 지연을 도입할 수 있으며, 특히 빠르게 변화하는 시장에서 거래 시점의 정확성에 영향을 미칩니다.

전략 최적화 방향

  1. 다중 출전 논리를 완벽하게 수행합니다.: VWAP 조건과 EMA를 교차 필터링하여 다중 전략으로 이미지를 추가합니다. 즉, VWAP가 두 개의 EMA (예: 0.1%) 보다 훨씬 높고 단기 EMA에 장기 EMA를 착용하여 다중 공간 논리 대칭을 만들어 다중 신호 품질을 향상시킵니다.

  2. 거래 빈도 제어 추가: 입시 조건에 strategy.opentrades == 0의 판단을 추가하여 연속적인 신호로 인한 포지션 쌓이는 것을 방지하고, 위험 구멍을 더 잘 제어한다.

  3. 동적 정지 손해 차단 설정: 평균 실제 파도 (ATR) 에 기반하여 동적으로 스톱 스톱 레벨을 조정하여 위험 관리를 현재의 시장 변동 상황에 더 적합하게 만들고, 현재의 고정 점수 설정을 대체한다.

  4. ADX 계산을 최적화: 트레이딩 뷰 내장된 ta.adx () 함수를 사용하여 수동 계산을 대체하여 코드를 단순화하고 유지보수를 향상시키며, ADX 방향 판단 () 을 추가하여 트렌드 방향을 더욱 정밀화하십시오.

  5. 동적 VWAP 격차 절댓값: VWAP 격차 마이너스를 시장의 변동성에 기반한 동적 변수로 설계하여, 예를 들어 ATR과 연관하여, 필터링 조건을 다른 시장 환경에 적응하도록 한다.

  6. 트랜잭션 시간 필터를 추가합니다.거래 시간 제어를 도입하고, 유동성이 낮은 시간이나 중요한 뉴스 발표를 피하고, 미끄러짐과 예상치 못한 변동의 위험을 줄입니다.

  7. 다중 시간 프레임 트렌드 일치: 더 높은 시간 프레임 (예: 1시간 또는 4시간) 을 추가하여 트렌드 방향을 판단하고, 여러 시간 프레임의 트렌드가 일치하는 경우에만 거래하여 가짜 신호를 더욱 줄이십시오.

  8. 트랜잭션 양 확인을 입력합니다.거래량 지표의 확인이 필요하며, EMA 교차가 발생했을 때 거래량이 이전 주기의 평균보다 훨씬 높으며, 트렌드 전환 신호의 신뢰성을 향상시킵니다.

요약하다

다중 시간 프레임 동적 트렌드 판단 시스템 (Multi-Time Frame Dynamic Trend Judging System) 은 여러 가지 기술적 분석 도구와 결합된 통합적 계량 전략으로, EMA 교차, RSI 동력, VWAP 기관 자금 흐름 및 ADX 트렌드 강도 다중 확인 메커니즘을 통해 거래자에게 비교적 신뢰할 수있는 입출력 신호를 제공합니다. 이 전략은 특히 기관 자금 행동과 소매 감정의 결합 분석에 중점을 두고 있으며, 트렌드 추적 및 역전 거래의 특성을 고려합니다.

전략은 다중 지표 협동성 및 유연성에서 우수한 성적을 거뒀지만, 다중 조건이 완벽하지 않고, 위험 관리가 고정되어 있고, 반복적으로 입장이 가능하다는 문제들이 여전히 존재한다. 전략의 성능과 안정성은 다중 논리를 개선하고, 동적 위험 관리를 구현하고, 거래 주파수 제어를 추가하고, ADX 계산을 최적화하고, 동적 VWAP 값을 설계하고, 거래 시간 필터링과 다중 시간 프레임 일관성 요구와 같은 최적화 조치를 도입함으로써 크게 향상될 전망이다.

전체적으로, 이 전략은 기술 지표, 가격 구조, 시장 감정 및 기관 행동을 종합적으로 고려하여 거래자에게 이론적으로 다양한 시장 환경에 적응 할 수있는 도구를 제공하는 포괄적이고 유연한 거래 시스템 설계 아이디어를 나타냅니다. 제안된 최적화 후, 이 전략은 더 완벽하고 효율적인 거래 시스템이 될 잠재력을 가지고 있습니다.

전략 소스 코드
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MinhPhan MA Crossover Strategy RSI 15m + ADX Toggle", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.001)

// === Inputs ===
shortLen = input.int(9, title="Short EMA")
longLen  = input.int(21, title="Long EMA")
useAdxFilter = input.bool(true, title="Enable ADX Filter?")
adxLen = input.int(14, title="ADX Length")
adxThresh = input.float(20, title="Min ADX to Trade")

// === EMAs ===
shortMA = ta.ema(close, shortLen)
longMA = ta.ema(close, longLen)

// === VWAP ===
vwap = ta.vwap

// === RSI from 15-minute timeframe ===
rsi_15m = request.security(syminfo.tickerid, "15", ta.rsi(close, 14))

// === Manual ADX Calculation ===
upMove   = high - high[1]
downMove = low[1] - low

plusDM  = na(upMove) or upMove <= downMove or upMove < 0 ? 0 : upMove
minusDM = na(downMove) or downMove <= upMove or downMove < 0 ? 0 : downMove

tr = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))

smoothedTR = ta.rma(tr, adxLen)
smoothedPlusDM = ta.rma(plusDM, adxLen)
smoothedMinusDM = ta.rma(minusDM, adxLen)

plusDI = 100 * smoothedPlusDM / smoothedTR
minusDI = 100 * smoothedMinusDM / smoothedTR
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adx = ta.rma(dx, adxLen)

isTrending = useAdxFilter ? adx > adxThresh : true  // ADX toggle logic

// === VWAP Gap Filter ===
gapThreshold = 0.001
vwapBelowEMAs = 
     (shortMA - vwap) / shortMA > gapThreshold and
     (longMA - vwap) / longMA > gapThreshold

// === Direction Control ===
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
allowLong = tradeDirection == "Long" or tradeDirection == "Both"
allowShort = tradeDirection == "Short" or tradeDirection == "Both"

// === Entry Conditions ===
if (allowLong and rsi_15m < 30 and isTrending)
    strategy.entry("Long", strategy.long)

if (allowShort and rsi_15m > 30 and ta.crossunder(shortMA, longMA) and vwapBelowEMAs and isTrending)
    strategy.entry("Short", strategy.short)

// === Exit Conditions ===
if (strategy.position_size > 0 and rsi_15m > 70)
    strategy.exit("Exit Long", from_entry="Long", loss=100, profit=200)

if (strategy.position_size < 0 and rsi_15m < 30)
    strategy.exit("Exit Short", from_entry="Short", loss=100, profit=200)

// === Plots ===
plot(shortMA, color=color.blue, title="Short EMA")
plot(longMA, color=color.red, title="Long EMA")
plot(vwap, title="VWAP", color=color.purple, linewidth=2)
plot(adx, title="ADX", color=color.orange)
hline(adxThresh, "ADX Threshold", color=color.gray, linestyle=hline.style_dashed)