
Strategi penarikan dinamik rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian rantaian
Idea teras strategi adalah membeli ketika harga berpatah balik ke bawah jalur pergerakan rata-rata, yang biasanya mewakili kawasan oversold jangka pendek, dan kemudian mengambil keuntungan ketika harga kembali ke atas jalur, sambil menetapkan hentian yang munasabah untuk mengawal risiko. Strategi ini memanfaatkan sepenuhnya sifat turun naik harga, mengurangkan kos purata dengan membeli dalam banyak kumpulan, sesuai untuk digunakan dalam persekitaran pasaran yang lebih berfluktuasi.
Prinsip-prinsip utama strategi ini adalah berdasarkan beberapa komponen utama:
Pengiraan tali pinggang purata bergerak:
Syarat kemasukan:
Syarat keluar:
Pengurusan kedudukan:
Penghakiman Trend:
Pengendalian risiko beransur-ansur: Strategi ini menggunakan kaedah kenaikan pangkat secara beransur-ansur, dan bukannya membeli semua kedudukan sekaligus, yang secara berkesan menyebarkan risiko masuk. Dengan peluang kenaikan pangkat sehingga 8 kali, terus menurunkan kos purata dalam tren menurun, meningkatkan kemungkinan keuntungan akhir.
Mekanisme kemasukan dan keluar automatik: Strategi ini secara automatik menilai titik masuk dan titik keluar berdasarkan penunjuk teknikal yang jelas, mengurangkan keputusan perdagangan emosi yang disebabkan oleh penilaian subjektif.
Penyesuaian parameter yang fleksibel: Strategi ini menyediakan banyak parameter yang boleh disesuaikan, termasuk panjang tali, peratusan penyingkiran, peratusan stop loss, dan tempoh pembelian yang sejuk, yang boleh dioptimumkan mengikut keadaan pasaran yang berbeza.
Keupayaan untuk mengesan trend: Strategi mengenal pasti trend dengan menilai arah garis asas, dan melonggarkan syarat pembelian dengan sewajarnya dalam trend menaik, meningkatkan fleksibiliti dan daya serap strategi.
Penggunaan Volatiliti: Ia sangat sesuai untuk digunakan dalam pasaran yang sangat tidak menentu, dan dapat memanfaatkan turun naik harga dengan berkesan untuk menambah risiko dan keuntungan, semakin besar turun naiknya, semakin tinggi potensi keuntungan strategi.
Risiko pembalikan arah aliran: Dalam trend penurunan yang kuat, harga mungkin terus jatuh ke bawah tali ikat, menyebabkan kerugian yang berterusan selepas beberapa kali kenaikan. Walaupun mekanisme penangguhan telah ditetapkan, dalam keadaan yang melampau, ia mungkin mencetuskan kerugian yang lebih besar.
Kepekaan Parameter: Prestasi strategi sangat bergantung kepada tetapan parameter, dan persekitaran pasaran yang berbeza mungkin memerlukan kombinasi parameter yang berbeza. Tetapan parameter yang salah boleh menyebabkan terlalu banyak perdagangan atau kehilangan peluang perdagangan.
Keperluan kewangan: Oleh kerana strategi ini membenarkan maksimum 8 kali pembelian, jika pasaran terus menurun, anda perlu menyediakan dana yang mencukupi untuk menyokong beberapa kali kenaikan, yang mungkin melebihi kemampuan akaun modal kecil.
Penyelesaian risiko tempoh sejuk: Tidak betul mengatur tempoh penyejukan boleh menyebabkan kehilangan peluang pembelian yang penting, atau terlalu cepat menambah saham pada masa yang tidak sesuai.
Setup Stopper Risiko: Jika persentasek penangguhan ditetapkan terlalu tinggi, anda mungkin terlepas peluang untuk memperoleh keuntungan; jika ditetapkan terlalu rendah, anda mungkin mengehadkan ruang keuntungan yang berpotensi.
Pengaturan parameter rangkaian paket dinamik: Peratusan bias yang disesuaikan secara automatik dengan turun naik pasaran boleh dipertimbangkan, bias yang lebih kecil digunakan dalam pasaran turun naik rendah, dan bias yang lebih besar digunakan dalam pasaran turun naik tinggi. Ini dapat menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza.
Menambahkan penapis trend yang lebih canggih: Strategi semasa menggunakan garis asas yang mudah untuk menentukan arah trend, dan anda boleh mempertimbangkan untuk memasukkan indikator trend yang lebih kompleks (seperti MACD, ADX, dan lain-lain) untuk meningkatkan ketepatan penghakiman trend dan mengelakkan pembelian terlalu awal dalam trend penurunan yang kuat.
Mekanisme Hentikan Kerosakan Dinamik: Stop loss peratusan tetap boleh diubah menjadi mekanisme penyesuaian dinamik berdasarkan turun naik pasaran, seperti menetapkan tahap stop loss berdasarkan ATR (Average True Range).
Pengurusan wang yang lebih baik: Anda boleh melakukan pembahagian kedudukan yang dinamik, dan bukannya jumlah tetap untuk setiap pembelian. Sebagai contoh, anda boleh menggunakan peratusan kecil dana untuk pembelian pertama dan meningkatkan jumlah pembelian secara beransur-ansur apabila harga terus menurun.
Menambah penapis masa: Pertimbangkan untuk memasukkan syarat penapisan berdasarkan masa, mengelakkan dagangan pada masa pasaran yang kurang aktif, atau mengenal pasti masa dagangan yang paling menguntungkan berdasarkan data statistik sejarah.
Strategi pegangan dinamik rantaian harga beransur-ansur adalah kaedah perdagangan sistematik yang menggabungkan analisis teknikal dan pengurusan risiko. Strategi ini mengenal pasti peluang pembelian yang berpotensi melalui rantaian rantaian purata bergerak, menggunakan pegangan beransur-ansur untuk mengurangkan kos purata, dan menetapkan peraturan berhenti dan kehilangan yang jelas untuk mengawal risiko.
Strategi ini sangat sesuai untuk digunakan di pasaran yang sangat tidak menentu, yang dapat memanfaatkan pergerakan harga dengan berkesan untuk mewujudkan peluang keuntungan. Di samping itu, strategi ini mempunyai banyak ruang untuk penambahbaikan melalui pengoptimuman parameter dan penambahan penapis tambahan. Walau bagaimanapun, pengguna perlu memperhatikan risiko strategi, terutamanya risiko kerugian berturut-turut yang mungkin dihadapi dalam tren penurunan yang kuat, memastikan terdapat cukup dana untuk menyokong kenaikan harga berulang, dan menyesuaikan parameter sesuai dengan keadaan pasaran yang berbeza.
Secara keseluruhannya, strategi ini menyediakan kerangka perdagangan yang sistematik, menggabungkan elemen trend-following dan perdagangan berlawanan arah, mengurangkan keputusan emosi melalui peraturan yang jelas, membantu memupuk tabiat perdagangan yang disiplin. Ini adalah pilihan strategi yang patut dipertimbangkan untuk peniaga yang mencari pulangan yang stabil dalam pasaran yang bergelora.
/*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)