Strategi penjejakan harga purata dinamik


Tarikh penciptaan: 2024-01-29 15:28:53 Akhirnya diubah suai: 2024-01-29 15:28:53
Salin: 0 Bilangan klik: 567
1
fokus pada
1617
Pengikut

Strategi penjejakan harga purata dinamik

Gambaran keseluruhan

Gagasan utama strategi ini adalah apabila harga saham jatuh ke tahap tertentu, anda boleh menaikkan kedudukan anda secara beransur-ansur, dengan itu mencapai tujuan untuk menurunkan kos memegang rata-rata. Apabila harga bangkit, anda boleh memperoleh keuntungan yang lebih tinggi kerana kos memegang rata-rata lebih rendah.

Prinsip Strategi

Apabila harga saham pertama kali menembusi purata bergerak mudah 20 hari, buatlah lebih banyak kedudukan terbuka. Jika harga saham jatuh selepas itu mencapai peratusan kerugian sasaran yang ditetapkan, misalnya 10%, tambah kedudukan dalam peratusan yang ditetapkan, misalnya 50% daripada kedudukan semasa. Ini dapat mengurangkan kos memegang kedudukan purata. Apabila harga saham mencapai titik tolak yang ditetapkan, misalnya 10% lebih tinggi daripada kos memegang kedudukan purata, semua posisi ditutup.

Khususnya, fungsi strategi menetapkan parameter seperti membenarkan maksimum 4 kali kenaikan, perhitungan kedudukan adalah peratusan modal yang digunakan, kedudukan awal pembukaan adalah 10%. Dapatkan purata bergerak mudah 20 hari, membuka lebih banyak kedudukan apabila melewati rata-rata itu dan tidak mempunyai kedudukan pada harga penutupan. Kemudian mengira peratusan keuntungan dan kerugian terapung untuk memegang kedudukan, dan jika mencapai peratusan kerugian sasaran, teruskan kenaikan saham mengikut peratusan kenaikan sasaran, sehingga saham itu bangkit dan berhenti.

Analisis kelebihan

Kelebihan utama strategi ini adalah bahawa ia dapat mengurangkan kos pemegang kedudukan purata dengan menaikkan kedudukan semasa keadaan tidak baik, dan memperoleh keuntungan yang lebih besar apabila keadaan baik, dan mencapai kesan yang lebih rendah daripada kerugian. Berbanding dengan hentian bergerak yang mudah, strategi ini dapat menangkap keadaan dengan lebih baik daripada terpaksa berhenti apabila harga saham terus turun.

Pada masa yang sama, strategi ini membenarkan banyak kenaikan kedudukan, memanfaatkan perbezaan masa untuk membalikkan kedudukan. Ini lebih rendah daripada kos kenaikan besar sekali dan lebih sesuai dengan kekuatan modal kebanyakan pelabur.

Analisis risiko

Sudah tentu, strategi seperti itu juga akan menghadapi risiko kerugian yang besar jika pasaran terus menurun. Terutama dalam pasaran beruang, penurunan harga saham mungkin jauh lebih besar daripada yang kita bayangkan. Oleh itu, perlu menetapkan kadar dan frekuensi kenaikan saham dengan munasabah, dan mengawal risiko dalam julat yang boleh diterima.

Pada masa yang sama, kita juga perlu ambil perhatian bahawa jika semua pelabur menggunakan strategi ini, mungkin akan ada kenaikan harga kolektif apabila banyak pelabur kehilangan peratus sasaran. Ini akan mendorong harga saham ke atas, membentuk rebound jangka pendek yang tidak rasional.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Secara dinamik, anda boleh menyesuaikan kadar kenaikan harga anda mengikut pergerakan pasaran utama dan sebagainya.

  2. Gabungan penunjuk kuantiti. Sebagai contoh, jumlah penghantaran dapat dipantau dengan jelas untuk mengesahkan isyarat pembalikan dan mengelakkan salah sangka.

  3. Menggunakan tracking stop loss. Mengambil stop loss secara beransur-ansur selepas menambah simpanan, memastikan kerugian terkawal dalam jangkaan tertentu.

ringkaskan

Strategi pelacakan harga rata-rata dinamik dapat memanfaatkan kesan harga rata-rata dengan baik dengan menaikkan kedudukan dan menyesuaikan kedudukan, dengan syarat memastikan sokongan kewangan yang mencukupi, untuk mendapatkan keuntungan tambahan apabila harga saham berbalik. Kuncinya adalah untuk memahami masa dan perkadaran, mengawal pelbagai risiko dalam lingkungan yang boleh diterima.

Kod sumber strategi
/*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')