Strategi Perdagangan Momentum MACD Bendera Bulan StochRSI


Tanggal Pembuatan: 2024-02-23 15:06:59 Akhirnya memodifikasi: 2024-02-23 15:06:59
menyalin: 0 Jumlah klik: 587
1
fokus pada
1621
Pengikut

Strategi Perdagangan Momentum MACD Bendera Bulan StochRSI

Ringkasan

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.

Prinsip Strategi

Strategi ini dinilai berdasarkan beberapa indikator utama:

  1. 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.

  2. Indikator momentum buatan sendiri: pada dasarnya mirip dengan indikator Stoch, digunakan untuk menilai arah momentum jangka pendek pasar.

  3. 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.

Keunggulan Strategis

  1. Pengertian Kompleksitas Multi-Indikator untuk Menghindari Sinyal Palsu

  2. Parameter MACD dipilih dengan mempertimbangkan garis 50 dan 200 yang penting bagi pasar

  3. Setelah perubahan parameter pengujian indikator, tidak ada perubahan besar dalam efektivitas strategi, menghindari risiko overfitting

  4. Data deteksi cukup dan lebih dapat diandalkan

Risiko Strategis

  1. Sistem penembusan yang mudah dilelang dapat meningkatkan jumlah transaksi dan biaya slippage

  2. Kompleksitas penilaian multi-indikator yang komprehensif, parameter yang sulit disesuaikan dan dioptimalkan

  3. Operasi singkat di siang hari lebih berisiko

Optimasi Strategi

  1. Dengan lebih banyak indikator, seperti analisis volume transaksi

  2. Menambahkan algoritma pembelajaran mesin untuk optimasi parameter dinamis

  3. Menurunkan frekuensi transaksi, beralih ke siklus yang lebih tinggi untuk penilaian

Meringkaskan

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.

Kode Sumber Strategi
/*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")