Strategi ini menggabungkan indikator MACD dan indikator moving average untuk melakukan perdagangan lebih banyak saat keduanya memberikan sinyal sinkronisasi.
Logika transaksi adalah sebagai berikut:
Menghitung nilai FAST MACD, biasanya mengambil rata-rata indeks bergerak 12 hari
Menghitung nilai SLOW MACD, biasanya menggunakan indeks moving average 26 hari
MACD adalah FAST minus SLOW
Menghitung garis sinyal MACD, biasanya mengambil rata-rata bergerak 9 hari
Perhitungan rata-rata bergerak 9 dan 26 hari
Pertimbangkan untuk melakukan lebih banyak ketika Anda menyalakan sinyal MACD
Ketika Anda memakai garis rata-rata 9 hari pada garis rata-rata 26 hari, lakukan lebih banyak
Ketika MACD melewati garis sinyal dan 9 hari di bawah garis rata-rata 26 hari di bawah garis rata-rata, posisi kosong
Strategi ini memanfaatkan sepenuhnya kemampuan MACD untuk melakukan penilaian overbought dan oversold dan untuk melacak tren pada garis rata-rata, dan menggabungkan keduanya untuk melakukan perdagangan dengan tingkat keberhasilan yang lebih tinggi.
MACD menilai overbought dan oversold, rata-rata garis menilai tren
Verifikasi kombinasi keduanya memberikan peluang yang lebih tinggi untuk melakukan lebih banyak pekerjaan
Aturan Operasi yang Jelas dan Mudah Diperlakukan
Perlu pengujian berulang untuk menentukan parameter optimal
Hanya bekerja lebih banyak, tidak bisa memanfaatkan kesempatan kosong
“Saya tidak tahu apa yang terjadi”, kata dia, “Saya tidak tahu apa yang terjadi”.
Strategi ini memanfaatkan sepenuhnya keuntungan dari MACD dan rata-rata indikator, kombinasi keduanya untuk menilai kecepatan pasar. Namun, perlu diperhatikan masalah seperti melakukan lebih banyak dan optimasi parameter.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD Cross+MA", overlay=true)
//@version=4
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//plot
plot(sma(close,9),color=color.red)
plot(sma(close,26),color=color.green)
//Condition
BMacdcondition= (macd>signal)
SMacdcondition= (macd<signal)
longCondition = crossover(sma(close, 9), sma(close, 26))
shortCondition = crossunder(sma(close, 9), sma(close, 26))
//entry
if (BMacdcondition) and window()
(longCondition)
strategy.entry("LONG", strategy.long)
if (shortCondition) and window()
(SMacdcondition)
strategy.close("LONG", qty_percent=100 , comment="หนีตาย")