중동 평균 크로스오버 전략 (Stop Loss 및 Take Profit)

저자:차오장, 날짜: 2023-12-21 15:52:57
태그:

img

전반적인 설명

이 전략은 서로 다른 기간의 이동 평균을 계산하고, 자동화 거래를 구현하기 위해 스톱 로스 및 취리 포인트를 설정합니다. 짧은 기간 이동 평균이 긴 기간 이동 평균을 넘어서면 긴 기간 이동 평균을 넘어서면 짧은 기간 이동 평균이 긴 기간 이동 평균을 넘어서면 짧습니다. 한편, 위험을 제어하기 위해 스톱 로스 및 취리 포인트를 설정합니다.

전략 논리

이 전략은 이동 평균 크로스오버 원리에 기반합니다. 9일 및 55일 간 간단한 이동 평균을 동시에 계산합니다. 9일 MA가 55일 MA보다 높을 때, 단기 트렌드가 상향으로 반전되었다는 신호를 제공합니다. 9일 MA가 55일 MA보다 낮을 때, 단기 트렌드가 하향으로 반전되었다는 신호를 제공합니다.

한편, 이 전략은 ATR 지표를 이용하여 스톱 로스 및 테이크 로프트 포인트를 설정한다. ATR 지표는 시장에서의 가격 변동의 정도를 측정할 수 있다. 스톱 로스 포인트는 ATR 값을 빼고 클로즈 가격에 설정되어 있어 시장 변동성에 따라 합리적인 스톱 로스를 설정할 수 있다. 테이크 로프트 포인트는 리스크-어워드 비율을 사용하며, 여기서 2로 설정되어 있다 - 테이크 로프트 = 클로즈 가격 + 2 * ATR 값.

장점

이것은 매우 간단하고 실용적인 단기 거래 전략이며 다음과 같은 장점이 있습니다.

  1. 이동평균의 교차 원리는 이해하기 쉽고 쉽게 익힐 수 있습니다.
  2. 스톱 로즈와 트레이프의 조합은 위험을 효과적으로 통제하고 실용성을 향상시킵니다.
  3. 이동 평균 매개 변수는 다양한 시장 환경에 적응하도록 유연하게 조정할 수 있습니다.
  4. ATR 스톱 로스는 시장 변동성에 따라 스톱 로스 포인트를 설정할 수 있습니다.
  5. 리스크/리워드 비율 설정은 개인의 리스크 선호도에 따라 조정될 수 있습니다.

위험성

이 전략에는 몇 가지 위험도 있습니다.

  1. 이동 평균 크로스오버 신호는 잘못된 브레이크가 발생할 수 있으며 잘못된 거래를 유발할 수 있습니다.
  2. 부적절한 스톱 로스 (Stop Loss) 또는 취리 (Take Profit) 설정은 손실을 증가시키거나 수익을 감소시킬 수 있습니다.
  3. 부적절한 이동평균 매개 변수는 너무 높은 거래 빈도 또는 지연 신호로 이어질 수 있습니다.
  4. 부적절한 ATR 매개 변수 설정은 또한 스톱-러스 포인트를 너무 가까이 또는 너무 멀리 만들 수 있습니다.

이러한 위험은 매개 변수를 최적화하고 엄격한 스톱 로스 및 합리적인 포지션 사이즈를 통해 줄일 수 있습니다.

최적화

이 전략은 더 이상 최적화 될 수 있습니다.

  1. 최적화 도구를 사용하여 최적의 이동 평균 매개 변수 조합을 찾습니다.
  2. 다른 지표들을 추가하여 이동평균의 크로스오버 신호를 필터링하여 잘못된 파장을 피합니다.
  3. 다른 종류의 이동 평균을 시도해보세요. 예를 들어 기하급수적인 이동 평균 등.
  4. ATR 매개 변수를 최적화에 추가하는 것도 고려해야 합니다.

결론

이 전략의 전반적인 논리는 명확하고 구현하기 쉽고, 특히 초보자가 마스터하기에 적합합니다. 기본적인 단기 거래 전략으로서, 간단한 운영과 쉬운 최적화의 장점이 있습니다. COMPLETE 또는 다른 프레임워크와 결합하면 실용적인 양적 거래 시스템으로 더욱 향상 될 수 있습니다.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA Crossover Strategy with Stop-Loss and Take-Profit", overlay=true)

// Input for selecting the length of the moving averages
maShortLength = input(9, title="Short MA Length")
maLongLength = input(55, title="Long MA Length")

// Input for setting the risk-reward ratio
riskRewardRatio = input(2, title="Risk-Reward Ratio")

// Calculate moving averages
maShort = ta.sma(close, maShortLength)
maLong = ta.sma(close, maLongLength)

// Buy condition: 9-period MA crosses above 55-period MA
buyCondition = ta.crossover(maShort, maLong)

// Sell condition: 9-period MA crosses below 55-period MA
sellCondition = ta.crossunder(maShort, maLong)

// Set stop-loss and take-profit levels
atrValue = ta.atr(14)
stopLossLevel = close - atrValue  // Use ATR for stop-loss (adjust as needed)
takeProfitLevel = close + riskRewardRatio * atrValue  // Risk-reward ratio of 1:2

// Execute buy and sell orders with stop-loss and take-profit
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Sell", from_entry="Buy", loss=stopLossLevel, profit=takeProfitLevel)

// Plot moving averages on the chart
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")

더 많은