
Strategi perdagangan silang penunjuk MACD berjangka masa adalah strategi pengesanan trend. Dengan mengira penunjuk MACD dengan parameter yang berbeza, ia menghasilkan isyarat perdagangan apabila harga menembusi penunjuk tersebut, mewujudkan perdagangan automatik produk kewangan seperti saham, indeks, dan mata wang asing.
Strategi ini mengira 3 purata bergerak pada masa yang sama: satu purata bergerak bertimbangan WMA dan dua purata bergerak indeks EMA. Perlembagaan parameter ketiga-tiga purata bergerak ini adalah berbeza, masing-masing 25 hari, 50 hari dan 100 hari. Ini membolehkan purata bergerak merangkumi kitaran pergerakan harga yang berbeza.
Selepas mengira purata bergerak, strategi akan memantau sama ada harga akan menembusi atau menembusi satu purata bergerak. Jika harga menembusi atau menembusi semua 3 purata bergerak pada masa yang sama, maka isyarat perdagangan akan dihasilkan.
Sebagai contoh, apabila harga pada masa yang sama lebih tinggi daripada semua 3 purata bergerak, menghasilkan isyarat membeli; apabila harga pada masa yang sama lebih rendah daripada semua 3 purata bergerak, menghasilkan isyarat menjual. Mengesan hubungan harga dengan purata bergerak dapat menentukan titik perubahan pergerakan harga.
Melalui penilaian silang pelbagai indikator, beberapa isyarat palsu boleh ditapis dan isyarat perdagangan lebih dipercayai.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi perdagangan silang penunjuk MACD berjangka masa banyak mempunyai pemikiran keseluruhan yang jelas, menilai trend harga melalui purata bergerak berbilang kitaran, menghasilkan isyarat perdagangan apabila terdapat perubahan harga yang ketara. Strategi mempunyai ruang pengoptimuman yang luas, dapat menyesuaikan parameter untuk pelbagai jenis dan kitaran pasaran, untuk mendapatkan kesan perdagangan yang baik. Strategi ini sesuai untuk perdagangan berprogram untuk saham, indeks dan mata wang asing yang bergaya.
/*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 ///