BMSB 돌파 전략

SMA EMA
생성 날짜: 2024-05-15 16:40:40 마지막으로 수정됨: 2024-05-15 16:40:40
복사: 0 클릭수: 300
1
집중하다
1166
수행원

BMSB 돌파 전략

개요

BMSB 브레이크아웃 전략은 이동 평균을 기반으로 한 돌파 전략이다. 이 전략은 20주기 간단한 이동 평균 ((SMA) 과 21주기 지수 이동 평균 ((EMA) 을 사용하여 시장의 추세 방향을 결정한다. 상위 마이너스 SMA를 통과하면 전략은 구매 신호를 발생시킨다. 상위 마이너스 EMA를 통과하면 전략은 판매 신호를 발생시킨다.

전략 원칙

이 전략의 핵심은 두 개의 다른 주기의 이동 평균을 사용하여 시장의 추세를 판단하는 것입니다. 20 주기의 SMA는 상대적으로 느리고 시장의 중장기 추세를 나타냅니다. 21 주기의 EMA는 상대적으로 빠르며 시장의 단기 추세를 나타냅니다. SMA를 상회하면 시장이 중장기적으로 상승 추세로 전환한 것을 나타냅니다. 이 때 전략은 구매 신호를 냅니다.

우위 분석

  1. 간단하고 이해하기 쉬운: 이 전략이 사용하는 지표는 간단하고, 원칙은 명확하며, 이해하기 쉽고 구현하기 쉽다.

  2. 트렌드 추적: 두 개의 다른 주기의 이동 평균을 통해, 전략은 시장의 트렌드 방향을 효과적으로 캡처 할 수 있으며, 트렌드가 형성되면 신속하게 개입 할 수 있습니다.

  3. 적시에 중지: 트렌드가 역전될 때, 전략은 아래 EMA를 통과하는 신호를 통해 적시에 청산하여 손실을 제어할 수 있다.

  4. 적응력: 이 전략은 다양한 시장과 품종에 적용될 수 있으며, 잘 적응한다.

위험 분석

  1. 진동 시장: 시장의 진동 상황에서 이 전략은 더 많은 거래 신호를 생성할 수 있으며, 이로 인해 거래가 빈번하고 거래 비용이 더 높을 수 있다.

  2. 지연성: 이동 평균이 지연된 지표이기 때문에, 전략의 구매 및 판매 신호는 약간의 지연이있을 수 있으며, 최적의 거래 시간을 놓칠 수 있습니다.

  3. 변수 최적화: 전략의 성능은 이동 평균 주기 선택에 영향을 받으며, 다른 변수는 다른 결과를 초래할 수 있다.

최적화 방향

  1. 변수 최적화: SMA와 EMA의 주기 변수를 최적화하여 최적의 변수 조합을 찾아서 전략의 성능을 향상시킬 수 있다.

  2. 트렌드 필터: 거래 신호를 생성할 때 다른 트렌드 지표 또는 가격 행동 패턴을 도입하여 트렌드의 강도 및 지속성을 추가로 확인하고 신호의 신뢰성을 높일 수 있습니다.

  3. 리스크 제어: 단편 거래의 리스크 을 제어하기 위해 스톱 및 스톱 메커니즘을 도입할 수 있습니다. 또한 포지션 관리를 통해 시장의 변동성에 따라 포지션 크기를 조정하여 전략의 전반적인 위험을 줄일 수 있습니다.

  4. 선택 시간: 구매 및 판매 신호를 생성 할 때, 다른 선택 시간 지표 또는 시장 감정 지표와 결합하여 선택 시간 쌍의 힘을 평가하여 더 우수한 방향을 선택하여 거래 할 수 있습니다.

요약하다

BMSB Breakout Strategy는 두 개의 다른 주기의 이동 평균을 통해 시장 추세를 판단하고, 추세가 형성될 때 적시에 개입하고, 추세가 반전될 때 적시에 퇴출하는 간단한 트렌드 추적 전략이다. 이 전략의 장점은 간단하고 이해하기 쉽고, 적응력이 강하며, 동시에 불안정한 시장에서 거래가 자주 이루어지고, 신호 지연 등의 위험이 있습니다.

전략 소스 코드
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BMSB Breakout Strategy", overlay=true)

// Definición de la BMSB
smaLength = 20
emaLength = 21
source = close
sma = ta.sma(source, smaLength)
ema = ta.ema(source, emaLength)

outSma = request.security(syminfo.tickerid, timeframe.period, sma)
outEma = request.security(syminfo.tickerid, timeframe.period, ema)

smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')

fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)

// Señales de Compra y Venta
buySignal = ta.crossover(close, outSma)
sellSignal = ta.crossunder(close, outEma)

// Lógica de la Estrategia
if (buySignal)
    if (strategy.opentrades > 0)
        strategy.close_all()
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    if (strategy.opentrades > 0)
        strategy.close_all()
    strategy.entry("Sell", strategy.short)

plotshape(series=buySignal, title="Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="Venta", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)