
Strategi perdagangan MACD momentum StochRSI adalah strategi perdagangan kuantitatif yang menggunakan tiga indikator MACD, momentum, dan StochRSI untuk menilai. Strategi ini terutama berlaku untuk perdagangan garis matahari Bitcoin dan Ethereum.
Strategi ini dinilai berdasarkan beberapa indikator utama:
Indikator MACD: Siklus SMA cepat adalah 50, dan siklus SMA lambat adalah 200, mewakili garis 50 dan 200 hari yang umum digunakan di pasar. Indikator ini menilai arah tren jangka panjang pasar.
Indikator momentum buatan sendiri: pada dasarnya mirip dengan indikator Stoch, digunakan untuk menilai arah momentum jangka pendek pasar.
Indeks StochRSI: menilai kekuatan pasar dan overbought dan oversold.
Ketika masuk ke multihead, perlu untuk memenuhi MACD> 0 (mewakili tren menengah-panjang ke atas), indikator momentum sendiri> 0 (mewakili momentum jangka pendek ke atas) dan harga penutupan meningkat sehari sebelumnya (mewakili tren naik saat ini) 3 kondisi.
Sinyal multihead rata agak rumit, membutuhkan 4 kondisi yang harus dipenuhi secara bersamaan yaitu MACD < 0, indikator volume otomatis < 0, harga penutupan lebih rendah dari hari sebelumnya dan StochRSI > 20.
Strategi ini mengevaluasi tren jangka panjang, jangka pendek, dan tren saat ini, dan merupakan sistem terobosan yang cukup kuat.
Pengertian Kompleksitas Multi-Indikator untuk Menghindari Sinyal Palsu
Parameter MACD dipilih dengan mempertimbangkan garis 50 dan 200 yang penting bagi pasar
Setelah perubahan parameter pengujian indikator, tidak ada perubahan besar dalam efektivitas strategi, menghindari risiko overfitting
Data deteksi cukup dan lebih dapat diandalkan
Sistem penembusan yang mudah dilelang dapat meningkatkan jumlah transaksi dan biaya slippage
Kompleksitas penilaian multi-indikator yang komprehensif, parameter yang sulit disesuaikan dan dioptimalkan
Operasi singkat di siang hari lebih berisiko
Dengan lebih banyak indikator, seperti analisis volume transaksi
Menambahkan algoritma pembelajaran mesin untuk optimasi parameter dinamis
Menurunkan frekuensi transaksi, beralih ke siklus yang lebih tinggi untuk penilaian
Strategi perdagangan MACD momentum StochRSI menggabungkan berbagai indikator untuk menilai tren dan intensitas pasar, pengukuran yang lebih baik, keandalan yang lebih tinggi, cocok untuk diterapkan dan dioptimalkan pada mata uang digital berkualitas tinggi oleh pedagang kuantitatif yang berpengalaman.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// // © MoonFlag
//@version=5
strategy("MoonFlag 1D MACD Momentum StochRSI Strategy", max_bars_back=500, overlay=false, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)
d(gaps_1, data)=>
float out = 0.
out :=(ta.wma(ta.wma(ta.wma(data, math.round(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)), math.round((1 * gaps_1) / 3)) , int(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)))
out
MoonFlagAverage(gaps_1,data)=>
float out = 0.
out:=d(gaps_1,d(gaps_1, d(gaps_1, data)))
out
fastLength = input.int(50, "MACD SMA Fast Length")
slowlength = input.int(200, "MACD SMA Slow Length")
MACDLength = 9//input.int(9, "MACD Length")
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.sma(MACD, MACDLength)
MACDdelta = MACD - aMACD
//plot (MACD, "MACD1", color.red)
//plot (aMACD, "aMACD1", color.green)
//plot (delta, "MACD delta", color.white)
fastLength2 = input.int(12, "MoonFlag Momentum Length")
slowlength2 = 2*fastLength2//input.int(50, "MoonFlag Momentum Slow Length")
MACDLength2 = 20//input.int(20, "Momentum Delta")
MoonFlag_MACD2 = MoonFlagAverage(fastLength2, close) - MoonFlagAverage(slowlength2,close)
MoonFlag_aMACD2 = MoonFlagAverage(MACDLength2, MoonFlag_MACD2)
MoonFlag_delta = MoonFlag_MACD2 - MoonFlag_aMACD2
MoonFlag_delta_line=0
if MoonFlag_delta < 0
MoonFlag_delta_line:=-100
else
MoonFlag_delta_line:=100
//plot (MoonFlag_MACD2, "MoonFlag Momentum Fast Length", color.red)
//plot (MoonFlag_aMACD2, "MoonFlag Momentum Slow Length", color.green)
//plot (MoonFlag_delta2, "MoonFlag Delta", color.white)
uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])
lineColor = color.green
if uptrend > 1
lineColor := color.green
if downtrend < 1
lineColor := color.red
smoothK = 2//input.int(2, minval=1, title="K smoothing Stoch RSI")
smoothD = 3//input.int(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = 7//input.int(7, minval=1, title="RSI Length")
lengthStoch = 8//input.int(8, minval=1, title="Stochastic Length")
src = close//input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
StochRSI = ta.sma(k, smoothD)
MACDdirection_line = 0
MACDdirection_line := MACDdirection_line[1]
if (MACDdelta > 0)
MACDdirection_line := 50
if (MACDdelta < 0)
MACDdirection_line := -50
useStochRSI = input.bool(true,"Include Condition (StochRSI > 20) with Exit Long/Enter Short")
StochRSI_val = 20//input.int(20,"StochRSI greater than to exit short")
h1 = hline(StochRSI_val)
StochRSIGreaterThanSetValue = true
if useStochRSI
if (StochRSI > StochRSI_val)
StochRSIGreaterThanSetValue := true
else
StochRSIGreaterThanSetValue := false
stoch20 = lineColor
if StochRSI < StochRSI_val
stoch20 := color.white
yearin = input.int(2019, title="Start backtesting from year:")
includeShorts = false//input.bool(false, "Include Shorts")
plot(MoonFlag_delta_line,"MoonFlag Momentum Direction", color.white)
plot(MACDdirection_line,"MACD Direction", color = color.orange)
plot(StochRSI, "StochRSI", color=lineColor)
if (year>=yearin)
if (MACDdelta > 0) and (uptrend > 1) and MoonFlag_delta_line > 0
strategy.entry("buy2", strategy.long, comment="buy")
if (MACDdelta < 0) and (downtrend < 1) and MoonFlag_delta_line < 0 and StochRSIGreaterThanSetValue
if includeShorts
strategy.entry("sell", strategy.short, comment="sell")
else
strategy.close("buy2", comment = "sell")