리소스 로딩... 로딩...

부피 분석 시스템과 함께 다기간 이동 평균 크로스오버

저자:차오장, 날짜: 2024-11-27 15:08:39
태그:EMASMAWMAVOL

img

전반적인 설명

이 시스템은 이동 평균 크로스오버와 볼륨 분석을 기반으로 한 양적 거래 전략 시스템이다. 이 전략은 볼륨 지표와 결합한 다양한 유형의 이동 평균 (EMA, SMA, WMA 등) 의 크로스오버 신호를 통해 거래 결정을 내린다. 이 시스템은 이동 평균 유형과 매개 변수의 유연한 구성을 지원하며 신뢰성을 향상시키기 위해 거래 확인 조건으로 볼륨 분석을 도입한다.

전략 원칙

이 전략은 두 개의 이동 평균 크로스오버 시스템을 핵심 거래 신호로 사용하며 부가적인 판단으로 볼륨 분석과 결합합니다.

  1. 서로 다른 기간의 두 개의 이동 평균 (MA1 및 MA2) 을 사용하여 SMA, EMA 및 WMA 사이의 자유로운 전환을 지원합니다.
  2. 부피 SMA를 부피 참조 표준으로 도입합니다.
  3. 200주기 EMA를 장기 트렌드 판단 기준으로 사용합니다.
  4. 빠른 MA가 느린 MA를 가로질러 평균보다 큰 부피로 이동하면 긴 신호를 생성합니다.
  5. 빠른 MA가 느린 MA를 넘어서 평균보다 큰 부피로 짧은 신호를 생성합니다.

전략적 장점

  1. 높은 유연성: 다양한 거래 스타일의 요구를 충족시키기 위해 여러 MA 유형을 지원합니다.
  2. 신뢰할 수 있는 신호: 볼륨 확인을 통해 신호 품질을 향상시킵니다.
  3. 트렌드 추적: 반트렌드 거래를 피하기 위해 장기 EMA를 포함합니다.
  4. 조정 가능한 매개 변수: MA 기간과 부피 기간은 유연하게 조정할 수 있습니다.
  5. 체계적인 운영: 명확한 거래 규칙, 주관적인 요소를 최소화합니다.

전략 위험

  1. 연립 위험: 옆 시장에서 빈번한 잘못된 파업 신호를 생성 할 수 있습니다.
  2. 지연 위험: 이동 평균은 고유 한 지연을 가지고 있으며 최적의 입점 지점을 놓칠 수 있습니다.
  3. 비용 위험: 빈번한 거래는 높은 거래 비용을 초래할 수 있습니다.
  4. 시장 환경 의존성: 전략의 효과는 트렌드 강도에 크게 의존합니다.

최적화 방향

  1. 트렌드 강도 지표 추가: 강한 트렌드에서만 거래하기 위해 ADX를 추가하는 것을 고려하십시오.
  2. 스톱 로스를 최적화: 리스크 통제를 위해 후속 또는 고정 스톱 로스를 구현합니다.
  3. 시장주기 분석을 개선합니다. 매개 변수 적응을 위해 변동성 지표를 포함합니다.
  4. 볼륨 분석을 개선: 더 나은 신호 품질을 위해 볼륨 패턴 인식을 추가합니다.
  5. 리스크 컨트롤을 구현: 최대 포지션 제한 및 매일 스톱 로스 제한을 설정합니다.

요약

이것은 이동 평균 크로스오버와 볼륨 분석을 통해 고전적인 기술 분석 이론을 결합한 양적 거래 전략이다. 전략 설계는 강력한 실용성과 확장성으로 합리적입니다. 매개 변수 최적화 및 모듈 향상으로 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다. 라이브 거래 전에 철저한 백테스팅을 수행하고 특정 거래 도구 특성에 따라 매개 변수를 조정하는 것이 좋습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cruzamento de Médias com Volume ☾︎ 𝔇𝔞𝔯𝔎 ✞︎ 𝔗𝔯𝔞𝔡𝔢𝔯 ☽︎", overlay=true)

// Criação de opções no editor para selecionar o tipo de média móvel
maType1 = input.string(title="Tipo de Média Móvel 1", defval="EMA", options=["SMA", "EMA", "WMA"])
maType2 = input.string(title="Tipo de Média Móvel 2", defval="EMA", options=["SMA", "EMA", "WMA"])

// Função para selecionar a média móvel de acordo com o tipo escolhido
getMovingAverage(maType, src, length) =>
    if maType == "SMA"
        ta.sma(src, length)
    else if maType == "EMA"
        ta.ema(src, length)
    else if maType == "WMA"
        ta.wma(src, length)
    else
        na

// Parâmetros para o cálculo das médias móveis
length1 = input.int(9, title="Período da Média 1")
length2 = input.int(21, title="Período da Média 2")

// Cálculo das médias móveis escolhidas
ma1 = getMovingAverage(maType1, close, length1)
ma2 = getMovingAverage(maType2, close, length2)

// Parâmetro editável para o período da média de volume
volLength = input.int(20, title="Período da Média de Volume")

// Cálculo da média móvel do volume com período ajustável
volSMA = ta.sma(volume, volLength)  // Média móvel simples do volume

// Cálculo da EMA de 200 períodos para visualizar a tendência primária
ema200 = ta.ema(close, 200)

// Condições para compra: ma1 cruza acima da ma2 + Volume acima da média de volume ajustável
longCondition = ta.crossover(ma1, ma2) and volume > volSMA

// Condições para venda: ma1 cruza abaixo da ma2 + Volume acima da média de volume ajustável
shortCondition = ta.crossunder(ma1, ma2) and volume > volSMA

// Executa a operação de compra
if (longCondition)
    strategy.entry("Compra", strategy.long)

// Executa a operação de venda
if (shortCondition)
    strategy.entry("Venda", strategy.short)

// Plotando as médias móveis no gráfico de preços
plot(ma1, color=color.green, title="Média Móvel 1", linewidth=2)
plot(ma2, color=color.red, title="Média Móvel 2", linewidth=2)

// Plotando a EMA de 200 períodos para visualização da tendência de longo prazo
plot(ema200, color=color.orange, title="EMA 200", linewidth=2)

// Plotando a média de volume para visualização no painel inferior
plot(volSMA, color=color.blue, title="Média de Volume", linewidth=2)

관련

더 많은