이동 평균 차이 제로 크로스오버 전략


생성 날짜: 2024-01-26 15:45:03 마지막으로 수정됨: 2024-01-26 15:45:03
복사: 0 클릭수: 556
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동 평균 차이 제로 크로스오버 전략

개요

이 전략은 이동 평균의 차이를 사용하여 주가와 평균의 편차를 판단하고, 0 축 교차 시스템과 결합하여 거래 신호를 발산한다. 기본 아이디어는 가격이 위쪽에서 평균에 가까워지면 하락하고, 가격이 아래쪽에서 평균에 가까워지면 상승하는 것이다.

전략 원칙

  1. 8일 지수 이동 평균 (EMA) 과 지난 8일 동안의 최소 이동 평균 (lowestEMA) 을 계산합니다.
  2. 가격과 현재 이동 평균의 차이는
  3. 0보다 작은diff를 하향 신호로 판단하고,diff 상단 0을 하향 신호로 판단하고, 신호를 본다.
  4. 지난 주 최대 하락과 비교해 ‘diff’의 수치가 큰 거래 신호

우위 분석

  1. 이중 일률 시스템으로 가짜 돌파구를 효율적으로 필터링할 수 있습니다.
  2. 최저 가격 이론을 사용하여 하위 신호를 발견합니다.
  3. 수치를 비교하여 과잉 구매를 판단하고, 상위와 하락을 추적하는 것을 피하십시오.

위험 분석

  1. 이중 평행 전략은 휘프사우 효과로 이어질 수 있습니다.
  2. 거래 빈도가 너무 높다는 것에 주의해야 합니다.
  3. 이동 평균 변수를 합리적으로 설정하는 것이 중요합니다.

최적화 방향

  1. 이동 평균 주기 변수를 다른 주기에 맞게 조정합니다.
  2. 거래량 지표 필터링
  3. 스토카스틱 지표와 함께 오버박스를 피하십시오.

요약하다

이 전략은 평균선 차차법과 0축 교차 판단 시스템을 통합하여 매매점 탐지 정확도를 향상시키기 위해 고안되었다. 그러나 파라미터 설정을 추가로 최적화하고 다른 지표 필터링 신호와 협력해야 한다. 전체적으로 이 전략은 간단한 지표 판단 효과를 활용할 수 있으며 기본 전략 중 하나로 실판에 사용할 수 있다.

전략 소스 코드
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Estratégia diferença menor preço de 8")

// Configuração da Média Móvel
emaPeriod = 8

ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)

// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA

//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0




// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1) 
sell_signal = diffUm and diffUnder and crossunder(diff, diff1)

// Executa as operações de compra/venda
if buy_signal
    strategy.entry("Buy", strategy.long)
if sell_signal
    strategy.exit("Buy")

// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)

plot(diffLow, title="Diferença", color=color.red, linewidth=2)