볼링거 밴드 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2024-01-30 16:37:47
태그:

img

전반적인 설명

이 거래 전략은 구매 및 판매 결정을 내리기 위해 볼링거 밴드 및 이동 평균의 크로스오버를 기반으로합니다. 주로 5 분 시간 프레임에서 볼링거 밴드 지표를 사용하여 가격 변동 범위를 결정하고, 트렌드 방향을 결정하기 위해 이동 평균과 결합하여 볼링거 밴드의 상단, 하단 및 중단의 크로스오버 상황에 따라 거래 전략을 형성합니다. 이 전략은 AUD/NZD 통화 쌍에 적합합니다.

전략 원칙

  1. 볼링거 밴드 지표를 사용하여 가격의 상단과 하단 한도를 결정합니다. 볼링거 밴드의 중간 지대는 20 기간 간단한 이동 평균이며, 상단은 중간 지대 + 2 표준 편차이며, 하단은 중간 지대 - 2 표준 편차입니다.

  2. 닫기 가격이 하위 반도를 넘어 올라가면 가격이 상승하기 시작한다는 것을 나타냅니다.

  3. 닫기 가격이 볼링거 밴드의 중간 범위를 초과하면 가격이 중간 범위를 넘어서고 있다는 뜻입니다. 그래서 우리는 이 거래 라운드를 끝낼 수 있도록 여기서 포지션을 종료합니다.

  4. 닫기 가격이 상단역을 넘어서면 가격이 하락하기 시작한다는 뜻입니다. 그래서 우리는 여기서 단축을 합니다.

  5. 닫기 가격이 볼링거 밴드의 중간 범위를 깨면 가격이 중간 범위를 넘어섰다는 뜻입니다. 그래서 우리는 이 거래 라운드를 끝낼 수 있도록 여기서 포지션을 종료합니다.

이점 분석

  1. 회전 신호를 놓치지 마십시오. 이 전략은 볼링거 밴드의 특성을 최대한 활용하여 낮은 밴드에서 가격 반등과 상위 밴드에서 떨어지는 것을 적시에 포착하여 회전 기회를 놓치면서 발생하는 손실을 피합니다.

  2. 높은 수익성. 주요 지점에서 구매 및 판매 항목을 만들고 합리적인 스톱 로스를 설정함으로써, 더 나은 수익을 얻기 위해 황소와 곰 시장 사이의 변환 동안 빠르게 방향을 전환 할 수 있습니다.

  3. 적절한 거래 주파수. 5 분 시간 프레임에 기반한 거래 신호를 형성하여 거래 비용을 증가시키는 너무 자주 거래하지 않고 단기 트렌드를 포착 할 수 있습니다.

위험 분석

  1. 볼링거 밴드의 너무 빠른 컨버전스의 위험. 시장 가격이 격렬하게 변동할 때, 볼링거 밴드의 상부와 하부 밴드는 너무 빨리 컨버전스, 쉽게 잘못된 브레이크를 형성하고 잘못된 신호를 줄 수 있습니다. 우리는 이 시점에서 매개 변수를 조정하거나 거래를 중단해야합니다.

  2. 스톱 손실 위험. 너무 작은 스톱 손실은 쉽게 깨질 수 있지만 너무 큰 스톱 손실은 엄청난 손실로 이어질 수 있습니다. 우리는 스톱 손실 가격을 적절히 조정해야합니다.

  3. 높은 거래 비용 위험. 거래 빈도가 너무 높으면 거래 비용도 크게 증가 할 것입니다. 거래 빈도를 줄이기 위해 매개 변수를 적절히 조정해야합니다.

최적화

  1. 볼링거 밴드 매개 변수를 최적화합니다. 우리는 이 특정 상품의 변동성 범위에 가장 적합한 매개 변수를 찾기 위해 사이클 매개 변수와 표준편차 매개 변수의 다양한 조합을 테스트 할 수 있습니다.

  2. 거짓 신호를 필터링하기 위해 다른 지표를 추가하십시오. KDJ 및 MACD와 같은 지표를 도입하여 볼링거 밴드에만 의존하여 발생하는 문제를 피할 수 있습니다.

  3. 스톱 로스 전략을 최적화합니다. 우리는 실시간으로 가격 변화를 추적함으로써 더 정확한 스톱 로스를 설정할 수 있습니다. 주식 라인 같은 다른 전략도 사용할 수 있습니다.

결론

이 전략은 전반적으로 상대적으로 안정적이며 약간의 수익성이 있습니다. 매개 변수 및 스톱 로스 전략을 최적화함으로써 변동적인 시장 조건에서 좋은 수익을 얻기 위해 거래 위험을 더욱 줄일 수 있습니다. 이 전략은 추가 테스트와 최적화에 가치가 있으며 매우 좋은 실용적 응용 전망이 있습니다.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © theTradeAI

strategy('TradeAI - 5min AUDNZD Strategy', overlay=true)

//////////////////////////////
//////// STOP ORDERS DETECTING
//////////////////////////////

length = input(1)

h = ta.highest(high, length)
l = ta.lowest(low, length)

//////////////////////////////
//////// EMAS
//////////////////////////////

emaLenght = input.int(200)

ema200 = ta.ema(close,emaLenght)

//////////////////////////////
//////// BOLLINGER BANDS
//////////////////////////////

length1 = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")

ma(source, length1, _type) => 
    switch _type
        "SMA" => ta.sma(source, length1)
        "EMA" => ta.ema(source, length1)
        "SMMA (RMA)" => ta.rma(source, length1)
        "WMA" => ta.wma(source, length1)
        "VWMA" => ta.vwma(source, length1)

basis = ma(src, length1, maType)
dev = mult * ta.stdev(src, length1)
upperr = basis + dev
lowerr = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)


//////////////////////////////
//////// ENTRY & EXIT
//////////////////////////////

// Buy entry
if ta.crossover(lowerr, close)
    strategy.entry('long', strategy.long, stop=h)

// Buy entry CANCEL
if close > lowerr
    strategy.cancel('long')

// Buy exit
if close > basis
    strategy.close('long')

// Sell entry
if ta.crossunder(upperr, close)
    strategy.entry('short', strategy.short, stop=l)

// Sell entry CANCEL
if close < upperr
    strategy.cancel('short')

// Sell exit
if close < basis
    strategy.close('short')



더 많은