멀티 타임프레임 MACD 지표 크로스오버 트레이딩 전략은 트렌드를 따르는 전략이다. 다른 매개 변수 설정으로 계산된 MACD 지표를 통해 가격이 돌파할 때 거래 신호를 생성하여 주식, 지수, 외환 및 기타 금융 상품의 자동화 거래를 가능하게 한다.
이 전략은 3 개의 이동 평균을 동시에 계산합니다: 한 개의 가중화 이동 평균 WMA와 두 개의 기하급수적인 이동 평균 EMA. 이 세 개의 이동 평균의 매개 변수는 각각 25 일, 50 일 및 100 일로 다르게 설정됩니다. 이것은 이동 평균이 다른 기간에 걸쳐 가격 움직임을 커버 할 수있게합니다.
이동 평균을 계산한 후, 전략은 가격이 이동 평균 중 하나를 깨거나 그 아래로 떨어지는지 모니터링합니다. 거래 신호는 가격이 동시에 3 개의 이동 평균을 깨거나 그 아래로 떨어지면 생성됩니다.
예를 들어, 가격이 동시에 3개의 이동 평균보다 높을 때 구매 신호가 생성된다. 가격이 동시에 3개의 이동 평균보다 낮을 때 판매 신호가 생성된다. 이동 평균에 대한 가격 모니터링은 가격 움직임의 반전 지점을 결정할 수 있다.
멀티 타임프레임 인디케이터와 교차 판단을 통해 일부 가짜 신호를 필터링하여 거래 신호를 더 신뢰할 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
멀티 타임프레임 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 ///