
다중 시간축 MACD 지표 교차 거래 전략은 트렌드 추적 전략이다. 그것은 다른 변수 설정의 MACD 지표를 계산하여, 가격이 지표를 돌파 할 때 거래 신호를 생성하여 주식, 지수, 외환과 같은 금융 제품의 자동 거래를 구현한다.
이 전략은 동시에 3개의 이동 평균을 계산한다: 무게 이동 평균 WMA와 2개의 지수 이동 평균 EMA. 이 3개의 이동 평균의 파라미터 설정은 각각 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 ///