다기간 이동평균교차거래량 전략 시스템

EMA SMA WMA VOL
생성 날짜: 2024-11-27 15:08:39 마지막으로 수정됨: 2024-11-27 15:08:39
복사: 2 클릭수: 463
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다기간 이동평균교차거래량 전략 시스템

개요

이것은 평평선 교차와 교차량 분석에 기반한 정량화 거래 전략 시스템이다. 이 전략은 여러 종류의 이동 평균 (EMA, SMA, WMA 포함) 의 교차 신호를 통해 교차량 지표를 결합하여 거래 결정을 내린다. 시스템은 평평선 유형과 매개 변수를 유연하게 구성할 수 있도록 지원하며, 거래 확인 조건으로 양적 분석을 도입하여 거래의 신뢰성을 높인다.

전략 원칙

전략은 쌍평선 교차 시스템을 핵심 거래 신호로 사용하고, 거래량 분석을 보조 판단으로 결합한다. 구체적으로:

  1. 두 개의 다른 주기의 이동 평균을 사용 하 여 ((MA1 및 MA2), SMA, EMA 및 WMA 사이에 자유롭게 전환 지원 .
  2. 수량 기준으로 Volume SMA를 도입했다.
  3. 200주기 EMA를 사용하여 장기적인 경향을 판단하는 기준.
  4. 빠른 평균선이 느린 평균선을 상향으로 통과하고 현재 트랜지션량이 트랜지션량 평균선보다 많을 때, 시스템은 여러 신호를 낸다.
  5. 빠른 평균선이 느린 평균선을 아래로 통과하고 현재 거래량이 거래량 평균선보다 많을 때, 시스템은 공백 신호를 낸다.

전략적 이점

  1. 유연성: 다양한 거래 스타일의 요구를 충족하기 위해 여러 종류의 평균선 유형의 전환을 지원합니다.
  2. 신호 신뢰성: 거래량 확인을 통해 거래 신호 품질을 향상한다.
  3. 트렌드 추적: 장기 EMA를 도입하여 큰 트렌드를 판단하고 역동적인 거래를 피하십시오.
  4. 매개 변수 조정 가능: 평균선 주기, 거래량 주기 등의 매개 변수는 시장 특성에 따라 유연하게 조정할 수 있다.
  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)