
Strategi perdagangan lintas indikator MACD multi-aksinya adalah strategi pelacakan tren. Dengan menghitung indikator MACD dengan pengaturan parameter yang berbeda, sinyal perdagangan dihasilkan ketika harga melampaui indikator tersebut, yang memungkinkan perdagangan otomatis produk keuangan seperti saham, indeks, dan valuta asing.
Strategi ini menghitung 3 rata-rata bergerak sekaligus: satu rata-rata bergerak berbobot WMA dan dua rata-rata bergerak indeks EMA. Tiga rata-rata bergerak ini memiliki parameter yang berbeda, masing-masing 25 hari, 50 hari, dan 100 hari. Ini memungkinkan rata-rata bergerak untuk mencakup siklus pergerakan harga yang berbeda.
Setelah menghitung moving average, strategi memantau apakah harga akan menembus atau menembus satu moving average. Jika harga menembus atau menembus semua 3 moving averages secara bersamaan, maka sinyal perdagangan akan dihasilkan.
Misalnya, sinyal beli dihasilkan ketika harga secara bersamaan lebih tinggi dari semua 3 rata-rata bergerak; sinyal jual dihasilkan ketika harga secara bersamaan lebih rendah dari semua 3 rata-rata bergerak. Mengamati hubungan antara harga dan rata-rata bergerak dapat menentukan titik balik dari pergerakan harga.
Melalui penilaian silang dari indikator multi-aksara waktu, beberapa sinyal palsu dapat disaring, sehingga sinyal perdagangan lebih dapat dipercaya.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi perdagangan lintas indikator MACD multi-aksis memiliki ide yang jelas, menilai tren harga melalui rata-rata bergerak multi-siklus, menghasilkan sinyal perdagangan ketika ada pergeseran harga yang signifikan. Strategi memiliki ruang optimasi yang luas, dapat menyesuaikan parameter untuk varietas dan siklus pasar yang berbeda, sehingga mendapatkan efek perdagangan yang baik. Strategi ini cocok untuk melakukan perdagangan terprogram pada saham, indeks, dan mata uang asing yang sedang tren.
/*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 ///