Strategi Pelacakan Harga Rata-rata Dinamis

Penulis:ChaoZhangTanggal: 2024-01-29 15:28:53
Tag:

img

Gambaran umum

Ide utama dari strategi ini adalah bahwa ketika harga saham turun ke persentase tertentu, posisi dapat ditingkatkan secara bertahap untuk menurunkan biaya rata-rata posisi kepemilikan.

Prinsip Strategi

Ketika harga saham pertama kali melintasi di atas rata-rata bergerak sederhana 20 hari, pergi panjang untuk membuka posisi. Jika saham kemudian turun dengan persentase kerugian target yang ditetapkan, seperti 10%, tambahkan ke posisi pada persentase yang ditentukan, seperti 50% dari posisi saat ini. Ini menurunkan biaya rata-rata posisi kepemilikan. Ketika harga saham mencapai titik mengambil keuntungan yang ditetapkan, seperti 10% di atas biaya kepemilikan rata-rata, tutup semua posisi untuk mengambil keuntungan.

Secara khusus, fungsi strategi menetapkan parameter seperti memungkinkan hingga 4 pembelian tambahan, dengan ukuran posisi ditetapkan sebagai persentase dari ekuitas, dan ukuran posisi awal pada 10% dari ekuitas. Ini mendapatkan garis rata-rata bergerak sederhana 20 hari. Ketika harga penutupan melintasi di atas rata-rata itu dan tidak ada posisi saat ini, ia membuka posisi panjang. Kemudian menghitung persentase keuntungan / kerugian yang mengambang dari posisi. Jika mencapai persentase kerugian target, ia terus piramida pada persentase pembelian tambahan target sampai saham rebound untuk mencapai target keuntungan.

Analisis Keuntungan

Keuntungan terbesar dari jenis strategi ini adalah bahwa ketika kondisi pasar tidak menguntungkan, biaya rata-rata posisi kepemilikan dapat dikurangi melalui pembelian tambahan piramida. Hal ini memungkinkan keuntungan yang lebih besar untuk diperoleh ketika kondisi pasar membaik, mencapai kehilangan kurang, mendapatkan lebih banyak efek. Dibandingkan dengan stop loss sederhana, strategi ini dapat lebih baik menangkap pergerakan pasar daripada dipaksa untuk menghentikan kerugian ketika harga terus turun.

Pada saat yang sama, strategi ini memungkinkan beberapa pembelian tambahan, memanfaatkan maksimal perbedaan waktu dalam pembalikan pasar untuk menyesuaikan posisi secara bertahap.

Analisis Risiko

Tentu saja, jika harga terus turun, strategi ini juga menghadapi risiko kerugian besar. terutama di pasar beruang, tingkat penurunan harga mungkin jauh melampaui imajinasi kita. oleh karena itu, proporsi dan jumlah pembelian tambahan harus diatur secara wajar untuk mengendalikan risiko dalam kisaran yang dapat diterima.

Pada saat yang sama, kita harus menyadari bahwa jika semua investor mengadopsi strategi seperti itu, ketika banyak investor mencapai target persentase kerugian mereka, mungkin akan ada skenario penambahan posisi kolektif. Ini akan mendorong harga naik dan membentuk rebound jangka pendek yang tidak rasional. Jika kita gagal menilai situasi dengan benar, kita bisa menilai tren pasar dengan salah dan terus meningkatkan posisi kita. Hasilnya akan menjadi kerugian yang lebih besar ketika harga jatuh lagi.

Arahan Optimasi

Ada beberapa cara strategi ini dapat dioptimalkan:

  1. Sesuaikan secara dinamis persentase pembelian tambahan, yang dapat disesuaikan secara real time berdasarkan kondisi pasar.

  2. Sertakan indikator kuantitatif. Misalnya, memantau lonjakan volume untuk mengkonfirmasi sinyal pembalikan dan menghindari sinyal palsu.

  3. Setelah pembelian tambahan, gunakan sistem stop loss progresif untuk memastikan kerugian tetap dalam kisaran tertentu.

Ringkasan

Strategi pelacakan harga rata-rata dinamis memanfaatkan efek harga rata-rata dengan menyesuaikan posisi melalui pembelian tambahan. Dalam premis memiliki dukungan modal yang cukup, ia dapat secara efektif menangkap pengembalian di atas rata-rata ketika harga terbalik. Kuncinya adalah menilai waktu dan proporsi dengan benar untuk menjaga risiko dalam kisaran yang dapat diterima. Jika diterapkan dengan tepat, ini dapat menjadi metode yang sangat efektif dalam perdagangan kuantitatif.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// ########################################################################## // 
//
// This scipt is intended to demonstrate how pyramiding can be used to average
// down a position.
//
// We will buy when a stock closes above its 20 day MA and Average down if
// the trade does not go in our favor. We will hold until a profit is made. 
// (which could mean we hold forever)
//
// ########################################################################## //

strategy("Average Down", overlay=true )

// 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 = 2010, 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 = true
// Strategy Inputs
target_perc = input(-10, title='Target Loss to Average Down (%)', maxval=0)/100
take_profit = input(10, title='Target Take Profit', minval=0)/100
target_qty  = input(50, title='% Of Current Holdings to Buy', minval=0)/100 
sma_period  = input(20, title='SMA Period') 

// Get our SMA, this will be used for our first entry 
ma = sma(close,sma_period)

// 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
first_long = crossover(close, ma) and strategy.position_size == 0 and window
if (first_long)
    strategy.entry("Long", strategy.long)

// Average Down!
if (pnl <= target_perc)
    qty = floor(strategy.position_size * target_qty)
    strategy.entry("Long", strategy.long, qty=qty)

// Take Profit!
strategy.exit("Take Profit", "Long", limit=take_profit_level)

// Plotting
plot(ma, color=blue, linewidth=2, title='SMA')
plot(strategy.position_avg_price, style=linebr, color=red, title='Average Price')

Lebih banyak