Strategi perdagangan gabungan berdasarkan Bollinger Bands, Moving Average dan MACD


Tarikh penciptaan: 2024-02-04 15:42:23 Akhirnya diubah suai: 2024-02-04 15:42:23
Salin: 0 Bilangan klik: 815
1
fokus pada
1617
Pengikut

Strategi perdagangan gabungan berdasarkan Bollinger Bands, Moving Average dan MACD

Gambaran Keseluruhan Strategi

Strategi ini menggabungkan tiga indikator Brinks, Moving Average dan MACD untuk membentuk sistem perdagangan yang lebih lengkap. Ia dapat menilai trend pasaran dan juga mengambil peluang untuk membalikkan.

Nama dan prinsip strategi

Strategi ini dinamakan sebagai Strategi Pengesanan Trend Pengesanan Segitiga Berlian. Nama ini menonjolkan ciri-cirinya yang menggunakan tiga indikator teknikal pada masa yang sama untuk menentukan arah trend dan penentuan titik masuk ke pasaran.

Logik perdagangan asasnya adalah:

  1. Menentukan arah trend. Dengan membandingkan garis tengah Brin, purata bergerak EMA dan MACD pada sumbu sifar, anda dapat menentukan apakah pasaran berada dalam tahap multihead atau tahap kosong.

  2. Mencari masa untuk masuk ke pasaran. Setelah menentukan trend plurality (atau kosong), strategi ini akan menilai masuk ke pasaran berdasarkan sama ada purata bergerak EMA telah menembusi orbit tengah Brin, dan sama ada garis pilar MACD adalah positif (atau negatif) ke arah garis isyarat pecah.

  3. Set Stop Stop Loss. Apabila anda memasuki padang, anda akan mempunyai set Stop Stop dan Stop Loss.

Analisis kelebihan strategi

Kelebihan terbesar strategi ini adalah bahawa ia menggunakan tiga jenis indikator teknikal yang berbeza untuk membimbing keputusan secara serentak: trend, garis purata dan MACD. Ini membolehkan ia menilai pergerakan pasaran dengan lebih tepat dan lebih baik untuk menangkap beberapa peluang pembalikan.

Pertama, garis lintasan di dalam sabuk Brin dapat mencerminkan dengan jelas arah trend utama pada tahap semasa. Peranan garis rata EMA adalah untuk mengesan pergerakan trend. Perbandingan dan gabungan mereka dapat menilai keadaan multihead dan kosong dengan lebih tepat.

Kedua, Brin Belt sendiri mempunyai kebolehpasaran yang lebih kuat. Ia juga mencerminkan tekanan sokongan tertentu di sekitar garis orbit tengah, jadi penembusan garis EMA mempunyai nilai isyarat tertentu.

Tambahan pula, penambahan MACD juga dapat dilihat dalam penggunaan tenaga udara. Saiz nilai mutlaknya mewakili suasana hati orang ramai yang tinggi atau sejuk, dan juga menunjukkan kemungkinan pembalikan.

Akhirnya, strategi ini menyediakan syarat-syarat hentian dan hentian yang dapat mengawal risiko dan keuntungan perdagangan tunggal, untuk memastikan operasi yang stabil secara keseluruhan.

Analisis risiko strategi

Walaupun strategi ini menggunakan pelbagai alat analisis, risiko utama adalah:

  1. Parameter Brin tidak betul dan garis orbit tidak dapat mencerminkan trend utama.

  2. Sistem linear menghasilkan isyarat multi-head, tetapi MACD tidak jelas membetulkan, kuasa kosong mungkin akan berkembang.

  3. Stop loss set terlalu besar, kerugian tunggal boleh meluas.

Penyelesaian utama ialah:

  1. Menyesuaikan parameter Brin untuk memastikan bahawa garis tengah mencerminkan trend utama.

  2. Memperkenalkan lebih banyak penunjuk teknikal untuk menilai tenaga kosong.

  3. Menilai sejarah dagangan dan mengoptimumkan parameter Stop Loss.

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Memperkenalkan lebih banyak penunjuk dalam penilaian trend. Penghakiman tambahan seperti KDJ, ATR dan lain-lain, meningkatkan ketepatan penilaian.

  2. Pada tahap operasi, anda boleh menetapkan penangguhan yang lebih terperinci seperti penangguhan bergerak, peningkatan peratusan penangguhan selepas penembusan tinggi baru (<<<) dan sebagainya.

  3. Menilai kesan prestasi pelbagai jenis. Sesuaikan parameter untuk lebih banyak ciri-ciri keadaan.

  4. Kesan ujian dan penilaian hasil tinjauan dari pelbagai jangka masa dan pasaran.

  5. Menambah algoritma pembelajaran mesin, mengoptimumkan parameter secara automatik dan mengemas kini peraturan strategi secara dinamik.

ringkaskan

Strategi ini menggunakan tiga petunjuk teknikal utama, iaitu Brinband, Moving Average dan MACD. Ia menilai trend dengan jelas, mempunyai kepelbagaian tertentu, dan juga dapat mengambil peluang untuk membalikkan sebahagian. Dengan memperkenalkan lebih banyak alat bantu untuk menilai dan mengoptimumkan strategi stop loss, prestasi perdagangan yang lebih stabil dijangka.

Kod sumber strategi
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Strategy", overlay=true, shorttitle="Comb Strat", default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Precio de beneficio y Stop Loss
takeProfitTicks = 87636
stopLossTicks = 53350

// Bollinger Bands + EMA
length_bb = input(150, title="BB Length")
src_bb = input(close, title="BB Source")
mult = input(2.0, title="BB StdDev")
basis = ta.sma(src_bb, length_bb)
dev = mult * ta.stdev(src_bb, length_bb)
upper = basis + dev
lower = basis - dev

len_ema = input(34, title="EMA Length")
src_ema = input(close, title="EMA Source")
out_ema = ta.ema(src_ema, len_ema)

typeMA = input("SMA", title="Method")
smoothingLength = input(5, title="Length")

var float smoothingLine = na
if (typeMA == "SMA")
    smoothingLine := ta.sma(out_ema, smoothingLength)
else if (typeMA == "EMA")
    smoothingLine := ta.ema(out_ema, smoothingLength)

// MACD
fast_length = input(title="Fast Length", defval=9)
slow_length = input(title="Slow Length", defval=17)
src_macd = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

fast_ma = sma_source == "SMA" ? ta.sma(src_macd, fast_length) : ta.ema(src_macd, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src_macd, slow_length) : ta.ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Condiciones de compra y venta
longCondition = (out_ema > basis) and (macd > signal) and (signal > 0)
shortCondition = (out_ema < basis) and (macd < signal) and (signal < 0)

// Variables de estado
var bool longExecuted = na
var bool shortExecuted = na

// Estrategia
if (longCondition and not longExecuted)
    strategy.entry("Long", strategy.long)
    longExecuted := true
    shortExecuted := na
if (shortCondition and not shortExecuted)
    strategy.entry("Short", strategy.short)
    shortExecuted := true
    longExecuted := na

// Take Profit y Stop Loss para Compras y Ventas Cortas
strategy.exit("Take Profit/Close Long", from_entry="Long", profit=takeProfitTicks, loss=stopLossTicks)
strategy.exit("Take Profit/Close Short", from_entry="Short", profit=takeProfitTicks, loss=stopLossTicks)

// Cierre de posiciones cuando la dirección cambia
if ((out_ema < basis) and (macd < signal))
    strategy.close("Long")
    longExecuted := na
if ((out_ema > basis) and (macd > signal))
    strategy.close("Short")
    shortExecuted := na

// Plots
plot(basis, "BB Basis", color=#FF6D00)
plot(upper, "BB Upper", color=color.new(#2962FF, 0.5))
plot(lower, "BB Lower", color=color.new(#2962FF, 0.5))

plot(smoothingLine, title="Smoothing Line", color=#f37f20, linewidth=2)

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist[1] < hist ? color.green : color.red) : (hist[1] < hist ? color.red : color.green)))
plot(macd, title="MACD", color=color.blue)
plot(signal, title="Signal", color=color.orange)