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.
Logik teras strategi ini termasuk:
Posisi terbuka: Buka kedudukan panjang dengan harga tertentu jika kedudukan semasa adalah 0.
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.
Cara piramid: Meningkatkan kuantiti piramid pada faktor skala yang sebelumnya, dan mengurangkan selang pada faktor skala.
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.
Kelebihan terbesar strategi ini adalah untuk mendapatkan potensi keuntungan yang lebih besar dengan kerugian yang boleh diterima dengan menurunkan kos pegangan purata menggunakan piramid.
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
Meningkatkan julat keuntungan selepas mengurangkan kos. Jika harga melonjak kembali, potensi keuntungan diperluaskan dan membuka jalan untuk mengambil keuntungan.
Penyesuaian fleksibel untuk logik piramid dengan menetapkan parameter yang berkaitan pada peningkatan, kuantiti dan selang dll.
Risiko terkawal dengan mengehadkan masa piramid maksimum.
Walaupun strategi ini membolehkan potensi keuntungan yang lebih besar dengan piramid, beberapa risiko memerlukan perhatian:
Risiko kerugian - premis adalah mengambil kerugian tertentu dari piramid.
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.
Terlambat atau hilang mengambil keuntungan - Rebound harga mungkin tidak selalu mencetuskan keadaan mengambil keuntungan, yang merupakan kelemahan strategi.
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:
Skala peningkatan yang lebih rendah untuk mengawal jumlah kerugian entri tunggal.
Memperkecil selang piramida untuk mencapai pengurangan kos yang lebih cepat.
Tetapkan titik stop loss yang sesuai dan bukannya terlalu longgar.
Memandangkan sifat memperoleh potensi keuntungan yang lebih tinggi dengan piramid, arah pengoptimuman terutamanya memberi tumpuan kepada kawalan risiko yang lebih baik dan peningkatan keuntungan:
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.
Mengoptimumkan mekanisme mengambil keuntungan untuk kecekapan yang lebih tinggi, seperti mengambil keuntungan, penutupan separa, dan lain-lain, untuk mengurangkan kemungkinan kenaikan harga yang hilang.
Memperkenalkan algoritma pembelajaran mesin untuk membolehkan penyesuaian automatik parameter. Parameter utama menjadi dinamik dan bukannya statik berdasarkan maklum balas masa nyata.
Tambah mekanisme stop loss untuk mengehadkan kerugian maksimum, seperti perintah stop loss dan mengambil pesanan stop keuntungan.
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)