
Smart Progressive Price Packeted Bandwidth Dynamic Hedging Strategy adalah strategi perdagangan long-line yang didasarkan pada moving average packeted bandwidth, yang melakukan pembelian ketika harga turun di bawah bandwidth, dan melakukan kenaikan harga dengan cara bertahap. Strategi ini mendukung hingga 8 pembelian, dengan periode pendinginan antara pembelian, dan menetapkan stop loss berdasarkan harga masuk rata-rata atau stop loss berdasarkan kontrol risiko. Strategi ini membatasi jangkauan perdagangan hingga 365 hari terakhir saat pengembalian, untuk memberikan hasil pengembalian yang lebih terkontrol.
Gagasan inti dari strategi ini adalah melakukan pembelian ketika harga berbalik ke bawah rel, yang biasanya mewakili zona oversold jangka pendek, dan kemudian mengambil keuntungan ketika harga kembali ke atas rel, sambil mengatur stop loss yang masuk akal untuk mengendalikan risiko. Strategi ini memanfaatkan sepenuhnya sifat fluktuasi harga, mengurangi biaya rata-rata dengan membeli dalam beberapa batch, dan cocok untuk digunakan dalam lingkungan pasar yang lebih volatil.
Prinsip-prinsip inti dari strategi ini didasarkan pada beberapa komponen utama:
Penghitungan rata-rata bergerak:
Syarat masuk:
Kondisi pertandingan:
Manajemen Posisi:
Pengadilan tren:
Pengendalian risiko bertahap: Strategi ini menggunakan metode kenaikan posisi bertahap, bukan membeli semua posisi sekaligus, yang secara efektif menyebarkan risiko masuk. Dengan kesempatan kenaikan posisi hingga 8 kali, terus menurunkan biaya rata-rata dalam tren turun, meningkatkan kemungkinan keuntungan akhir.
Mekanisme masuk dan keluar otomatis: Strategi ini didasarkan pada indikator teknis yang jelas, yaitu “moving average” yang secara otomatis menilai titik masuk dan titik keluar, mengurangi keputusan perdagangan emosional yang disebabkan oleh penilaian subjektif.
Fleksibel dalam penyesuaian parameter: Strategi ini menawarkan banyak parameter yang dapat disesuaikan, termasuk panjang jalur bundling, persentase drift, stop loss ratio, dan buy cooling period, yang dapat dioptimalkan sesuai dengan kondisi pasar yang berbeda.
Kemampuan untuk melihat tren: Strategi mengidentifikasi tren dengan menilai arah garis dasar, dan meredakan kondisi pembelian dengan tepat dalam tren naik, meningkatkan fleksibilitas dan kemampuan beradaptasi strategi.
Penggunaan volatilitas: Terutama cocok untuk digunakan di pasar yang sangat fluktuatif, mampu memanfaatkan fluktuasi harga untuk menambah posisi dan keuntungan, semakin besar fluktuasi, semakin tinggi potensi keuntungan strategi.
Risiko pembalikan tren: Dalam tren turun yang kuat, harga mungkin terus jatuh di bawah band, menyebabkan kerugian setelah beberapa kali menaikkan posisi. Meskipun ada mekanisme stop loss, namun dalam situasi ekstrem, mungkin akan memicu kerugian yang lebih besar.
Parameter Sensitivitas: Kinerja strategi sangat bergantung pada pengaturan parameter, dan lingkungan pasar yang berbeda mungkin memerlukan kombinasi parameter yang berbeda. Pengaturan parameter yang salah dapat menyebabkan overtrading atau kehilangan peluang perdagangan.
Kebutuhan dana: Karena strategi ini memungkinkan maksimal 8 kali pembelian, jika pasar terus turun, Anda perlu menyiapkan dana yang cukup untuk mendukung beberapa kali kenaikan, yang mungkin melebihi kemampuan akun modal kecil.
Pengaturan risiko periode pendinginan: Salah mengatur periode pendinginan dapat menyebabkan kehilangan peluang pembelian yang penting, atau menambah saham terlalu cepat pada waktu yang tidak tepat.
Setel Resiko Stop: Jika stop loss persentasenya terlalu tinggi, Anda mungkin kehilangan peluang untuk mendapatkan keuntungan; jika terlalu rendah, Anda mungkin membatasi ruang untuk mendapatkan keuntungan potensial.
Pengaturan Parameter Packet Dynamic: Persentase offset dari bundling band dapat dipertimbangkan untuk disesuaikan secara otomatis sesuai dengan volatilitas pasar, dengan offset yang lebih kecil digunakan di pasar yang kurang berfluktuasi, dan offset yang lebih besar digunakan di pasar yang lebih berfluktuasi. Dengan demikian, dapat lebih beradaptasi dengan lingkungan pasar yang berbeda.
Menambahkan filter tren yang lebih canggih: Strategi saat ini menggunakan garis dasar yang sederhana untuk menentukan arah tren. Anda dapat mempertimbangkan untuk menambahkan indikator tren yang lebih kompleks (seperti MACD, ADX, dll.) untuk meningkatkan akurasi penilaian tren dan menghindari pembelian prematur dalam tren penurunan yang kuat.
Mekanisme Stop Loss Dinamis: Stop loss persentase tetap dapat diubah menjadi mekanisme penyesuaian dinamis berdasarkan volatilitas pasar, seperti pengaturan tingkat stop loss berdasarkan ATR (Average True Range).
Pengelolaan dana yang optimal: Posisi dapat didistribusikan secara dinamis, bukan dengan jumlah tetap untuk setiap pembelian. Misalnya, Anda dapat menggunakan persentase yang lebih kecil dari dana untuk pembelian pertama dan secara bertahap meningkatkan jumlah pembelian saat harga terus turun.
Tambahkan filter waktu: Pertimbangkan untuk menambahkan kondisi penyaringan berdasarkan waktu, menghindari perdagangan pada saat pasar kurang aktif, atau mengidentifikasi waktu perdagangan yang paling menguntungkan berdasarkan data statistik historis.
Smart Progressive Pricing Packet Liner (SPPL) adalah strategi perdagangan sistematis yang menggabungkan analisis teknis dan manajemen risiko. Strategi ini mengidentifikasi peluang pembelian potensial melalui moving average packet line, menggunakan progressive packet line untuk menurunkan biaya rata-rata, dan mengatur aturan stop loss yang jelas untuk mengendalikan risiko.
Strategi ini sangat cocok untuk diterapkan di pasar yang sangat volatil, mampu memanfaatkan fluktuasi harga secara efektif untuk menciptakan peluang keuntungan. Namun, ada banyak ruang untuk perbaikan strategi ini melalui pengoptimalan parameter dan penambahan filter tambahan. Namun, pengguna perlu memperhatikan risiko strategi, terutama risiko kerugian berkelanjutan yang mungkin dihadapi dalam tren penurunan yang kuat, memastikan ada cukup dana untuk mendukung beberapa kali kenaikan, dan menyesuaikan pengaturan parameter sesuai dengan kondisi pasar yang berbeda.
Secara keseluruhan, strategi ini memberikan kerangka perdagangan yang sistematis, menggabungkan elemen pelacakan tren dan perdagangan berlawanan arah, mengurangi keputusan emosional melalui aturan yang jelas, dan membantu mengembangkan kebiasaan perdagangan yang disiplin. Ini adalah pilihan strategi yang layak dipertimbangkan bagi para pedagang yang mencari pengembalian yang stabil di pasar yang bergejolak.
/*backtest
start: 2024-05-14 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("SmartScale Envelope DCA",
overlay=true,
pyramiding=8,
default_qty_type=strategy.cash,
default_qty_value=25, // Order size = $25 CAD
initial_capital=200, // Initial capital = $200 CAD
currency=currency.CAD) // Base currency = CAD
// === Inputs
len = input.int(13, title="Envelope Length", minval=1)
percent = input.float(6.6, title="Envelope % Offset", step=0.1) / 100
src = input(close, title="Source")
exponential = input(false)
stopLossPctInput = input.float(15.0, title="Stop Loss %", minval=0.1, step=0.1)
takeProfitPctInput = input.float(5.0, title="Take Profit % from Avg Entry", minval=0.1, step=0.1)
cooldown = input.int(7, title="Candles Between Buys") // moved to bottom
stopLossPct = stopLossPctInput / 100
takeProfitPct = takeProfitPctInput / 100
maxBuys = 8 // Hardcoded max buy-ins
// === Envelope Calculation
basis = exponential ? ta.ema(src, len) : ta.sma(src, len)
upper = basis * (1 + percent)
lower = basis * (1 - percent)
// === Limit Backtest to Last 365 Days
startDate = timestamp("GMT-5", year(timenow), month(timenow), dayofmonth(timenow)) - 365 * 24 * 60 * 60 * 1000
inDateRange = time >= startDate
// === State Tracking
var float avgEntryPrice = na
var float lastBuyPrice = na
var int buyCount = 0
var int lastBuyBar = na
// === Trend Detection
isUptrend = basis > basis[1]
// === Entry Conditions
lowBelowLower = low < lower
cooldownPassed = na(lastBuyBar) or (bar_index - lastBuyBar >= cooldown)
belowAvgEntry = na(avgEntryPrice) or close < avgEntryPrice
lowerThanLastBuy = na(lastBuyPrice) or close < lastBuyPrice
allowBuyIn = (belowAvgEntry and lowerThanLastBuy) or isUptrend
highAboveUpper = high > upper
// === Exit Conditions
sellCondition = not na(avgEntryPrice) and close >= avgEntryPrice * (1 + takeProfitPct)
stopLossTriggered = not na(avgEntryPrice) and close <= avgEntryPrice * (1 - stopLossPct)
// === Buy Logic
if inDateRange and lowBelowLower and cooldownPassed and buyCount < maxBuys and allowBuyIn and (na(lastBuyPrice) or close <= lastBuyPrice)
buyCount += 1
strategy.entry("Buy in " + str.tostring(buyCount), strategy.long)
lastBuyBar := bar_index
lastBuyPrice := close
avgEntryPrice := na(avgEntryPrice) ? close : (avgEntryPrice * (buyCount - 1) + close) / buyCount
// === Sell Logic
if strategy.position_size > 0 and highAboveUpper and sellCondition
strategy.close_all(comment="Take Profit")
avgEntryPrice := na
buyCount := 0
lastBuyBar := na
lastBuyPrice := na
// === Stop Loss Logic
if strategy.position_size > 0 and stopLossTriggered
strategy.close_all(comment="Stop Loss Hit")
avgEntryPrice := na
buyCount := 0
lastBuyBar := na
lastBuyPrice := na
// === Plot Envelope
plot(basis, "Basis", color=color.orange)
u = plot(upper, "Upper", color=color.blue)
l = plot(lower, "Lower", color=color.blue)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Envelope Background")
// === Plot Avg Entry Price
plot(strategy.position_size > 0 and not na(avgEntryPrice) ? avgEntryPrice : na,
title="Avg Entry Price",
color=color.rgb(173, 195, 226),
linewidth=2,
style=plot.style_line)