Strategi Piramida yang Dinamis

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

img

Gambaran umum

Strategi piramida dinamis bertujuan untuk menurunkan biaya kepemilikan rata-rata melalui piramida posisi tambahan ketika harga turun. Ini dapat membantu mengurangi kerugian dan mendapatkan keuntungan tambahan ketika harga bangkit kembali. Strategi ini akan membuka posisi tambahan dengan jumlah dan interval tertentu ketika kondisi piramida dipicu. Sementara itu, jumlah maksimum piramida diatur untuk membatasi risiko.

Logika Strategi

Logika inti dari strategi ini meliputi:

  1. Posisi terbuka: Buka posisi panjang dengan harga yang ditentukan jika posisi saat ini adalah 0.

  2. Kondisi piramida: Trigger piramida jika waktu piramida saat ini kurang dari nilai maksimum, dan harga turun di bawah harga masuk terakhir dengan persentase yang telah ditetapkan sebelumnya.

  3. Cara piramida: Meningkatkan kuantitas piramida pada faktor skala sebelumnya, dan mengurangi interval pada faktor skala.

  4. Kondisi mengambil keuntungan: Tutup semua posisi jika target keuntungan berdasarkan harga saham rata-rata dipicu.

Dengan piramida dengan penurunan harga, strategi ini menurunkan biaya rata-rata secara dinamis. Ini menghentikan kerugian secara efisien dan meninggalkan lebih banyak ruang untuk keuntungan ketika tren berbalik. Ketika kondisi mengambil keuntungan dipicu, semua posisi keluar dengan keuntungan.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah untuk mendapatkan potensi keuntungan yang lebih besar dengan kerugian yang dapat diterima dengan menurunkan biaya kepemilikan rata-rata menggunakan piramida.

  1. Mengurangi biaya kepemilikan secara signifikan sehingga meningkatkan kemampuan untuk menghentikan kerugian. Dengan menambahkan pesanan beli tambahan dengan harga yang lebih rendah ketika penarikan terjadi, strategi mengurangi entri yang lebih tinggi sebelumnya dan menurunkan biaya keseluruhan.

  2. Meningkatkan rentang keuntungan setelah menurunkan biaya. jika harga bangkit kembali, potensi keuntungan diperluas dan membuka jalan untuk mengambil keuntungan.

  3. Fleksibel penyesuaian untuk logika piramida dengan menetapkan parameter terkait pada peningkatan, kuantitas dan interval dll

  4. Mengontrol risiko dengan membatasi waktu piramida maksimal.

Analisis Risiko

Meskipun strategi ini memungkinkan potensi keuntungan yang lebih besar dengan piramida, beberapa risiko perlu diperhatikan:

  1. Risiko kerugian - Premisnya adalah mengambil kerugian tertentu dari piramida.

  2. Risiko terjun tebing - Dalam kasus ekstrim seperti terjun tebing, kerugian dapat melebihi kisaran yang dapat diterima.

  3. Terlambat atau tidak mengambil keuntungan - Rebound harga mungkin tidak selalu memicu kondisi mengambil keuntungan, yang merupakan kelemahan dari strategi.

  4. Risiko penyesuaian parameter - Pengaturan yang tidak tepat pada parameter seperti koefisien piramida dan persentase keuntungan dapat menyebabkan kegagalan.

Langkah-langkah berikut dapat membantu mengurangi risiko:

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

  2. Kurangi interval piramida untuk mencapai pengurangan biaya yang lebih cepat.

  3. Atur titik stop loss dengan tepat dan jangan terlalu longgar.

Arahan Optimasi

Mengingat sifat memperoleh potensi keuntungan yang lebih tinggi dengan piramida, arah optimalisasi terutama berfokus pada pengendalian risiko yang lebih baik dan peningkatan profitabilitas:

  1. Memperbaiki logika piramida untuk membuat entri lebih cerdas dan beradaptasi dengan kondisi pasar.

  2. Mengoptimalkan mekanisme mengambil keuntungan untuk efisiensi yang lebih tinggi, seperti mengambil keuntungan yang tertinggal, penutupan parsial, dll., Untuk mengurangi kemungkinan harga yang hilang.

  3. Memperkenalkan algoritma pembelajaran mesin untuk memungkinkan pengaturan otomatis parameter. parameter kunci menjadi dinamis daripada statis berdasarkan umpan balik real-time.

  4. Menambahkan mekanisme stop loss untuk membatasi kerugian maksimum, seperti trailing stop loss dan take profit stop order.

Kesimpulan

Strategi piramida dinamis menurunkan biaya kepemilikan rata-rata dengan entri tambahan, memungkinkan potensi keuntungan yang lebih tinggi mengingat toleransi kerugian yang dapat 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 banyak