Strategi perdagangan kombinasi berdasarkan Bollinger Bands, Moving Average dan MACD


Tanggal Pembuatan: 2024-02-04 15:42:23 Akhirnya memodifikasi: 2024-02-04 15:42:23
menyalin: 0 Jumlah klik: 815
1
fokus pada
1617
Pengikut

Strategi perdagangan kombinasi berdasarkan Bollinger Bands, Moving Average dan MACD

Tinjauan Strategi

Strategi ini menggabungkan tiga indikator Brinks, Moving Average dan MACD untuk membentuk sistem perdagangan yang lebih lengkap. Ini juga dapat menangkap beberapa peluang reversal sambil menilai tren pasar.

Nama dan Prinsip Strategi

Strategi ini diberi nama “Trigonometry of Trend Tracking Strategy” (TRT). Nama ini menonjolkan bahwa strategi ini menggunakan tiga indikator teknis sekaligus untuk menentukan arah tren dan penentuan titik masuk ke pasar.

Logika dasar transaksi adalah:

  1. Menentukan arah tren. Dengan membandingkan garis tengah Brin, EMA, dan MACD pada sumbu nol, untuk menentukan apakah pasar saat ini berada dalam fase multihead atau fase kosong.

  2. Mencari waktu untuk masuk ke pasar. Setelah menentukan tren multihead (atau kosong), strategi akan menilai masuk ke pasar berdasarkan apakah rata-rata bergerak EMA telah menembus Brin mid-trail, dan apakah garis pilar MACD positif (atau negatif) ke garis sinyal yang menembus.

  3. Set Stop Stop Loss. Setelah masuk ke lapangan, Anda akan memiliki Stop Stop dan Stop Loss.

Analisis Keunggulan Strategi

Keuntungan terbesar dari strategi ini adalah bahwa ia menggunakan tiga jenis indikator teknis yang berbeda untuk memandu keputusan secara bersamaan: tren, garis rata-rata, dan MACD. Hal ini membuatnya lebih akurat dalam menilai pergerakan pasar dan lebih baik untuk menangkap beberapa peluang untuk berbalik.

Pertama, garis lintasan di sabuk Brin dapat dengan jelas mencerminkan arah tren utama pada tahap saat ini. Peran garis rata-rata EMA adalah untuk melacak pergerakan tren. Perbandingan dan penggabungan mereka dapat memberikan penilaian yang lebih akurat tentang kondisi multihead dan kosong.

Kedua, Brin Belt memiliki ketahanan yang relatif kuat. Di dekat garis orbit tengah juga mencerminkan titik tekanan pendukung tertentu, sehingga penembusan garis EMA memiliki nilai sinyal tertentu.

Selain itu, penambahan MACD juga dapat dilihat pada konsumsi energi di udara. Ukuran nilai absolutnya mewakili suasana hati massa yang tinggi atau dingin, juga dapat menunjukkan kemungkinan pembalikan.

Akhirnya, strategi ini memiliki kondisi stop loss yang dapat mengontrol risiko dan keuntungan dari setiap transaksi, sehingga memastikan operasi yang stabil secara keseluruhan.

Analisis Risiko Strategi

Meskipun strategi ini mencakup berbagai alat analisis, risiko utama yang dihadapi adalah:

  1. Parameter Brin-band tidak diatur dengan benar, dan garis orbit tidak dapat mencerminkan tren utama dengan jelas.

  2. Sistem linear menghasilkan sinyal multihead, tetapi MACD tidak jelas diarahkan, dan kekuatan kosong mungkin akan meningkat.

  3. Stop Loss Range terlalu besar dan kerugian tunggal dapat berkembang.

Solusi utama adalah:

  1. Menyesuaikan parameter Brin untuk memastikan bahwa garis tengah mencerminkan tren utama secara efektif.

  2. Menggunakan lebih banyak indikator teknis untuk mengevaluasi energi ruang hampa.

  3. Evaluasi sejarah transaksi dan optimalisasi parameter stop loss.

Arah optimasi strategi

Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:

  1. Dalam penilaian tren, lebih banyak indikator diperkenalkan. Penghakiman tambahan seperti KDJ, ATR, dan lain-lain meningkatkan akurasi penilaian.

  2. Pada tingkat operasional, pengaturan stop loss yang lebih halus. Misalnya, stop loss bergerak, meningkatkan rasio stop loss setelah mencapai tinggi baru (<<).

  3. Evaluasi kinerja dari berbagai varietas. Mengadaptasi parameter untuk lebih banyak karakteristik.

  4. Hasil pengujian dan evaluasi dari berbagai kerangka waktu dan pasar. Parameter disesuaikan.

  5. Menambahkan algoritma pembelajaran mesin, mengoptimalkan parameter secara otomatis, dan memperbarui aturan kebijakan secara dinamis.

Meringkaskan

Strategi ini menggunakan tiga indikator teknis utama, yaitu Brinks, Moving Average, dan MACD. Strategi ini menilai tren dengan jelas, bersifat inklusif, dan juga dapat menangkap beberapa peluang reversal. Dengan memperkenalkan lebih banyak alat bantu untuk menilai dan mengoptimalkan strategi stop loss, diharapkan untuk mendapatkan kinerja perdagangan yang lebih stabil. Strategi ini layak untuk dievaluasi dan ditingkatkan lebih lanjut, dan diharapkan menjadi alat yang kuat untuk pengambilan keputusan kuantitatif.

Kode 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)