
이 전략은 이동 평균 (Moving Average, MA) 의 골드 포크 데드 포크를 기반으로 시장 경향의 전환점을 식별하여 단기 주식 가격의 하락을 포착합니다. 전략은 두 가지 다른 주기적 MA, 즉 짧은 주기적 MA와 긴 주기적 MA를 계산합니다. 짧은 주기적 MA가 긴 주기적 MA를 통과하면 구매 신호가 발생하고 짧은 주기적 MA가 긴 주기적 MA를 통과하면 판매 신호가 발생합니다.
이 전략의 핵심 판단 논리는 단기 MA와 장기 MA의 교차 관계에 있다. 단기 MA는 최근 기간 동안의 가격 변화에 더 빠르게 반응할 수 있고, 장기 MA는 장기 가격 추세를 반영할 수 있는 더 나은 청음능력을 가지고 있다. 단기 MA 위에 장기 MA를 뚫을 때, 최근 가격이 상승하기 시작한다는 것을 말하며, 단기 주가 반전의 신호가 될 수 있으므로, 구매 신호를 발생시키고, 이후의 상승세를 잡는다. 반대로, 단기 MA 아래에 장기 MA를 뚫을 때, 최근 가격이 하락하기 시작한다는 것을 말하며, 단기 주가 반전의 신호가 될 수 있으므로, 판매 신호를 발생시킨다.
구체적으로, 이 전략은 클로즈 가격에 ta.sma 함수를 적용하여 두 개의 MA 라인을 계산한다: maShort (계 9주기) 와 maLong (계 21주기). 그 다음 ta.crossover와 ta.crossunder 함수를 사용하여 짧은 MA와 긴 MA의 교차 관계를 결정하여 구매 및 판매 신호를 생성한다. 마지막으로 수익을 고정하고 위험을 제어하기 위해 스톱 로직을 설정한다.
단일 MA 시스템과 비교하여, 이 전략은 단기 MA와 장기 MA의 가치를 종합적으로 고려하여 가짜 신호를 줄이고 수익률을 높일 수 있습니다. 동시에, MA 교차 신호는 명확하고 읽기 쉽고, 작동 규칙은 직접적으로 효과적이며, 기술 분석에 익숙한 거래자에게 매우 적합합니다.
기계적으로 MA 교차 신호를 따라만 시장의 추세와 주식 특성을 판단하지 못하면 수익성이 낮거나 고주파 거래가 거래 비용을 증가시키는 문제가 발생할 수 있습니다. 또한, MA 교차 신호 자체는 실제 트렌드 전환점보다 뒤쳐져서 최적의 역전 시기를 놓칠 수 있습니다.
예를 들어, MACD, KDJ 등과 같은 다른 기술 지표를 사용하여 MA 교차 신호를 검증하여 오해를 방지 할 수 있습니다. 또한 다양한 거래 품종에 대해 MA 매개 변수를 조정하여 전략의 안정성을 향상시킬 수 있습니다. 동시에 단편 손실을 과도하게 방지하기 위해 막 손실 수준을 적절하게 조정합니다. 다양한 최적화 수단을 종합적으로 사용하면 MA 교차를 기반으로 한 짧은 라인 거래 전략의 실제 성능을 크게 향상시킬 수 있습니다.
이 전략은 MA 교차 원리에 기초하여 간단한 직접적인 짧은 라인 거래 전략을 설계했다. 이 전략은 단기 MA와 장기 MA의 장점을 동시에 결합하고, 최근의 가격 움직임을 고려하고 장기 트렌드 판단을 동시에 고려하여 고품질의 거래 신호를 생성했다. 이 전략은 기술 분석 도구를 사용하는 습관을 가진 적극적인 거래자에게 적합하며, MA 파라미터를 조정하는 방법 등을 통해 최적화하여 풍부한 초과 수익을 얻을 수 있다.
/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Intraday MA Crossover Strategy", overlay=true)
// Define MA lengths
maLengthShort = input.int(9, title="Short MA Length", minval=1)
maLengthLong = input.int(21, title="Long MA Length", minval=1)
// Calculate MAs
maShort = ta.sma(close, maLengthShort)
maLong = ta.sma(close, maLengthLong)
// Plot MAs on the chart
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")
// Generate Buy Signal (Golden Cross: Short MA crosses above Long MA)
buySignal = ta.crossover(maShort, maLong)
strategy.entry("Buy", strategy.long, when=buySignal)
// Generate Sell Signal (Death Cross: Short MA crosses below Long MA)
sellSignal = ta.crossunder(maShort, maLong)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Set stop loss and take profit levels
stopLossPercent = input.float(1, title="Stop Loss %", minval=0.1, maxval=5)
takeProfitPercent = input.float(1, title="Take Profit %", minval=0.1, maxval=5)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)