
Strategi ini menggabungkan tiga indikator bergerak, pita Brin, dan indikator relatif kuat untuk perdagangan saham dalam beberapa siklus. Pada saat membeli, ia akan mempertimbangkan tiga kondisi sekaligus, yaitu rata-rata bergerak lambat di atas rata-rata bergerak cepat, indikator relatif kuat di bawah 50 dan harga penutupan di bawah garis tengah pita Brin. Pada saat menjual, ia akan mempertimbangkan indikator relatif kuat di atas 70 dan harga penutupan di atas jalur pita Brin.
Strategi ini menggunakan tiga indikator utama untuk menilai. Pertama adalah indikator MACD, yang terdiri dari rata-rata bergerak dua periode yang berbeda, cepat dan lambat, yang menghasilkan sinyal beli ketika garis cepat melewati garis lambat. Indikator kedua adalah Brin Belt, yang terdiri dari tiga garis di tengah, atas dan bawah rel.
Pada perdagangan spesifik, strategi ini pertama-tama meminta rata-rata bergerak cepat untuk melintasi rata-rata bergerak lambat, yang menunjukkan peningkatan momentum kenaikan harga saham, yang dapat dibeli. Selain itu, meminta RSI di bawah 50, yang menunjukkan bahwa harga saham mungkin berada di zona oversold, untuk memasuki waktu pembelian. Selain itu, meminta harga penutupan di bawah rel tengah Brin, yang menunjukkan bahwa harga saham berada di bagian lembah, juga merupakan titik masuk yang lebih baik untuk dibeli.
Dalam hal stop loss dan stop loss, ketika RSI di atas 70 menunjukkan bahwa harga saham mungkin berada di zona overbought, menunjukkan bahwa momentum kenaikan turun, dan stop loss harus dipertimbangkan. Selain itu, ketika harga close out di atas Bollinger Bands, juga menunjukkan bahwa harga saham mungkin terlalu tinggi, ada risiko penurunan, dan stop loss harus dilakukan dengan tepat.
Strategi ini menggunakan tiga indikator, yaitu Moving Average, Bollinger Bands, dan RSI, untuk lebih akurat menentukan kapan harus membeli dan menjual.
Moving averages dapat menentukan momentum kenaikan harga saham, Brin Belt Interval dapat menemukan titik beli di bagian bawah harga saham, RSI dapat mencegah pembelian saham di titik tinggi. Ketiga kombinasi dapat menentukan waktu pembelian yang lebih baik di periode pertengahan kenaikan harga saham.
Kombinasi RSI dan Brin yang berada di jalur yang tepat dapat membantu mengontrol harga saham di puncak, menghindari overbought, dan menghentikan penurunan.
Menggunakan penilaian multi-siklus, peluang perdagangan dapat ditangkap pada tingkat yang berbeda, memperluas ruang untuk keuntungan.
Strategi ini memiliki logika perdagangan yang sederhana, jelas, dan mudah dimengerti, yang cocok untuk investasi jangka menengah dan panjang.
Meskipun strategi ini mengintegrasikan beberapa penilaian indikator untuk meningkatkan keakuratan keputusan perdagangan, risiko utama adalah sebagai berikut:
Parameter pengaturan risiko. Parameter untuk Moving Average, Bollinger Bands dan RSI perlu disesuaikan dengan situasi yang sebenarnya, jika parameter yang tidak tepat akan mempengaruhi efek perdagangan.
Dalam pasar beruang, harga saham turun lebih cepat, dan strategi stop loss ini mungkin tidak efektif.
Risiko saham tunggal. Strategi ini lebih cocok untuk portofolio, risiko saham tunggal tetap ada dan perlu diversifikasi investasi.
Frekuensi transaksi mungkin terlalu tinggi. Jika parameter disetel dengan benar, strategi ini mungkin sering diperdagangkan. Ini akan meningkatkan biaya transaksi dan pajak.
Solusi yang sesuai:
Parameter harus disesuaikan dengan data pengemasan ulang untuk membuat frekuensi sinyal indikator lebih sesuai.
Periode rata-rata bergerak dapat disesuaikan untuk mengurangi frekuensi pembelian dan mengurangi kerugian.
Meningkatkan varietas investasi dan mengurangi risiko saham tunggal melalui diversifikasi investasi.
Memperkecil frekuensi transaksi dengan meredakan kondisi pembelian dan penutupan.
Strategi ini masih memiliki ruang untuk dioptimalkan lebih jauh:
Filter indikator yang lebih banyak dapat diperkenalkan, seperti indikator volume transaksi, untuk memastikan bahwa volume transaksi meningkat saat membeli, meningkatkan keakuratan keputusan.
Anda dapat menambahkan modul manajemen posisi untuk menyesuaikan posisi secara dinamis sesuai dengan kondisi pasar.
Dengan menggunakan algoritma pembelajaran mendalam, pengaturan parameter dapat dioptimalkan secara otomatis dengan melatih sejumlah besar data.
Anda dapat menambahkan lebih banyak penilaian siklus waktu untuk memperluas aplikasi.
Strategi ini secara keseluruhan logis jelas, mudah dimengerti, menggunakan beberapa penilaian indikator secara komprehensif, mengurangi sinyal palsu sampai batas tertentu. Dengan mengoptimalkan parameter dan menambahkan lebih banyak indikator teknis, dapat meningkatkan akurasi keputusan, meningkatkan kebugaran strategi. Strategi ini lebih cocok untuk investasi jangka menengah dan panjang, juga dapat digunakan untuk perdagangan kuantitatif.
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//
//@author Alorse
//@version=4
strategy("MACD + BB + RSI [Alorse]", shorttitle="BB + MACD + RSI [Alorse]", overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)
txtVer = "1.0.1"
version = input(title="Version", type=input.string, defval=txtVer, options=[txtVer], tooltip="This is informational only, nothing will change.")
src = input(title="Source", type=input.source, defval=close)
// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=12, group="MACD")
slow_length = input(title="Slow Length", type=input.integer, defval=26, group="MACD")
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
// Bollinger Bands
bbGroup = "Bollindger Bands"
length = input(20, title="Length", group=bbGroup)
mult = input(2.0, title="StdDev", minval=0.001, maxval=5, group=bbGroup)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
// RSI
rsiGroup = "RSI"
lenRSI = input(14, title="Length", minval=1, group=rsiGroup)
// lessThan = input(50, title="Less than", minval=1 , maxval=100, group=rsiGroup)
RSI = rsi(src, lenRSI)
// Strategy Conditions
buy = crossover(macd, signal) and RSI < 50 and close < basis
sell = RSI > 70 and close > upper
// Stop Loss
slGroup = "Stop Loss"
useSL = input(false, title="╔══════ Enable ══════╗", group=slGroup, tooltip="If you are using this strategy for Scalping or Futures market, we do not recommend using Stop Loss.")
SLbased = input(title="Based on", type=input.string, defval="Percent", options=["ATR", "Percent"], group=slGroup, tooltip="ATR: Average True Range\nPercent: eg. 5%.")
multiATR = input(10.0, title="ATR Mult", type=input.float, group=slGroup, inline="atr")
lengthATR = input(14, title="Length", type=input.integer, group=slGroup, inline="atr")
SLPercent = input(10, title="Percent", type=input.float, group=slGroup) * 0.01
longStop = 0.0
shortStop = 0.0
if SLbased == "ATR"
longStop := valuewhen(buy, low, 0) - (valuewhen(buy, rma(tr(true), lengthATR), 0) * multiATR)
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop := (valuewhen(sell, rma(tr(true), lengthATR), 0) * multiATR) + valuewhen(sell, high, 0)
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] > shortStopPrev ? max(shortStop, shortStopPrev) : shortStop
if SLbased == "Percent"
longStop := strategy.position_avg_price * (1 - SLPercent)
shortStop := strategy.position_avg_price * (1 + SLPercent)
strategy.entry("Long", true, when=buy)
strategy.close("Long", when=sell, comment="Exit")
if useSL
strategy.exit("Stop Loss", "Long", stop=longStop)