EVWMA와 볼린거 대역에 기초한 EVWBB 전략

저자:차오장, 날짜: 2023-11-02 15:27:28
태그:

img

전반적인 설명

이 전략은 볼링거 밴드의 기본 라인으로 EVWMA를 사용합니다. 가격이 상부 밴드를 통과 할 때 길게 가고 가격이 가격의 트렌드 움직임을 포착하기 위해 하위 밴드를 통과 할 때 짧게됩니다.

전략 논리

이 전략은 먼저 지난 30 기간 동안의 총 부피를 vol_period로 계산합니다. 다음 EVWMA를 공식을 사용하여 계산합니다: (전 EVWMA x (vol_period - 현재 부피) + 현재 부피 x 종료) / vol_period.

볼링거 밴드의 기초는 EVWMA로 설정되며 상부와 하부 밴드는 기초 ± 2 * stdev ((close) 이다. 가격이 상부 밴드 이상으로 넘어갈 때 전략은 길고 가격이 하부 밴드 아래에 넘어갈 때 짧은 것입니다. 스톱 로스는 기본 수준으로 설정됩니다.

이점 분석

  1. EVWMA는 이동 평균보다 가격 변화를 더 잘 반영하여 더 부드러운 선을 나타냅니다.

  2. 볼링거 밴드는 가격 변동의 상단과 하단 한계를 명확하게 표시하여 브레이크오웃을 쉽게 파악합니다.

  3. 트렌드 지표 EVWMA와 변동성 지표 Bollinger Bands를 결합하면 보다 정확한 입력 시기가 가능합니다.

  4. 기본 수준에서의 스톱 로스는 위험을 조절하는 데 도움이 됩니다.

위험 분석

  1. EVWMA는 엄청난 시장 변동 중에 가격 변화를 반영하지 못할 수 있습니다. 그래서 진입 기회를 놓칠 수 있습니다.

  2. 볼링거 대역은 범위에 묶인 시장에서 휘프사우로 인해 불필요한 입력을 유발합니다.

  3. 포지션 크기와 보유 기간 관리가 부족하면 만족스럽지 않은 이익 또는 증대 손실이 발생할 수 있습니다.

  4. 이윤 목표가 없는 경우 합리적인 목표 이상의 지위를 보유할 위험이 있습니다.

최적화 방향

  1. 최적의 룩백 기간을 찾기 위해 다른 매개 변수 설정을 테스트합니다.

  2. 입시 신호를 정제하기 위해 MACD와 같은 필터를 추가하는 것을 고려하십시오.

  3. 거래를 관리하기 위해 고정된 보유 기간을 구현합니다.

  4. 합리적인 수익 목표를 정의하기 위해 수익 목표를 설정하십시오.

  5. 시장 조건에 따라 포지션 크기를 조정합니다.

요약

이 전략은 브레이크아웃을 포착함으로써 트렌드를 추적하기 위해 EVWMA와 볼링거 밴드의 강점을 결합합니다. 이 전략의 장점은 합리적인 지표 조합, 정확한 입수 및 효과적인 위험 통제입니다. 그러나 부적절한 매개 변수 조정 및 거래 관리 부족은 여전히 문제입니다. 매개 변수 최적화, 수익 타겟팅, 스톱 손실 및 포지션 사이징의 추가 개선은 안정성과 수익성을 향상시킬 수 있습니다. 전반적으로 전략 논리는 건전하며 실용적 가치와 개발 잠재력을 보여줍니다.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EVWBB Strategy [QuantNomad]", shorttitle="EVWBB Strategy [QN]", overlay=true)

// Inputs
sum_length = input(30,  title = "Length", type = input.integer)
mult       = input(2.0, minval=0.001, maxval=50)
 
// Calculate Volume Period
vol_period = sum(volume, sum_length)

// Calculate EVWMA
evwma = 0.0
evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / (vol_period)

basis = evwma
dev = mult * stdev(close, sum_length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

buyEntry = crossover(close, lower)
sellEntry = crossunder(close, upper)

strategy.entry("BBandLE", strategy.long,  stop = upper , oca_name = "BollingerBands",  comment="BBandLE")
strategy.entry("BBandSE", strategy.short, stop = lower,  oca_name = "BollingerBands", comment="BBandSE")

strategy.exit("BBand L SL", "BBandLE", stop = basis)
strategy.exit("BBand S SL", "BBandSE", stop = basis)

더 많은