이중 이동 평균 크로스오버 역전 전략

저자:차오장, 날짜: 2023-12-01 16:56:43
태그:

img

전반적인 설명

이중 이동 평균 크로스오버 역전 전략 (Dual Moving Average Crossover Reversal strategy) 은 트렌드를 추적하는 전형적인 양적 거래 전략이다. 이 전략은 이중 이동 평균 지표의 9일 라인과 14일 라인의 크로스오버 신호를 이용하여 구매 및 판매 신호를 구성한다. 9일 라인이 아래로부터 14일 라인을 뚫고 황금 십자가를 형성할 때 구매하고, 9일 라인이 위로부터 14일 라인을 뚫고 죽음의 십자가를 형성할 때 판매한다. 잘못된 신호를 필터하기 위해 전략은 또한 50일 라인 표시기를 도입하여 가격이 뚫을지 여부를 결정한다.

전략 원칙

이 전략은 주로 이중 이동 평균 지표의 황금 십자 및 죽음의 십자 신호를 기반으로 거래합니다. 이중 이동 평균에서 9일 라인은 단기 트렌드를 나타냅니다. 14일 라인은 중기 트렌드를 나타냅니다. 그리고 그들의 교차는 시장 트렌드의 전환을 판단하는 효과적인 기술 지표입니다. 단기 트렌드 라인이 아래에서 중기 트렌드 라인을 뚫고 황금 십자 를 형성하면 단기 트렌드 라인이 강화되고 있음을 나타냅니다. 이는 구매 신호입니다. 위로부터 뚫고 죽음의 십자 라인을 형성하면 단기 트렌드 라인이 약화되고 있음을 나타냅니다. 이는 판매 신호입니다.

또한, 전략은 또한 잘못된 신호를 필터하기 위해 50일 라인을 도입한다. 가격이 50일 라인 위에 있을 때만 구매를 생성하고, 가격이 50일 라인 아래에 있을 때만 판매를 생성한다. 50일 라인은 중장기 트렌드를 나타낸다. 중장기 트렌드가 일치할 때만 단기 거래가 수행된다.

핵심 논리는 다음과 같습니다.

// Buy condition: 9-day line crosses above 14-day line and close price is above 50-day line 
buyCondition = ta.crossover(sma9, sma14) and close > sma50 

// Sell condition: 9-day line crosses below 14-day line and close price is below 50-day line
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

이점 분석

이중 이동 평균 전략의 장점은 분명합니다.

  1. 이해하기 쉽고 적용하기 쉽고 초보자도 배울 수 있습니다.
  2. 추세에 따라가세요. 시장의 범위에 갇히지 마세요.
  3. 중장기 지표를 사용하여 잘못된 신호를 필터하고 단기 시장 소음으로 속지 않도록하십시오.
  4. 시장 트렌드를 추적하고 장기간 효율적으로 수익을 올릴 수 있습니다.

위험 분석

이중 이동 평균 전략은 또한 몇 가지 위험을 가지고 있습니다.

  1. 시장 붕괴와 같은 극단적인 시장 조건에서 죽음의 십자가가 형성되기 전에 큰 인하가 발생할 수 있습니다. 전략은 죽음의 십자가가 멈추기 전까지 큰 손실 포지션을 유지합니다.
  2. 범위 시장에서, 황금 십자가와 죽음의 십자가는 반복적으로 포지션을 열고 중지하여 번갈아집니다. 이것은 거래 비용을 증가시킵니다.

위험을 해결하기 위해 아래와 같은 최적화가 가능합니다.

  1. 다른 지표들을 도입하여 급격히 손실을 줄일 수 있습니다.
  2. 다른 시장에서 번갈아있는 교차를 피하기 위해 더 많은 개척 필터를 추가하십시오.

최적화 방향

이중 이동 평균 전략은 몇 가지 측면에서 최적화 될 수 있습니다.

  1. 매개 변수 최적화 이동 평균 기간 조정, 지표 매개 변수를 최적화
  2. 더 많은 시그널을 필터하여 시장 상황을 판단하고 잘못된 신호를 피하기 위해 더 많은 지표를 포함하십시오.
  3. 스톱 손실 메커니즘을 도입합니다. 이동 스톱 손실, 침투 스톱 손실 및 기타 스톱 방법을 사용합니다.
  4. 부피 및 변동성 전략과 같은 다른 거래 전략과 결합합니다.
  5. 적당하게 제동력을 활용하여 운영 효율성을 높여야 합니다.

요약

이중 이동 평균 전략은 일반적으로 효율적인 수익 창출 전략입니다. 지속적으로 트렌드를 따라 수익을 얻을 수 있습니다. 동시에 특정 위험이 있으며 추가 개선이 필요합니다. 매개 변수, 정지 방법 및 전략 조합을 최적화함으로써이 전략의 효과를 더욱 향상시킬 수 있습니다.


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

//@version=5
strategy("smaCrossReverse", shorttitle="smaCrossReverse", overlay=true)

// Define the length for the SMAs
sma9Length = input(9, title="SMA 9 Length")
sma14Length = input(14, title="SMA 14 Length")
sma50Length = input(50, title="SMA 50 Length")  // Add input for SMA 50

// Calculate SMAs
sma9 = ta.sma(close, sma9Length)
sma14 = ta.sma(close, sma14Length)
sma50 = ta.sma(close, sma50Length)  // Calculate SMA 50

// Buy condition: SMA 9 crosses above SMA 14 and current price is above SMA 50
buyCondition = ta.crossover(sma9, sma14) and close > sma50

// Sell condition: SMA 9 crosses below SMA 14 and current price is below SMA 50
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

// Track the time since position was opened
var float timeElapsed = na
if (buyCondition)
    timeElapsed := 0
else
    timeElapsed := na(timeElapsed[1]) ? timeElapsed[1] : timeElapsed[1] + 1

// Close the buy position after 5 minutes
if (timeElapsed >= 5)
    strategy.close("Buy")

// Track the time since position was opened
var float timeElapsedSell = na
if (sellCondition)
    timeElapsedSell := 0
else
    timeElapsedSell := na(timeElapsedSell[1]) ? timeElapsedSell[1] : timeElapsedSell[1] + 1

// Close the sell position after 5 minutes
if (timeElapsedSell >= 5)
    strategy.close("Sell")

// Plot the SMAs on the chart
plot(sma9, title="SMA 9", color=color.blue)
plot(sma14, title="SMA 14", color=color.red)
plot(sma50, title="SMA 50", color=color.green)  // Plot SMA 50 on the chart

// Strategy entry and exit conditions using if statements
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)


더 많은