동력 지표 전략

저자:차오장, 날짜: 2023-11-16 15:47:13
태그:

img

전반적인 설명

이 전략은 이동 평균과 MACD 지표를 사용하여 가격 추세와 동력을 식별하고, 거래 결정을 내리기 위해 크로스오버 신호와 결합합니다. 이것은 전형적인 트렌드 다음 전략입니다.

전략 논리

이 전략은 신호를 생성하기 위해 이중 이동 평균 크로스오버를 사용합니다. 빠른 이동 평균은 12 일, 느린 이동 평균은 26 일 길이 있습니다. 빠른 MA가 느린 MA 위에 넘어가면 긴 신호를 주는 황금 십자가가 형성됩니다. 빠른 MA가 느린 MA 아래에 넘어가면 짧은 신호를 주는 죽음의 십자가가 형성됩니다.

동시에, 이 전략은 모멘텀을 측정하기 위해 MACD 지표를 사용합니다. MACD는 느린 MA (26 일 EMA) 를 빠른 MA (12 일 EMA) 에서 빼고 신호 라인 (9 일 EMA) 으로 평평화하여 계산됩니다. MACD가 신호 라인 위에 넘을 때 상승 모멘텀을 나타냅니다. 신호 라인 아래에 넘을 때 상승 모멘텀을 나타냅니다.

이 전략은 거래 결정을 내리기 위해 이동 평균 크로스오버 신호와 MACD 지표 신호를 모두 고려합니다. 황금 크로스와 MACD 크로스오버가 나타날 때 길고, 죽음의 크로스와 MACD 크로스오버가 발생할 때 짧습니다.

이점 분석

  1. MACD와 결합한 이중 이동 평균을 사용하면 가격 추세와 동력을 모두 고려하여 놓친 거래 기회를 피합니다.

  2. 빠르고 느린 이동 평균 길이는 중장기 트렌드를 식별하기 위해 합리적으로 설정됩니다. MACD 매개 변수는 또한 모멘텀 변화의 신뢰할 수있는 탐지를 위해 표준입니다.

  3. 지표의 그래픽 시각화는 거래 신호를 명확하고 직관적으로 만듭니다. 트렌드 방향과 추진력 강도를 직접 판단 할 수 있습니다.

  4. 전략 매개 변수는 최적화를 위해 유연합니다. MA 길이와 MACD 매개 변수는 다른 시장 환경에 맞게 조정 할 수 있습니다.

  5. 트렌드를 따라 실행하고 지속적인 방향 트렌드에서 이익을 얻을 수 있습니다.

위험 분석

  1. 이중 이동 평균 크로스오버가 지연하여 입력 신호를 지연시킬 수 있습니다.

  2. MACD는 빈번한 잘못된 신호를 줄 수 있습니다. 가격 확인이 필요합니다.

  3. 상승 추세에서 죽음의 교차는 보정을 신호할 수 있습니다. 기존의 긴 거래는 조기에 종료되어서는 안됩니다.

  4. 하락 추세에서 황금 십자화는 리바운드를 알릴 수 있습니다. 기존의 쇼트는 조기에 커버되어서는 안 됩니다.

  5. 엄격한 자금 관리가 이루어져야 하며, 위험을 통제하기 위해 포지션 크기를 제한해야 합니다.

최적화 방향

  1. 크로스오버 신뢰성을 높이기 위해 다양한 기간 조합을 테스트함으로써 MA 매개 변수를 최적화합니다.

  2. 잘못된 신호를 줄이기 위해 짧은 EMA와 긴 EMA 및 신호 라인을 조정하여 MACD 매개 변수를 최적화합니다.

  3. 신호 정확성을 높이기 위해 KDJ, BOLL 같은 다른 지표를 추가합니다.

  4. 부피 지표를 포함해서 잘못된 파장을 피합니다.

  5. 과거 데이터에 기초한 최적의 매개 변수 조합을 찾기 위한 백테스트

  6. 거래당 손실을 엄격히 제한하고 위험을 줄이기 위해 스톱 로스 전략을 적용합니다.

요약

이 전략은 트렌드 트레이딩을 위해 이중 이동 평균 크로스오버와 MACD를 통합합니다. 매개 변수를 최적화하고 신중한 돈 관리를 따르는 것이 장기적으로 안정적인 이익을 얻는 데 도움이 될 것입니다. 그러나 가격 행동으로 확인함으로써 잘못된 신호를 피해야합니다. 추가 최적화는 전략 성능을 향상시킬 수 있습니다.


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

//@version=3
strategy(title="Moving Average Convergence/Divergence MaCD Backesting", shorttitle="MACD Backtesting", precision = 6, pyramiding = 3, default_qty_type = strategy.percent_of_equity, currency = currency.USD, commission_type = strategy.commission.percent, commission_value = 0.10, initial_capital = 1000, default_qty_value = 100)
source = close
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

plot(hist, color=red, style=histogram)
plot(macd, color=blue)
plot(signal, color=orange)

buy = crossover(macd,signal)
sell = crossunder(macd,signal)

plotshape(buy, "buy", shape.triangleup, color = olive , size = size.tiny, location  = location.bottom)
plotshape(sell, "sell", shape.triangledown, color = orange , size = size.tiny, location  = location.bottom)

if (buy)
    strategy.entry("Long Trigger", true)
if(sell)    
    strategy.entry("Short Trigger", false)
if (sell)    
    strategy.exit("Close Long Trigger", "Long Trigger")
if (buy)
    strategy.exit("Close Short Trigger", "Short Trigger")




더 많은