Strategi pembelian tiga peringkat penjejakan dinamik ATH penurunan berbilang peringkat

ATH DCA
Tarikh penciptaan: 2024-12-20 14:53:04 Akhirnya diubah suai: 2024-12-20 14:53:04
Salin: 0 Bilangan klik: 372
1
fokus pada
1617
Pengikut

Strategi pembelian tiga peringkat penjejakan dinamik ATH penurunan berbilang peringkat

Gambaran keseluruhan

Ini adalah strategi pembelian bertingkat berdasarkan pergerakan harga tertinggi dalam sejarah (ATH). Strategi ini dilakukan dengan memantau harga dari ATH, melakukan pembelian secara berturut-turut pada tahap penurunan yang berbeza, dan menjual semuanya dengan keuntungan apabila harga mendekati ATH. Strategi ini memanfaatkan sepenuhnya turun naik pasaran, untuk mengurangkan kos keseluruhan penyimpanan dengan cara pembinaan gudang secara berturut-turut secara sistematik.

Prinsip Strategi

Logik teras strategi merangkumi elemen utama berikut:

  1. Pengesanan ATH yang dinamik: terus mengemas kini harga tertinggi sepanjang sejarah dan meletakkan semula tanda beli apabila mencapai harga tertinggi baru
  2. Timbul penurunan tiga peringkat: set titik beli pada titik pulangan 10%, 15%, dan 20%
  3. Pengurusan dana tetap: jumlah dana yang sama digunakan untuk setiap pembelian (~ $ 1000)
  4. Mekanisme penyingkiran semula: penyingkiran semua pegangan apabila harga kembali ke dalam 5% dari ATH Strategi ini menggunakan cara pembinaan kedudukan beransur-ansur ini untuk mengurangkan kos memegang kedudukan purata secara beransur-ansur semasa penurunan dan mengunci keuntungan dengan meletakkan kedudukan yang sama apabila pasaran bangkit.

Kelebihan Strategik

  1. Penyebaran risiko: Mengurangkan risiko pilihan masa dengan membina gudang secara beratur
  2. Pengoptimuman kos: Menggunakan penarikan balik yang lebih besar untuk mengurangkan kos memegang kedudukan purata
  3. Pengesanan Trend: Kemas kini Dinamik ATH memastikan operasi berterusan dalam trend menaik
  4. Keberkesanan kewangan: Peruntukan dana tetap menjamin penggunaan dana yang terkawal
  5. Pelaksanaan automatik: Syarat masuk dan keluar yang jelas memudahkan operasi sistematik

Risiko Strategik

  1. Risiko trend reversal: kemungkinan berlaku rantaian rantaian dalam trend turun jangka panjang
  2. Risiko kehabisan wang: Wang boleh habis dengan cepat dalam pasaran yang bergolak
  3. Risiko kehilangan peluang: Syarat pembelian yang ketat boleh menyebabkan kehilangan peluang yang baik
  4. Risiko peluang kedudukan sejajar: Syarat kedudukan sejajar yang seragam mungkin tidak sesuai untuk semua keadaan pasaran Ia disyorkan untuk menguruskan risiko ini dengan menetapkan had pengeluaran maksimum dan kawalan kedudukan keseluruhan.

Arah pengoptimuman strategi

  1. Masukkan penapis trend: tambah garis purata atau penunjuk momentum untuk mengesahkan trend keseluruhan
  2. Pengurusan modal yang optimum: jumlah modal yang disesuaikan setiap kali membeli mengikut kadar turun naik
  3. Peningkatan mekanisme penyelesaian: meningkatkan pilihan penyelesaian secara berangsur-angsur untuk mengelakkan risiko penyelesaian harga tunggal
  4. Menambah mekanisme hentian kerugian: menetapkan paras hentian kerugian mutlak untuk mengawal risiko maksimum
  5. Pengoptimuman parameter dinamik: menyesuaikan kedudukan pembelian secara automatik mengikut kitaran pasaran yang berbeza

ringkaskan

Strategi ini memanfaatkan kelembapan pasaran dengan baik melalui mekanisme pembentukan simpanan secara beransur-ansur yang sistematik dan mekanisme simpanan yang seragam. Operasi strategi yang berjaya bergantung pada pasaran yang mempunyai kelembapan yang mencukupi dan trend naik akhirnya. Dengan kawalan risiko yang munasabah dan pengoptimuman parameter, strategi dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.

Kod 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")