Moon Flag MACD Momentum StochRSI Strategi Dagangan


Tarikh penciptaan: 2024-02-23 15:06:59 Akhirnya diubah suai: 2024-02-23 15:06:59
Salin: 0 Bilangan klik: 584
1
fokus pada
1617
Pengikut

Moon Flag MACD Momentum StochRSI Strategi Dagangan

Gambaran keseluruhan

Strategi perdagangan MACD momentum StochRSI adalah strategi perdagangan kuantitatif yang menggunakan tiga petunjuk MACD, momentum dan StochRSI untuk membuat keputusan. Strategi ini terutama digunakan untuk perdagangan garis matahari Bitcoin dan Ethereum.

Prinsip Strategi

Strategi ini menilai dengan menggunakan beberapa petunjuk utama:

  1. Indeks MACD: kitaran SMA cepat 50 dan kitaran SMA perlahan 200 mewakili garis 50 hari dan garis 200 hari yang biasa digunakan di pasaran. Indeks ini menilai arah trend jangka panjang pasaran.

  2. Penunjuk momentum buatan sendiri: pada dasarnya sama dengan penunjuk Sttoch, digunakan untuk menilai arah momentum jangka pendek pasaran.

  3. StochRSI: menilai kekuatan pasaran dan kegemilangan.

Apabila memasuki mata wang berganda, anda perlu memenuhi 3 syarat: MACD> 0 (mewakili trend jangka panjang menengah ke atas), penunjuk jumlah penciptaan diri> 0 (mewakili momentum jangka pendek ke atas) dan harga penutupan meningkat sehari sebelumnya (mewakili trend menaik semasa).

Isyarat berbilang kepala rata agak rumit, memerlukan 4 syarat untuk memenuhi MACD < 0, penunjuk jumlah penjanaan sendiri < 0, harga penutupan yang lebih rendah daripada hari sebelumnya dan StochRSI > 20 pada masa yang sama.

Strategi ini merangkumi trend jangka panjang, jangka pendek dan tren semasa, dan merupakan sistem penembusan yang lebih kukuh.

Kelebihan Strategik

  1. Penghakiman berbilang indikator untuk mengelakkan isyarat palsu

  2. Parameter MACD dipilih dengan mengambil kira garis 50 dan 200 yang penting di pasaran

  3. Selepas perubahan parameter ujian setiap parameter, kesan strategi tidak banyak berubah, mengelakkan risiko overfitting

  4. Data pengesanan mencukupi, kebolehpercayaan tinggi

Risiko Strategik

  1. Sistem penembusan mudah didera dan boleh meningkatkan jumlah transaksi dan kos slippage

  2. Kompleksiti penilaian berbilang indikator yang tinggi, parameter yang sukar disesuaikan dan dioptimumkan

  3. Operasi pada waktu siang lebih berisiko

Pengoptimuman Strategi

  1. Kaedah ini juga boleh digunakan untuk mengkaji dan mengkaji kadar penukaran.

  2. Menambah algoritma pembelajaran mesin untuk mengoptimumkan parameter dinamik

  3. Menurunkan frekuensi dagangan, beralih ke kitaran yang lebih tinggi untuk membuat keputusan

ringkaskan

Strategi perdagangan MACD momentum StochRSI merangkumi pelbagai petunjuk untuk menilai trend dan kekuatan pasaran, pengukuran semula yang baik, kebolehpercayaan yang tinggi, sesuai untuk digunakan dan dioptimumkan pada mata wang digital berkualiti tinggi oleh pedagang kuantitatif yang berpengalaman.

Kod 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")