Strategi ini disebutStrategi crossover rata-rata bergerak kuantitatif tertimbangIde dasarnya adalah untuk merancang garis cepat dan lambat berdasarkan harga, volume perdagangan dan indikator lainnya, dan menghasilkan sinyal beli dan jual ketika golden cross dan cross mati terjadi di antara mereka.
Indikator inti dari strategi ini adalah Quantitative Moving Average (QMA). QMA mengukur arah tren dengan menghitung harga rata-rata tertimbang selama periode waktu tertentu. Berbeda dengan rata-rata bergerak biasa, bobot (bobot = harga * volume perdagangan) harga di QMA akan menurun dari waktu ke waktu. Dengan demikian, harga terbaru memiliki bobot yang lebih besar yang dapat merespons perubahan pasar lebih cepat.
Secara khusus, strategi ini membangun garis QMA cepat dengan 25 hari dan garis QMA lambat dengan 29 hari.
Dibandingkan dengan rata-rata bergerak biasa, strategi ini memiliki keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Risiko di atas dapat dikurangi dengan menyesuaikan frekuensi secara tepat, analisis berjalan maju yang ketat, dan menggabungkan indikator lain.
Masih ada ruang untuk optimalisasi lebih lanjut dari strategi ini:
Secara umum, ini adalah strategi perdagangan jangka pendek yang stabil. Dibandingkan dengan rata-rata harga tunggal, indikatornya dapat lebih mencerminkan hubungan penawaran-permintaan di pasar. Dengan penyesuaian parameter dan manajemen risiko yang tepat, strategi ini dapat beroperasi secara stabil untuk jangka panjang dan mendapatkan keuntungan yang baik.
/*backtest start: 2022-11-29 00:00:00 end: 2023-12-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Brad VWMACD Strategy 2233", overlay=false, max_bars_back=500,default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent, commission_value=0.18, default_qty_value=100) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === 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" // === INPUT SMA === //fastMA = input(defval = 16, type = integer, title = "FastMA", minval = 1 ) //slowMA = input(defval = 23, type = integer, title = "SlowMA", minval = 1) fastMA = input(defval = 25, title = "FastMA", minval = 1 ) slowMA = input(defval = 29, title = "SlowMA", minval = 1) Long_period = slowMA Short_period = fastMA Smoothing_period = input(9, minval=1) xLongMAVolPrice = ema(volume * close, Long_period) xLongMAVol = ema(volume, Long_period) xResLong = (xLongMAVolPrice * Long_period) / (xLongMAVol * Long_period) xShortMAVolPrice = ema(volume * close, Short_period) xShortMAVol = ema(volume, Short_period) xResShort = (xShortMAVolPrice * Short_period) / (xShortMAVol * Short_period) xVMACD = xResShort - xResLong xVMACDSignal = ema(xVMACD, Smoothing_period) nRes = xVMACD - xVMACDSignal //plot(nRes*20+slowMA, color=blue, style = line ) //plot(3000, color=red, style = line ) // === SERIES SETUP === buy = crossover( xVMACD,xVMACDSignal) // buy when fastMA crosses over slowMA sell = crossunder( xVMACD,xVMACDSignal) // sell when fastMA crosses under slowMA // === SERIES SETUP === //buy = crossover(vwma(close, fastMA),7+vwma(close, slowMA)) // buy when fastMA crosses over slowMA //sell = crossunder(vwma(close, fastMA),vwma(close, slowMA)-7) // sell when fastMA crosses under slowMA // === EXECUTION === strategy.entry("L", strategy.long, when = window() and buy) // buy long when "within window of time" AND crossover strategy.close("L", when = window() and sell) // sell long when "within window of time" AND crossunder // === EXECUTION === strategy.entry("S", strategy.short, when = window() and sell) // buy long when "within window of time" AND crossover strategy.close("S", when = window() and buy) // sell long when "within window of time" AND crossunder plotshape(window() and buy, style=shape.triangleup, color=green, text="up") plotshape(window() and sell, style=shape.triangledown, color=red, text="down") plot(xVMACD*100, title = 'FastMA', color = orange, linewidth = 2, style = line) // plot FastMA plot(xVMACDSignal*100, title = 'SlowMA', color = aqua, linewidth = 2, style = line) // plot SlowMA