다중 시간 프레임 MACD 지표 크로스오버 거래 전략

저자:차오장, 날짜: 2024-02-19 11:03:54
태그:

img

전반적인 설명

멀티 타임프레임 MACD 지표 크로스오버 트레이딩 전략은 트렌드를 따르는 전략이다. 다른 매개 변수 설정으로 계산된 MACD 지표를 통해 가격이 돌파할 때 거래 신호를 생성하여 주식, 지수, 외환 및 기타 금융 상품의 자동화 거래를 가능하게 한다.

전략 논리

이 전략은 3 개의 이동 평균을 동시에 계산합니다: 한 개의 가중화 이동 평균 WMA와 두 개의 기하급수적인 이동 평균 EMA. 이 세 개의 이동 평균의 매개 변수는 각각 25 일, 50 일 및 100 일로 다르게 설정됩니다. 이것은 이동 평균이 다른 기간에 걸쳐 가격 움직임을 커버 할 수있게합니다.

이동 평균을 계산한 후, 전략은 가격이 이동 평균 중 하나를 깨거나 그 아래로 떨어지는지 모니터링합니다. 거래 신호는 가격이 동시에 3 개의 이동 평균을 깨거나 그 아래로 떨어지면 생성됩니다.

예를 들어, 가격이 동시에 3개의 이동 평균보다 높을 때 구매 신호가 생성된다. 가격이 동시에 3개의 이동 평균보다 낮을 때 판매 신호가 생성된다. 이동 평균에 대한 가격 모니터링은 가격 움직임의 반전 지점을 결정할 수 있다.

멀티 타임프레임 인디케이터와 교차 판단을 통해 일부 가짜 신호를 필터링하여 거래 신호를 더 신뢰할 수 있습니다.

이점 분석

  • 거짓 신호를 필터링하기 위해 멀티 타임프레임 분석을 사용
  • 다양한 기간 동안 시장 조건에 적응하기 위해 매개 변수를 최적화하는 것이 쉽습니다.
  • 주식, 지수, 외환 등 여러 상품에 적용할 수 있습니다.

위험 분석

  • 지표 지연은 단기 기회를 놓칠 수 있습니다.
  • 가격 수준이 유지되지 않을 경우 손실 위험
  • 마감 손실을 최적화 하 고 이익을 취하기 위해 나중에 세밀한 조정 매개 변수

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 더 많은 시장 주기를 조정하기 위해 이동 평균 기간을 최적화하십시오.
  2. 과잉 구매 및 과잉 판매를 위한 RSI와 같은 필터링을 위한 다른 기술적 지표를 추가합니다.
  3. 중지 손실 메커니즘을 추가, 중지 거리를 위해 ATR 표시기를 사용할 수 있습니다
  4. 선물과 같은 다른 제품으로 확장, 매개 변수를 최적화

요약

멀티 타임프레임 MACD 지표 크로스오버 거래 전략은 명확한 논리 흐름을 가지고 있습니다. 이동 평균을 사용하여 여러 기간 동안 가격 추세를 결정하고 중요한 반전이 발생하면 거래 신호를 생성합니다. 전략은 큰 최적화 공간을 가지고 있으며 매개 변수를 다른 제품과 시장 주기에 맞게 조정하여 좋은 거래 성과를 낼 수 있습니다. 트렌딩 주식, 인덱스 및 외환의 자동 거래에 적합합니다.


/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TC - MACDoscillator v2", overlay=true)
// ___________      .__                   _________               .__  __         .__   
// \__    ___/____  |  |    ____   ____   \_   ___ \_____  ______ |__|/  |______  |  |  
//   |    |  \__  \ |  |   / ___\ /  _ \  /    \  \/\__  \ \____ \|  \   __\__  \ |  |  
//   |    |   / __ \|  |__/ /_/  >  <_> ) \     \____/ __ \|  |_> >  ||  |  / __ \|  |__
//   |____|  (____  /____/\___  / \____/   \______  (____  /   __/|__||__| (____  /____/
//                \/     /_____/                  \/     \/|__|                 \/      
//
// MACDoscillator Strategy v2
// Josh Breitfeld 2016
//

/// INPUTS START ///

//tradeSize = input(title="Shares Per Trade",  defval=2500, step=1)
WMALength = input(title="WMA Length",  defval=25, step=1)
EMA1Length = input(title="EMA1 Length",  defval=50, step=1)
EMA2Length = input(title="EMA2 Length",  defval=100, step=1)
//security = input(title="Alternate Security", type=string, defval="SPX500")
//inverse = input(title="Inverse Signals", type=bool, defval=true)

/// INPUTS END ///

/// ALGORITHM START ///

/// Define calculations
WMA = wma(close,WMALength)
EMA1 = ema(close,EMA1Length)
EMA2 = ema(close,EMA2Length)

/// Grab values from alternate security
dWMA = WMA
dEMA1 = EMA1
dEMA2 = EMA2

aClose = close

/// Crossover signal system

/// Long crosses
lc1 = aClose > dWMA ? true : false
lc2 = aClose > dEMA1 ? true : false
lc3 = aClose > dEMA2 ? true: false

/// Short crosses
sc1 = aClose < dWMA ? true : false
sc2 = aClose < dEMA1 ? true : false
sc3 = aClose < dEMA2 ? true : false

//plot(lc1,color=green)
//plot(lc2,color=green)
//plot(lc3,color=green)
//plot(sc1,color=red)
//plot(sc2,color=red)
//plot(sc3,color=red)


/// ALGO ORDER CONDITIONS START ///

pBuyToOpen = (lc1 and lc2 and lc3 ? true : false)
pSellToOpen = (sc1 and sc2 and sc3 ?  true : false)
pSellToClose = (lc1 ? true : false) and not pBuyToOpen
pBuyToClose = (sc1 ? true : false) and not pSellToOpen

//plot(pBuyToOpen,color=lime)
//plot(pBuyToClose,color=lime)
//plot(pSellToOpen,color=red)
//plot(pSellToClose,color=red)
/// INVERT SIGNALS

//buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen
//sellToOpen = inverse ? -pBuyToOpen : pSellToOpen
//sellToClose = inverse ? -pSellToClose : pSellToClose
//buyToClose = inverse ? -pBuyToClose : pBuyToClose

/// ALGO ORDER CONDITIONS END ///

/// ALGORITHM END ///

/// DEFINE PLOTS ///

plot(dWMA,"WMA",lime,1,line)
plot(dEMA1,"EMA1",blue,2,line)
plot(dEMA2,"EMA2",red,3,line)
//plot(aClose,"Close",orange,4,line)

/// PLOTS END ///

/// ORDER BLOCK ///

    //strategy.entry("My Long Entry Id", strategy.long)

/// OPENING ORDERS START ///
if(pBuyToOpen) 
    strategy.entry("BTO", strategy.long, comment="BTO")
if(pSellToOpen) 
    strategy.entry("STO", strategy.short, comment="STO")

/// OPENING ORDERS END ///

/// CLOSING ORDERS START ///
strategy.close("BTO", pBuyToClose)
strategy.close("STO", pSellToClose)
/// CLOSING ORDERS END ///

/// END ORDER BLOCK ///

// Josh Breitfeld - Talgo Capital 2016
/// STRATEGY END ///

더 많은