이동평균 골든크로스와 데드크로스 전략


생성 날짜: 2023-09-21 10:47:24 마지막으로 수정됨: 2023-09-21 10:47:24
복사: 0 클릭수: 639
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 3개의 이동 평균의 금叉死叉 형태를 기반으로 거래한다. 빠른 이동 평균 상의 중간선을 통과하고 중간선 상의 느린 선을 통과할 때 더 많이 거래한다. 빠른 이동 평균 아래의 중간선을 통과하고 중간선 아래의 느린 선을 통과할 때 공백한다.

전략 원칙

  1. 3개의 다른 주기의 이동 평균을 설정합니다: 빠른 라인, 중간 라인, 느린 라인
  2. 고속선에서 중간선과 중간선에서 느린 선을 통과할 때, 더 많이 하세요.
  3. 빠른 선이 중속 선을 통과하고 중속 선이 느린 선을 통과 할 때 공백
  4. 설정 가능한 접속 지연, 필터 가짜 돌파구
  5. 반전 신호가 발동되면 평지

구체적으로, 이 전략은 세 개의 다른 주기 이동 평균 사이의 교차를 사용하여 거래한다. 빠른 선은 현재 단기 경향을 나타냅니다. 중기 선은 중기 경향을 나타냅니다. 느린 선은 장기 경향을 나타냅니다.

우위 분석

  1. 세 개의 평행선을 사용하여 트렌드 방향의 변화를 판단하여 정확도를 향상시킵니다.
  2. 미루어진 진입을 필터링하여 가짜 침입을 방지할 수 있습니다.
  3. 거래 논리는 간단하고 직관적이며 이해하기 쉽습니다.
  4. 유연하게 조정할 수 있는 평균선 변수, 다른 주기에 적용
  5. 우세한 거래, 역동적인 거래의 위험을 피하기

위험 분석

  1. 대주기에는 지분 보유 기간이 더 길고, 손실이 확대될 위험이 있다.
  2. 3선 교차로에는 지연이 있고, 가장 좋은 진입점을 놓칠 수도 있다.
  3. 평균선 변수를 최적화해야 하며, 그렇지 않으면 신호가 정확하지 않을 수 있다.
  4. 장기 포지션은 밤새 위험을 고려해야 합니다.

포지션 보유 시간을 조정하고, 평균선 변수를 최적화하고, 손실을 막는 전략을 도입하는 등의 방법으로 위험을 관리할 수 있다.

최적화 방향

  1. 다양한 평균주기 변수를 테스트하여 최적의 변수를 찾습니다.
  2. 다양한 입구 지연의 장단점을 평가하여 신호를 필터링한다
  3. 실제 상황에 따라 스톱 포지션을 조정하는 스톱 전략을 도입합니다.
  4. 다양한 품종의 변수 선호를 연구하고, 변수 최적화 시스템을 구축
  5. 포지션을 최적화하기 위해 재입장 및 포지션 추가 규칙을 테스트합니다.

요약하다

이 전략은 삼평선 교차 판단 트렌드 방향에 기초하여 포지션을 보유한다. 장점은 거래 신호가 간단하고 명확하며 구성성이 강하다는 것이다. 단점은 지연이 쉽고 변수 최적화가 필요하다는 것이다. 변수 조정, 손실 중지 전략 등으로 효과를 높일 수 있으며 철회 위험을 제어할 수 있다. 이 전략은 거래자가 이동 평균의 응용과 다중평선 교차의 거래 사고방식을 숙지하도록 돕는다.

전략 소스 코드
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © DaynTrading

//@version=4
// strategy(
//      title="Simple Moving Average Cross",
//      overlay=true,
//      initial_capital=5000,
//      default_qty_type=strategy.percent_of_equity,
//      default_qty_value=2,
//      commission_type=strategy.commission.percent,
//      commission_value=0.075,
//      pyramiding=0
//      )

sma_top_input = input(title="SMA Top", type=input.integer, defval=20)
sma_mid_input = input(title="SMA Mid", type=input.integer, defval=50)
sma_low_input = input(title="SMA Low", type=input.integer, defval=200)

bars_long = input(title="Long: After trigger, how many bars to wait?", type=input.integer, defval=5)
bars_short = input(title="Short: After trigger, how many bars to wait?", type=input.integer, defval=5)

sma_top = sma(close, sma_top_input)
sma_mid = sma(close, sma_mid_input)
sma_low = sma(close, sma_low_input)

long = sma_top > sma_mid and sma_mid > sma_low
short = sma_top < sma_mid and sma_mid < sma_low

long_condition = long and long[bars_long] and not long[bars_long + 1]
short_condition = short and short[bars_short] and not short[bars_short + 1]

close_long = sma_top < sma_mid and sma_mid < sma_low and not long[bars_long + 1]
close_short = sma_top > sma_mid and sma_mid > sma_low and not short[bars_short + 1]

plot(sma_top, title="SMA Top", color=#95f252, linewidth=2)
plot(sma_mid, title="SMA Mid", color=#FF1493, linewidth=2)
plot(sma_low, title="SMA Low", color=#6a0dad, linewidth=2)

strategy.entry("LongPosition", strategy.long, when = long_condition)
strategy.entry("ShortPosition", strategy.short, when = short_condition)
    
strategy.close("LongPosition", when = close_short)
strategy.close("ShortPosition", when = close_long)