Strategi Trend Momentum berdasarkan MACD dan Bollinger Bands


Tarikh penciptaan: 2024-02-29 13:49:03 Akhirnya diubah suai: 2024-02-29 13:49:03
Salin: 0 Bilangan klik: 682
1
fokus pada
1617
Pengikut

Strategi Trend Momentum berdasarkan MACD dan Bollinger Bands

Gambaran keseluruhan

Strategi ini dinamakan “Momentum Trend” dan ia menggabungkan kelebihan MACD dan Bollinger Bands untuk mewujudkan strategi pengesanan trend. Strategi ini menggunakan garis cepat dan lambat MACD untuk membina Bollinger Bands, dengan garis tengah Bollinger Bands sebagai garis isyarat MACD. Ia melihat rendah apabila harga menembusi Bollinger Bands dan lebih tinggi apabila harga menembusi Bollinger Bands.

Prinsip Strategi

Penunjuk utama strategi ini adalah MACD dan Brin Belt. Di antaranya, penunjuk MACD terdiri daripada garis cepat, garis lambat dan perbezaan MACD. Garis cepat biasanya mengambil 12 hari EMA, garis lambat mengambil 26 hari EMA.

Ia menghasilkan isyarat beli apabila harga menembusi Bollinger Bands dari bawah ke atas; ia menghasilkan isyarat jual apabila harga menembusi Bollinger Bands dari atas ke bawah ke atas. Untuk mengurangkan kemungkinan tersandung dan kehilangan peluang untuk berbalik, strategi ini tidak masuk ke dalam pasaran dengan serta-merta apabila ia menembusi Bollinger Bands, tetapi menunggu untuk kembali ke dalam pasaran untuk menguji Bollinger Bands.

Di samping itu, Brin membawa naik dan turun sebagai titik rintangan dan sokongan. Apabila harga naik, naik adalah rintangan, turun adalah sokongan; apabila harga turun, naik adalah sokongan, turun adalah rintangan.

Analisis kelebihan

Strategi ini menggabungkan kelebihan kedua-dua penunjuk MACD dan Brin Belt untuk mencapai trend tracking, dengan kelebihan berikut:

  1. MACD mempunyai kebolehan yang lebih kuat untuk menentukan trend, dan Brin mempunyai penyesuaian adaptif, kombinasi kedua-duanya dapat menentukan titik perubahan trend dengan berkesan.

  2. Pengambilan semula boleh mengelakkan risiko berhenti dan mengikuti trend garis panjang.

  3. Dengan menggunakan rintangan dan sokongan di Brin Belt, keuntungan dapat dikunci lebih jauh.

  4. Parameter MACD dan Brinks boleh disesuaikan secara fleksibel untuk pelbagai keadaan pasaran.

Analisis risiko

Strategi ini juga mempunyai risiko yang perlu diperhatikan:

  1. MACD dan Brin Belt mungkin mempunyai beberapa isyarat kegagalan semasa trend goyah. Dalam kes ini, anda perlu mengurangkan saiz kedudukan anda untuk mengelakkan kerugian besar.

  2. Apabila anda melakukan penarikan balik, anda perlu menetapkan stop loss untuk mengelakkan penarikan balik yang terlalu mendalam yang menyebabkan kerugian meningkat.

  3. Parameter Brin Belt perlu diselaraskan dengan turun naik pasaran, dan jika parameter tidak ditetapkan dengan betul, kemungkinan palsu akan meningkat.

  4. Pengurusan risiko yang baik dan kawalan kedudukan adalah kunci untuk mendapatkan keuntungan yang berterusan dari strategi tersebut. Risiko keseluruhan mudah diabaikan dengan hanya bergantung pada isyarat strategi.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dengan cara berikut:

  1. Mengoptimumkan parameter MACD, berubah menjadi 8 hari garis cepat, 20 hari garis perlahan, disesuaikan mengikut pelbagai jenis dan kitaran, meningkatkan kepekaan penunjuk.

  2. Meningkatkan penilaian trend ke atas dan ke bawah, mengoptimumkan parameter Brin, dan mengurangkan kadar isyarat palsu pasaran yang bergolak.

  3. Tambah strategi hentikan kerugian, gunakan Brin Belt untuk menetapkan garis hentikan kerugian, mengawal risiko.

  4. Kaedah ini juga boleh digunakan untuk membuat pengesahan dan meningkatkan kestabilan strategi.

ringkaskan

Strategi Momentum Trend yang berasaskan MACD dan Brin Belt, mengesan trend garis tengah panjang melalui kombinasi penunjuk, memutar balik masuk untuk mengurangkan risiko. Ia mengoptimumkan tetapan parameter, mengawal risiko, berprestasi dengan baik dalam varieti trend. Tetapi tidak ada strategi yang sempurna, yang memerlukan kami terus mengoptimumkan dan memperbaiki dari pelbagai sudut, untuk menyesuaikan diri dengan keadaan pasaran yang berubah-ubah.

Kod sumber strategi
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Simple strategy based on MACD and Bollinger Bands, where BBs are calculatend from macd signal.
strategy("Strategy MACD vs BB", overlay=false)

fast_length = input(title="Fast MA period", type=input.integer, defval=8)
slow_length = input(title="Slow MA period", type=input.integer, defval=21)
src = input(close,"Source")


// ----------MA calculation - ChartArt-------------
smoothinput = input(1, minval=1, maxval=4, title='Moving Average Calculation: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')

fast_ma = smoothinput == 1 ? sma(src, fast_length):smoothinput == 2 ? ema(src, fast_length):smoothinput == 3 ? wma(src, fast_length):smoothinput == 4 ? linreg(src, fast_length,0):na
slow_ma = smoothinput == 1 ? sma(src, slow_length):smoothinput == 2 ? ema(src, slow_length):smoothinput == 3 ? wma(src, slow_length):smoothinput == 4 ? linreg(src, slow_length,0):na
//----------------------------------------------
macd = fast_ma - slow_ma
p1=plot(macd,"macd signal",color=color.blue)
length = input(40, minval=1)
mult = input(2.0,"BB multiplier")

basis = sma(macd, length)
dev = mult * stdev(macd, length)
plot(basis,"BB basis",color=color.orange)
upper = basis + dev
lower = basis - dev
p2=plot(upper,"BB upper",color=color.red)
p3=plot(lower,"BB basis",color=color.green)

longCondition = crossover(macd, lower)
shortCondition = crossunder(macd, upper)

plotshape(longCondition?lower:na, title="Long", style=shape.xcross, location=location.absolute, text="Long", color=color.green, transp=0, size=size.tiny)
plotshape(shortCondition?upper:na, title="Short", style=shape.xcross, location=location.absolute, text="Short", color=color.red, transp=0, size=size.tiny)
fill(p1,p3,color=macd<lower?color.green:na,transp=90,title="support")
fill(p1,p2,color=macd>upper?color.red:na,transp=90,title="resistance")

if longCondition
    strategy.entry("Long",strategy.long)
if shortCondition
    strategy.entry("Short",strategy.short)