다중 이동 평균 돌파 전략


생성 날짜: 2023-11-22 13:41:38 마지막으로 수정됨: 2023-11-22 13:41:38
복사: 0 클릭수: 607
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 이동 평균 돌파 전략

개요

이 전략은 다중 이동 평균의 돌파와 재 돌파를 사용하여 거래 신호를 생성합니다. 가격이 상승 평균선을 돌파 할 때, 더 많이; 가격이 하락 평균선을 넘어서는 경우, 더 많이하지 마십시오.

전략 원칙

코드는 4개의 다른 주기의 이동 평균을 21일선, 50일선, 100일선, 200일선으로 사용한다. 가격이 이 평균선을 뚫을 때 입장이 더 많이 되고, 가격이 이 평균선을 넘어갈 때 입장이 빈다. 또한, 전략은 중단 지점과 중단 지점을 설정한다. 구체적으로, 중단 지점은 전 K선 최저 가격 근처로 설정되고, 중단 지점은 전 K선 최저 가격과 최대 가격의 3배 거리에 설정된다.

이 전략의 핵심 아이디어는 이동 평균을 사용하여 가격 추세를 판단하는 것이다. 가격이 상승 평균선을 돌파했을 때, 현재 상승 추세에 있다는 것을 의미하며, 더 많이 해야 한다. 가격이 하향 평균선을 넘어섰을 때, 현재 하향 추세에 있다는 것을 의미하며, 공백을 해야 한다. 여러 개의 다른 주기의 평균선을 사용하여 추세를 더 정확하게 판단할 수 있으며, 또한 추세 일관성을 통해 거래 신호를 검증 할 수 있다.

우위 분석

이 전략의 장점은 다음과 같습니다.

  1. 복수의 평균선 판단을 사용하여 가짜 신호를 효과적으로 필터링할 수 있다.
  2. 단독 손실을 제한하는 Stop Loss 전략 설정
  3. 간단하고 실행하기 쉽습니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 이동 평균 전략은 오차가 발생하기 쉽기 때문에 가격 전환점을 놓칠 수 있습니다.
  2. 가짜 신호를 뚫고 들어가면 피해가 발생할 수 있습니다.
  3. 부적절한 스티커 설정으로 손실이 커질 수 있습니다.

이러한 위험은 평균선 변수를 조정하고, 스톱 스톱 전략을 최적화하여 줄일 수 있다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 더 많은 주기의 평균선 조합을 테스트하여 최적의 변수를 찾습니다.
  2. 다른 지표로 판단하여 가짜 돌파구를 피하십시오.
  3. 더 나은 리스크/이익 비율을 달성하기 위한 최적화된 H&L 전략
  4. 다른 시장 조건에 따라 변수를 조정하여 전략을 더 거칠게 만듭니다.

요약하다

이 전략은 전체적으로 전형적인 트렌드 추적 전략이다. 장점은 아이디어가 명확하고 이해하기 쉽고 구현된다는 것이다. 단점은 잘못된 신호를 발생시키는 것이 쉽다는 것이다. 매개 변수를 최적화하고 다른 지표를 추가하면 전략의 효과를 더 좋게 할 수 있다. 이 전략은 중장선 포지션에 적합하며, 또한 단선 거래 전략의 구성 요소로 사용할 수 있다.

전략 소스 코드
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)