
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.
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:
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.
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.
Set Stop Stop Loss. Setelah masuk ke lapangan, Anda akan memiliki Stop Stop dan Stop Loss.
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.
Meskipun strategi ini mencakup berbagai alat analisis, risiko utama yang dihadapi adalah:
Parameter Brin-band tidak diatur dengan benar, dan garis orbit tidak dapat mencerminkan tren utama dengan jelas.
Sistem linear menghasilkan sinyal multihead, tetapi MACD tidak jelas diarahkan, dan kekuatan kosong mungkin akan meningkat.
Stop Loss Range terlalu besar dan kerugian tunggal dapat berkembang.
Solusi utama adalah:
Menyesuaikan parameter Brin untuk memastikan bahwa garis tengah mencerminkan tren utama secara efektif.
Menggunakan lebih banyak indikator teknis untuk mengevaluasi energi ruang hampa.
Evaluasi sejarah transaksi dan optimalisasi parameter stop loss.
Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:
Dalam penilaian tren, lebih banyak indikator diperkenalkan. Penghakiman tambahan seperti KDJ, ATR, dan lain-lain meningkatkan akurasi penilaian.
Pada tingkat operasional, pengaturan stop loss yang lebih halus. Misalnya, stop loss bergerak, meningkatkan rasio stop loss setelah mencapai tinggi baru (<<).
Evaluasi kinerja dari berbagai varietas. Mengadaptasi parameter untuk lebih banyak karakteristik.
Hasil pengujian dan evaluasi dari berbagai kerangka waktu dan pasar. Parameter disesuaikan.
Menambahkan algoritma pembelajaran mesin, mengoptimalkan parameter secara otomatis, dan memperbarui aturan kebijakan secara dinamis.
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.
/*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)