
Strategi kenaikan harga dinamis dengan cara kenaikan harga rata-rata biaya pada saat kerugian, sehingga mencapai tujuan pengembalian kerugian. Ketika harga memicu kondisi kenaikan harga, strategi ini akan meningkat dalam jumlah tertentu dan interval berturut-turut, sambil mengatur jumlah maksimum kenaikan harga, untuk menghindari risiko kenaikan harga tanpa batas.
Logika inti dari strategi ini adalah:
Membeli posisi: Jika posisi Anda adalah 0, maka Anda harus membeli posisi dengan harga yang ditentukan.
Kondisi penambahan posisi: Penambahan posisi akan dipicu jika jumlah penambahan posisi saat ini kurang dari jumlah penambahan posisi maksimum, dan harga lebih rendah dari satu penurunan harga posisi sebelumnya.
Metode penambahan: jumlah penambahan meningkat dengan faktor skala dari jumlah sebelumnya, dan interval penambahan berkurang dengan faktor skala dari interval sebelumnya.
Kondisi stop-loss: Jika harga rata-rata kepemilikan posisi dipicu oleh margin profit yang diantisipasi, semua posisi ditutup.
Dengan demikian, ketika pasar tidak menguntungkan, strategi ini dapat menurunkan biaya kepemilikan posisi dengan menaikkan posisi, dan mendapatkan keuntungan tambahan sambil membalikkan stop loss. Ketika kondisi pasar berbalik ke atas, kondisi stop loss dipicu dan semua posisi dipungut.
Keuntungan terbesar dari strategi ini adalah bahwa, dengan cara menaikkan saham, harga rata-rata biaya turun dan keuntungan lebih besar diperoleh dengan asumsi toleransi terhadap kerugian tertentu, yang terutama terlihat di pasar bull. Secara khusus, ada beberapa keuntungan utama:
Hal ini dapat secara signifikan mengurangi biaya kepemilikan posisi dan meningkatkan kemampuan untuk menghentikan kerugian. Ketika harga terjadi penyesuaian, strategi ini akan meningkatkan posisi, sehingga akan menurunkan biaya total dengan membeli lebih tinggi sebelumnya harga tunggal untuk melunakkan titanium.
Meningkatkan ruang untuk keuntungan. Setelah mengurangi biaya, ruang untuk keuntungan akan diperluas selama harga rebound, sehingga memberi jalan.
Fleksibilitas pengaturan logika penambahan, dapat disesuaikan. Kebijakan memungkinkan pengaturan parameter seperti amplitudo penambahan, jumlah, dan interval, yang dapat disesuaikan oleh pengguna sesuai dengan preferensi mereka sendiri.
Risiko dapat dikontrol, batas setinggi. Pembatasan jumlah maksimum penambahan memungkinkan strategi untuk tidak melakukan penambahan tanpa batas, sehingga risiko dapat dikendalikan.
Meskipun strategi ini memberikan ruang untuk keuntungan yang lebih besar melalui penambahan posisi, ada risiko tertentu yang perlu diperhatikan:
Risiko kerugian. Strategi ini dilakukan dengan mengasumsikan kerugian tertentu. Jika kondisi pasar terus buruk, kerugian dapat berkembang.
Risiko terjadinya lonjakan. Dalam situasi ekstrem, harga mungkin terjatuh di luar kemampuan strategi. Ini memerlukan pengaturan parameter penambahan posisi dan titik berhenti yang masuk akal.
Rebound tidak tepat waktu. Rebound harga tidak selalu memicu stop loss, tidak dapat menghentikan stop loss tepat waktu adalah kunci strategi.
Pengaturan parameter yang tidak tepat dapat menyebabkan kegagalan strategi.
Risiko-risiko ini dapat diatasi dengan:
Pengurangan jumlah peminjaman yang tepat dan pengendalian kerugian tunggal.
Menurunkan jarak antara kenaikan harga dan penurunan biaya.
Tetapkan Stop Loss yang Rasional. Tetapkan Stop Loss yang terlalu lebar, mudah untuk memperluas kerugian.
Mengingat sifat strategi ini menggunakan cara penambahan risiko untuk mendapatkan keuntungan yang lebih besar, orientasi optimasi terutama difokuskan pada pengendalian risiko yang lebih baik dan mendapatkan keuntungan. Secara khusus, ada beberapa orientasi optimasi utama sebagai berikut:
Perbaikan algoritma logika pemasukan untuk membuat pemasukan lebih cerdas dan sesuai dengan situasi. Anda dapat mempertimbangkan untuk memicu pemasukan berdasarkan indikator seperti volatilitas, harga melonjak.
Optimalkan cara penangguhan, untuk mencapai penangguhan yang lebih efisien. Dapat digabungkan dengan cara penangguhan bergerak, penangguhan bergilir, dan lain-lain, untuk mengurangi kemungkinan rebound yang tidak dapat dihentikan.
Memperkenalkan algoritma pembelajaran mesin, untuk mengoptimalkan parameter adaptasi diri. Membuat parameter kunci tidak statis, tetapi sesuai dengan situasi real-time dan umpan balik yang dinamis.
Meningkatkan mekanisme penghentian kerugian, mengendalikan kerugian maksimum. Metode penghentian kerugian dapat mempertimbangkan penghentian bergerak, penghentian tunggal, dan lain-lain, untuk menghindari perluasan kerugian yang disebabkan oleh situasi ekstrem.
Strategi kenaikan posisi dinamis dengan cara kenaikan posisi untuk mencapai penurunan harga rata-rata biaya, dengan asumsi pengendalian risiko yang tepat untuk mendapatkan keuntungan yang lebih besar. Strategi ini, yang didasarkan pada asumsi menanggung kerugian tertentu, sangat populer di kalangan investor yang memiliki toleransi kerugian yang lebih kuat. Arah optimasi di masa depan akan berkisar pada cara kenaikan posisi yang lebih cerdas, mekanisme penangguhan yang lebih efisien, dll.
/*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)