
이동 평균 교차량화 전략은 두 개의 다른 주기 이동 평균의 교차 신호를 기반으로 매매 신호를 생성하는 양적 거래 전략이다. 이 전략은 9일과 20일 두 개의 간단한 이동 평균을 사용하며, 단기 평균이 아래에서 위쪽으로 긴 평균을 가로지르면 매매 신호를 생성하고, 단기 평균이 위쪽에서 아래로 긴 평균을 가로지르면 매매 신호를 생성한다. 이 전략의 논리는 간단하고 명확하며, 구현 및 최적화하기 쉽습니다.
이 전략의 핵심은 시장 추세의 전환점을 잡기 위해 다양한 주기 이동 평균의 교차 신호를 이용하는 것입니다. 구체적으로, 전략의 주요 단계는 다음과 같습니다:
위의 단계를 통해, 전략은 단기 평균선에서 장기 평균선 이후의 첫 번째 양선을 구매할 수 있고, 단기 평균선 아래에서 장기 평균선 이후의 첫 번째 음선을 판매할 수 있으며, 이를 통해 트렌드 전환점에 적시에 상장과 상장을 구축할 수 있다.
이동 평균의 크로스 수치화 전략은 다음과 같은 장점이 있습니다.
이동 평균의 크로스 수치화 전략은 장점이 있지만 다음과 같은 위험이 있습니다.
위와 같은 위험을 개선하기 위해 다음과 같은 조치를 취할 수 있습니다.
변수 최적화: 이동 평균의 주기적 변수를 최적화하여 현재 시장에 더 적합한 변수 조합을 찾고, 전략의 성능을 향상시킵니다.
신호 필터링: 평행선 교차를 기반으로, MACD, RSI 등과 같은 다른 기술 지표 또는 조건을 도입하여 거래 신호를 2차 확인하고 신호 신뢰성을 향상시킵니다.
포지션 관리: 시장 추세의 강도, 변동률 등의 요인에 따라 포지션 크기를 동적으로 조정하고, 추세가 강할 때 포지션을 늘리고, 추세가 불분명하거나 변동이 증가할 때 포지션을 줄여 수익 위험 비율을 높인다.
손해 막기: 합리적인 손해 막기 장치를 도입하여 단편 거래의 리스크 을 제어하고 동시에 수익을 횡단하여 전략적 수익을 향상시킵니다.
다중 공백 위축: 전략에 역전 신호를 추가하는 것을 고려하고, 동시에 다중 공백 위치를 보유하여, 시장 위험을 위축하여 전략의 안정성을 높인다.
이러한 최적화 방향은 전략의 성능을 개선하는 데 도움이 될 수 있지만, 구체적인 구현은 실제 상황에 따라 조정 및 테스트가 필요합니다.
이동 평균 교차량화 전략은 간단하고 효과적인 트렌드 추적 전략으로, 다른 주기 이동 평균의 교차 신호를 통해 시장 추세 변화를 포착한다. 이 전략은 논리적으로 명확하고 적응력이 강하지만, 동시에 낙후 및 변동 시장의 위험과 같은 문제가 있습니다. 다른 기술 지표, 최적화 파라미터, 포지션 관리 및 위험 제어 조치 개선 등의 방법을 도입함으로써 이 전략의 성능을 더욱 향상시킬 수 있으며, 더 안정적이고 효과적인 수치화 거래 전략이 될 수 있습니다.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZeroHeroTrading
//@version=5
strategy("Simple 9/20 Crossover", overlay=true)
// Define moving averages
ma9 = ta.sma(close, 9)
ma20 = ta.sma(close, 20)
// Set persistent variable to keep track of crossover condition
var bool crossoverCondition = false
// 9 MA crosses above 20 MA
// Set crossover condition to true
if ta.crossover(ma9, ma20)
crossoverCondition := true
// 9 MA crosses under 20 MA
// Reset crossover condition to false
if ta.crossunder(ma9, ma20)
crossoverCondition := false
// Set buy and sell signals
buySignal = crossoverCondition and close > open and close > ma9
sellSignal = close < ma9
// Execute trades based on signals
if (buySignal)
strategy.entry("Long", strategy.long)
// Avoid repeat entries by resetting crossover condition to false
crossoverCondition := false
if (sellSignal)
strategy.close("Long")
// Plot moving averages on the chart
plot(ma9, color=color.blue)
plot(ma20, color=color.red)