Strategi Piramida Dinamis

Penulis:ChaoZhang, Tarikh: 2023-12-22 14:36:30
Tag:

img

Ringkasan

Strategi piramid dinamik bertujuan untuk menurunkan kos pegangan purata melalui piramid kedudukan tambahan apabila harga jatuh. Ia boleh membantu mengurangkan kerugian dan memperoleh keuntungan tambahan apabila harga bangkit kembali. Strategi ini akan membuka kedudukan tambahan dengan kuantiti dan selang tertentu apabila keadaan piramid dicetuskan. Sementara itu, bilangan maksimum piramid ditetapkan untuk mengehadkan risiko.

Logika Strategi

Logik teras strategi ini termasuk:

  1. Posisi terbuka: Buka kedudukan panjang dengan harga tertentu jika kedudukan semasa adalah 0.

  2. Keadaan piramid: Trigger piramid jika masa piramid semasa kurang daripada nilai maksimum, dan harga jatuh di bawah harga kemasukan terakhir pada peratusan yang telah ditetapkan.

  3. Cara piramid: Meningkatkan kuantiti piramid pada faktor skala yang sebelumnya, dan mengurangkan selang pada faktor skala.

  4. Syarat mengambil keuntungan: Tutup semua kedudukan jika sasaran keuntungan berdasarkan harga pegangan purata diaktifkan.

Dengan turunnya harga, strategi ini menurunkan kos purata secara dinamik. Ia menghentikan kerugian dengan cekap dan meninggalkan lebih banyak ruang untuk keuntungan apabila trend berbalik. Apabila mengambil keadaan keuntungan dicetuskan, semua kedudukan keluar dengan keuntungan.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah untuk mendapatkan potensi keuntungan yang lebih besar dengan kerugian yang boleh diterima dengan menurunkan kos pegangan purata menggunakan piramid.

  1. Mengurangkan kos pegangan dengan ketara sehingga meningkatkan keupayaan untuk menghentikan kerugian. Dengan menambah pesanan beli tambahan pada harga yang lebih rendah apabila pengeluaran berlaku, strategi mengurangkan entri yang lebih tinggi sebelumnya dan menurunkan kos keseluruhan.

  2. Meningkatkan julat keuntungan selepas mengurangkan kos. Jika harga melonjak kembali, potensi keuntungan diperluaskan dan membuka jalan untuk mengambil keuntungan.

  3. Penyesuaian fleksibel untuk logik piramid dengan menetapkan parameter yang berkaitan pada peningkatan, kuantiti dan selang dll.

  4. Risiko terkawal dengan mengehadkan masa piramid maksimum.

Analisis Risiko

Walaupun strategi ini membolehkan potensi keuntungan yang lebih besar dengan piramid, beberapa risiko memerlukan perhatian:

  1. Risiko kerugian - premis adalah mengambil kerugian tertentu dari piramid.

  2. Risiko terjun tebing - Dalam kes yang melampau seperti terjun tebing, kerugian mungkin melebihi julat yang boleh diterima. tetapan piramid yang munasabah dan titik stop loss sangat penting.

  3. Terlambat atau hilang mengambil keuntungan - Rebound harga mungkin tidak selalu mencetuskan keadaan mengambil keuntungan, yang merupakan kelemahan strategi.

  4. Risiko penyesuaian parameter - Tetapan yang tidak sesuai pada parameter seperti pekali piramid dan mengambil peratusan keuntungan boleh menyebabkan kegagalan.

Langkah-langkah berikut boleh membantu mengurangkan risiko:

  1. Skala peningkatan yang lebih rendah untuk mengawal jumlah kerugian entri tunggal.

  2. Memperkecil selang piramida untuk mencapai pengurangan kos yang lebih cepat.

  3. Tetapkan titik stop loss yang sesuai dan bukannya terlalu longgar.

Arahan pengoptimuman

Memandangkan sifat memperoleh potensi keuntungan yang lebih tinggi dengan piramid, arah pengoptimuman terutamanya memberi tumpuan kepada kawalan risiko yang lebih baik dan peningkatan keuntungan:

  1. Memperbaiki logik piramid untuk membuat entri lebih pintar dan menyesuaikan diri dengan keadaan pasaran. Isyarat kemasukan boleh bergantung pada turun naik, jurang harga dan lebih banyak metrik.

  2. Mengoptimumkan mekanisme mengambil keuntungan untuk kecekapan yang lebih tinggi, seperti mengambil keuntungan, penutupan separa, dan lain-lain, untuk mengurangkan kemungkinan kenaikan harga yang hilang.

  3. Memperkenalkan algoritma pembelajaran mesin untuk membolehkan penyesuaian automatik parameter. Parameter utama menjadi dinamik dan bukannya statik berdasarkan maklum balas masa nyata.

  4. Tambah mekanisme stop loss untuk mengehadkan kerugian maksimum, seperti perintah stop loss dan mengambil pesanan stop keuntungan.

Kesimpulan

Strategi piramid dinamik mengurangkan kos pegangan purata dengan entri tambahan, membolehkan potensi keuntungan yang lebih tinggi dengan toleransi kerugian yang boleh diterima.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("DCA Bot Emulator", overlay=true, pyramiding=99, default_qty_type=strategy.cash, commission_value = 0.02)

// Date Ranges
from_month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
from_day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
from_year  = input(defval = 2021, title = "From Year")
to_month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
to_day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
to_year    = input(defval = 9999, title = "To Year")
start  = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window = time >= start and time <= finish ? true : false // create function "within window of time"

// Strategy Inputs
price_deviation = input(2, title='Price deviation to open safety orders', maxval=0)/100
take_profit = input(1.5, title='Target Take Profit', minval=0)/100

// base order
base_order  = input(100000, title='base order') 
safe_order  = input(200, title='safe order') 
safe_order_volume_scale  = input(2, title='Safety order volume scale') 
safe_order_step_scale  = input(1, title='Safety order step scale') 

max_safe_order = input(10, title='max safe order') 
var current_so = 1
var initial_order = 0.0

// Calculate our key levels
pnl = (close - strategy.position_avg_price) / strategy.position_avg_price

take_profit_level = strategy.position_avg_price * (1 + take_profit)

// First Position
if(strategy.position_size == 0 and window)
    strategy.entry("Long", strategy.long, qty = base_order/close)
    initial_order := close
    current_so := 1

// Average Down!
if current_so > 0 and close  < initial_order * (1 - price_deviation * current_so * safe_order_step_scale) and current_so <= max_safe_order
    so_name = "SO " + tostring(current_so) 
    strategy.entry(so_name, long=strategy.long , qty = safe_order * safe_order_volume_scale /close)
    current_so := current_so + 1
    
// Take Profit!
strategy.close_all(when=take_profit_level <= close  and strategy.position_size > 0)


Lebih lanjut