다중 볼륨 모멘텀 조합 거래 전략

OBV RSI MFI CMF VWAP VRSI
생성 날짜: 2024-11-12 10:52:54 마지막으로 수정됨: 2024-11-12 10:52:54
복사: 0 클릭수: 459
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 볼륨 모멘텀 조합 거래 전략

개요

이 전략은 OBV, A/D 라인, CMF, MFI, VWAP, 거래량 진동기 및 거래량 RSI 등 여러 거래량 지표를 통합하여 포괄적인 거래 시스템을 구축한다. 전략의 핵심은 여러 지표의 신호 확인을 통해 거래의 정확성을 높이고, 4개 이상의 지표가 동시에 구매 또는 판매 신호를 제공 할 때만 거래를 수행한다.

전략 원칙

이 전략은 다음과 같은 다중 지표 검증 방법을 사용합니다.

  1. OBV (에너지 유동 지표) 는 축적된 수송량 변화를 추적하기 위해 사용된다.
  2. A/D 라인 (A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인, A/D 라인)
  3. CMF는 금전화폐의 흐름을 측정합니다.
  4. MFI (자금 흐름 지표) 는 매매 압박을 측정합니다.
  5. VWAP (거래량 가중 평균 가격) 가 역동적인 지원 저항으로
  6. 거래량 진동기는 거래량 트렌드를 나타냅니다.
  7. VRSI (관계량이 상대적으로 강하고 약하다) 는 거래량이 강함을 나타낸다.

4개 이상의 지표가 동시에 일치하는 신호를 줄 때, 전략은 시장에서 강한 추세가 발생할 기회를 생각하여 거래를 한다.

전략적 이점

  1. 가짜 신호의 위험을 줄이는 다중 지표 크로스 검증
  2. 거래량과 가격을 결합한 분석 방법
  3. 동력 및 트렌드 추적의 이중 기능을 포함합니다.
  4. 명확한 입출소 조건이 설정되어 있습니다.
  5. 강력한 적응력과 확장성

전략적 위험

  1. 여러 지표로 인해 신호가 지연될 수 있습니다.
  2. 위기 시장에서 과도한 거래가 발생할 수 있습니다.
  3. 매개변수 최적화로 인해 과적합이 발생할 수 있습니다.
  4. 더 많은 컴퓨팅 자원이 필요합니다.
  5. 유동성이 낮은 시장에서 부진할 수 있습니다.

전략 최적화 방향

  1. 적응형 매개변수 메커니즘 소개
  2. 시장 변동율 필터를 늘리십시오.
  3. 지표 중량 분배를 최적화
  4. Stop Loss과 Take Profit 목표를 추가합니다.
  5. 시간 필터를 고려하세요.

요약하다

이것은 다중 거래량 지표를 기반으로 한 통합 거래 전략이며, 다차원 시장 분석을 통해 거래의 정확성을 향상시킵니다. 전략은 강력한 이론적 기초와 실용적인 가치를 가지고 있지만 실제 응용에서는 시장 상황에 따라 적절한 파라미터 최적화 및 위험 관리가 필요합니다.

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

//@version=5
strategy("Combined Volume Indicators Strategy", overlay=true)

// تنظیمات
lengthRSI = 14
lengthMFI = 14
lengthCMF = 20
fastLength = 5
slowLength = 10

// محاسبه OBV
obv = ta.cum(close > close[1] ? volume : close < close[1] ? -volume : 0)

// محاسبه A/D به‌صورت دستی
var float ad = na
ad := na(ad[1]) ? 0 : ad[1] + ((close - low) - (high - close)) / (high - low) * volume

// محاسبه CMF (Chaikin Money Flow)
moneyFlowMultiplier = ((close - low) - (high - close)) / (high - low)
moneyFlowVolume = moneyFlowMultiplier * volume
cmf = ta.sma(moneyFlowVolume, lengthCMF) / ta.sma(volume, lengthCMF)

// محاسبه MFI به‌صورت دستی
typicalPrice = (high + low + close) / 3
moneyFlow = typicalPrice * volume

// محاسبه جریان پول مثبت و منفی
positiveFlow = 0.0
negativeFlow = 0.0

for i = 0 to lengthMFI - 1
    positiveFlow := positiveFlow + (close[i] > close[i + 1] ? moneyFlow[i] : 0)
    negativeFlow := negativeFlow + (close[i] < close[i + 1] ? moneyFlow[i] : 0)

mfi = 100 - (100 / (1 + (positiveFlow / negativeFlow)))

// محاسبه VWAP
vwap = ta.vwap(close)

// محاسبه Volume Oscillator
fastVolMA = ta.sma(volume, fastLength)
slowVolMA = ta.sma(volume, slowLength)
volumeOscillator = fastVolMA - slowVolMA

// محاسبه VRSI (Volume RSI)
vrsi = ta.rsi(volume, lengthRSI)

// شمارش اندیکاتورهای سیگنال خرید
buySignals = 0
buySignals := buySignals + (obv > obv[1] ? 1 : 0)
buySignals := buySignals + (ad > ad[1] ? 1 : 0)
buySignals := buySignals + (cmf > 0 ? 1 : 0)
buySignals := buySignals + (mfi < 40 ? 1 : 0)
buySignals := buySignals + (close < vwap ? 1 : 0)
buySignals := buySignals + (volumeOscillator > 0 ? 1 : 0)
buySignals := buySignals + (vrsi < 40 ? 1 : 0)

// شمارش اندیکاتورهای سیگنال فروش
sellSignals = 0
sellSignals := sellSignals + (obv < obv[1] ? 1 : 0)
sellSignals := sellSignals + (ad < ad[1] ? 1 : 0)
sellSignals := sellSignals + (cmf < 0 ? 1 : 0)
sellSignals := sellSignals + (mfi > 60 ? 1 : 0)
sellSignals := sellSignals + (close > vwap ? 1 : 0)
sellSignals := sellSignals + (volumeOscillator < 0 ? 1 : 0)
sellSignals := sellSignals + (vrsi > 60 ? 1 : 0)

// شرایط سیگنال خرید: اگر بیش از 4 اندیکاتور سیگنال خرید دهند
buyCondition = (buySignals > 4)

// شرایط سیگنال فروش: اگر بیش از 4 اندیکاتور سیگنال فروش دهند
sellCondition = (sellSignals > 4)

// ورود به معامله خرید
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// خروج از معامله فروش
if (sellCondition)
    strategy.close("Buy")

// رسم سیگنال‌های خرید و فروش بر روی چارت
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")