Penurunan multi-level ATH pelacakan dinamis strategi pembelian tiga tahap

ATH DCA
Tanggal Pembuatan: 2024-12-20 14:53:04 Akhirnya memodifikasi: 2024-12-20 14:53:04
menyalin: 0 Jumlah klik: 372
1
fokus pada
1617
Pengikut

Penurunan multi-level ATH pelacakan dinamis strategi pembelian tiga tahap

Ringkasan

Ini adalah strategi pembelian bertingkat yang didasarkan pada pelacakan dinamika harga tertinggi historis (ATH). Strategi ini dilakukan dengan memonitor harga untuk menarik kembali dari ATH, melakukan pembelian dalam kelompok pada tingkat penurunan yang berbeda, dan menjual semuanya dengan keuntungan ketika harga mendekati ATH. Strategi ini memanfaatkan volatilitas pasar untuk mengurangi biaya penyimpanan keseluruhan dengan cara pembentukan gudang secara sistematis.

Prinsip Strategi

Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:

  1. Dinamika pelacakan ATH: terus memperbarui harga tertinggi sepanjang sejarah, dan menempatkan kembali tanda beli saat mencapai harga tertinggi baru
  2. Trigger penurunan tingkat tiga: set titik beli di retracement level 10%, 15% dan 20%
  3. Pengelolaan dana tetap: setiap pembelian menggunakan jumlah dana yang sama (~$1000)
  4. Penarikan mekanisme penutupan posisi: Penutupan semua posisi saat harga kembali ke kisaran 5% dari ATH Strategi ini menggunakan cara pembentukan posisi progresif ini untuk secara bertahap menurunkan biaya rata-rata memegang posisi selama penurunan dan mengunci keuntungan dengan posisi kosong yang disatukan saat pasar bangkit.

Keunggulan Strategis

  1. Dispersifikasi risiko: mengurangi risiko dalam memilih waktu dengan membangun gudang secara bergilir
  2. Optimalisasi biaya: Menggunakan penarikan yang lebih besar untuk menurunkan biaya rata-rata kepemilikan
  3. Pelacakan Tren: Pembaruan Dinamis ATH memastikan operasi berkelanjutan di tengah tren naik
  4. Efisiensi dana: alokasi dana tetap menjamin kontrol atas penggunaan dana
  5. Otomatisasi pelaksanaan: kondisi masuk dan keluar yang jelas untuk operasi sistematis

Risiko Strategis

  1. Risiko reversal: kemungkinan terjadinya lockdown dalam tren turun jangka panjang
  2. Risiko kehabisan dana: dana yang tersedia dapat cepat habis dalam pasar yang sangat bergejolak
  3. Risiko terlewatkan: kondisi pembelian yang ketat dapat menyebabkan terlewatkan beberapa peluang yang baik
  4. Resiko waktu yang tepat untuk posisi terdepan: Persyaratan posisi terdepan yang seragam mungkin tidak dapat disesuaikan dengan semua kondisi pasar Disarankan untuk mengelola risiko ini dengan menetapkan batas penarikan maksimum dan kontrol posisi keseluruhan.

Arah optimasi strategi

  1. Masukkan filter tren: tambahkan garis rata-rata atau indikator momentum untuk mengkonfirmasi tren keseluruhan
  2. Pengelolaan dana yang optimal: Mengatur jumlah dana yang dibeli setiap kali sesuai dengan fluktuasi
  3. Peningkatan mekanisme pivot: meningkatkan opsi pivot batch, menghindari risiko pivot harga tunggal
  4. Masukkan Stop Loss: Setting Absolute Stop Loss Level untuk Mengontrol Risiko Maksimal
  5. Optimasi parameter dinamis: otomatis menyesuaikan peringkat pembelian sesuai dengan siklus pasar yang berbeda

Meringkaskan

Strategi ini memanfaatkan volatilitas pasar dengan baik melalui sistematisasi batch-building dan mekanisme penataan standar. Keberhasilan strategi ini bergantung pada pasar yang memiliki cukup volatilitas dan akhirnya tren naik. Dengan kontrol risiko yang wajar dan pengoptimalan parameter, strategi ini dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bsticks22

//@version=6

strategy("Long-term Bean Dip (v.1)", overlay=true)

// === Inputs ===
dip1 = input.float(10.0, "First Dip (%)", step=0.1)       // 10%
dip2 = input.float(15.0, "Second Dip (%)", step=0.1)      // 15%
dip3 = input.float(20.0, "Third Dip (%)", step=0.1)       // 20%
recovery_threshold = input.float(5.0, "Sell when within X% of ATH", step=0.1) // 5%
buy_amount = input.float(50000.0, "Buy Amount ($)", step=100) // $1000 increments

// === Variables ===
var float all_time_high = na
var bool dip1_bought = false
var bool dip2_bought = false
var bool dip3_bought = false

// === Update All-Time High ===
if na(all_time_high)
    all_time_high := high
else
    // Update ATH to the previous bar's high to exclude current bar's high
    all_time_high := math.max(all_time_high[1], high[1])
    if high[1] > all_time_high[1]
        // New ATH reached on the previous bar
        dip1_bought := false
        dip2_bought := false
        dip3_bought := false

// === Calculate Percentage Drop from ATH ===
percent_drop = (all_time_high - close) / all_time_high * 100.0

// === Define Dip Conditions ===
buyDip1 = (percent_drop >= dip1) and not dip1_bought
buyDip2 = (percent_drop >= dip2) and not dip2_bought
buyDip3 = (percent_drop >= dip3) and not dip3_bought

// === Calculate Quantity to Buy ===
qty1 = buy_amount / close

// === Execute Buys on Dips ===
if buyDip1
    strategy.entry("Dip1 Buy", strategy.long, qty=qty1)
    dip1_bought := true

if buyDip2
    strategy.entry("Dip2 Buy", strategy.long, qty=qty1)
    dip2_bought := true

if buyDip3
    strategy.entry("Dip3 Buy", strategy.long, qty=qty1)
    dip3_bought := true

// === Sell Condition: Recovery to Within X% of ATH ===
sell_condition = close >= all_time_high * (1 - recovery_threshold / 100.0)

// === Execute Sell on Recovery ===
if sell_condition and strategy.position_size > 0
    strategy.close_all()

// === Plotting ===
plot(all_time_high, title="All-Time High", color=color.new(color.blue, 0))
plot(all_time_high * (1 - dip1 / 100.0), title="Dip1 Level", color=color.new(color.green, 50), style=plot.style_linebr)
plot(all_time_high * (1 - dip2 / 100.0), title="Dip2 Level", color=color.new(color.orange, 50), style=plot.style_linebr)
plot(all_time_high * (1 - dip3 / 100.0), title="Dip3 Level", color=color.new(color.red, 50), style=plot.style_linebr)
plot(all_time_high * (1 - recovery_threshold / 100.0), title="Recovery Level", color=color.new(color.purple, 50), style=plot.style_linebr)

// === Plot Buy and Sell Signals ===
plotshape(buyDip1, title="Dip1 Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy10%")
plotshape(buyDip2, title="Dip2 Buy", location=location.belowbar, color=color.orange, style=shape.labelup, text="Buy15%")
plotshape(buyDip3, title="Dip3 Buy", location=location.belowbar, color=color.red, style=shape.labelup, text="Buy20%")
plotshape(sell_condition and strategy.position_size > 0, title="Sell", location=location.abovebar, color=color.purple, style=shape.labeldown, text="Sell")

// === Alerts ===
alertcondition(buyDip1, title="Dip1 Buy", message="Price dipped 10% from ATH, buying $1000")
alertcondition(buyDip2, title="Dip2 Buy", message="Price dipped 15% from ATH, buying $1000")
alertcondition(buyDip3, title="Dip3 Buy", message="Price dipped 20% from ATH, buying $1000")
alertcondition(sell_condition and strategy.position_size > 0, title="Sell at Recovery", message="Price recovered to within 5% of ATH, selling all")