Membeli penurunan dengan mengambil keuntungan dan stop loss

Penulis:ChaoZhang, Tanggal: 2023-11-23 16:50:01
Tag:

img

Gambaran umum

Strategi ini membeli penurunan dan mengambil keuntungan untuk tingkat kemenangan yang tinggi dengan secara dinamis melacak harga terendah, pergi lama setelah penurunan harga, dan mengunci keuntungan dan mengendalikan risiko melalui mengambil keuntungan adaptif dan stop loss.

Prinsip-prinsip

Logika inti dari strategi ini adalah menggunakan indikator ATR untuk menghitung posisi take profit dan stop loss yang dinamis. Secara khusus, sinyal panjang dipicu ketika harga penutupan berada di bawah level terendah dari n hari terakhir (disetel menjadi 7 hari dalam kode); selama posisi panjang, harga take profit dan stop loss akan dihitung secara dinamis berdasarkan indikator ATR (disetel melalui kelipatan ATR) dan ditampilkan pada grafik secara real time.

Strategi ini menggabungkan pendekatan pembelian termudah dengan gagasan stop loss / take profit dinamis untuk menangkap peluang secara tepat waktu sambil mengendalikan risiko.

Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggunakan indikator ATR dinamis untuk mengatur stop loss dan take profit dapat menyesuaikan tingkat P / L berdasarkan volatilitas pasar, menghindari kerugian yang tidak perlu atau kehilangan peluang keuntungan yang lebih besar karena terlalu tetap stop loss / profit taking.

  2. Membeli strategi penurunan cenderung memiliki tingkat kemenangan yang lebih tinggi selama konsolidasi pasar ketika harga turun di bawah level dukungan secara abnormal dan cenderung bangkit kembali.

  3. Perkiraan rasio take profit/stop loss melalui nilai ATR adalah wajar dan dapat diatur secara fleksibel sesuai dengan kondisi pasar dan toleransi risiko pribadi.

  4. Logika kode sederhana dan jelas, mudah dimengerti. Pengaturan parameter juga intuitif. Ini cocok sebagai strategi teladan untuk belajar.

Risiko

Risiko utama dari strategi ini adalah:

  1. Tidak dapat menentukan amplitudo dan kekuatan rebound setelah penurunan. Ada risiko bahwa ekspektasi keuntungan kurang. Hal ini dapat ditangani dengan menyesuaikan parameter ATR untuk menetapkan rentang keuntungan yang berbeda.

  2. Risiko terperangkap dalam kerugian ketika harga melanggar dukungan dan terus turun, menghadapi kerugian yang lebih besar. Hal ini dapat dikurangi dengan mengurangi ukuran posisi dan menurunkan stop loss ATR multiplier untuk kerugian cap.

  3. Stop loss yang terlalu ketat juga dapat tersingkir tanpa perlu.

  4. Backtest risiko overfit. pengujian di bawah kondisi pasar yang berbeda diperlukan, dengan pengaturan slippage / komisi yang tepat.

Peningkatan

Strategi dapat ditingkatkan dalam aspek berikut:

  1. Mengoptimalkan level support dan penentuan sinyal. Indikator yang lebih canggih seperti KDJ atau Bollinger Bands dapat digunakan untuk menilai sinyal pembalikan dengan lebih andal.

  2. Mengoptimalkan aturan ukuran posisi. Sesuaikan ukuran posisi secara dinamis berdasarkan volatilitas pasar dll.

  3. Mengimplementasikan modul stop loss trailing. mengencangkan stop setelah harga maju dengan kisaran tertentu, untuk mengunci keuntungan parsial.

  4. Menambahkan filter pertemuan. Masukkan panjang hanya jika sektor/pasar luas yang sesuai juga mencapai dukungan, memverifikasi keandalan sinyal.

Kesimpulan

Strategi ini menangkap peluang pembalikan rata-rata melalui pembelian penurunan, dengan mengambil keuntungan / menghentikan kerugian untuk pengendalian risiko. Meskipun ruang untuk lebih canggih, itu cukup sederhana bagi pemula untuk memahami dan belajar dari.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © racer8
//@version=4
strategy("Buy-The-Dip", overlay=true)

atn = input(15, "ATR Period")
atr = sma(tr,atn)[1]
bought = strategy.position_size[0] > strategy.position_size[1]

slm = input(2.0,"ATR SL Multiple",minval=0)
StopPrice  = strategy.position_avg_price - slm*atr              // determines stop loss's price 
FixedStopPrice = valuewhen(bought,StopPrice,0)                  // stores original StopPrice  
plot(FixedStopPrice,"Stop Loss",color=color.red,linewidth=2,style=plot.style_cross)

tpm = input(1.0,"ATR TP Multiple",minval=0)
TakePrice  = strategy.position_avg_price + tpm*atr              // determines Take Profit's price 
FixedTakePrice = valuewhen(bought,TakePrice,0)                  // stores original TakePrice  
plot(FixedTakePrice,"Take Profit",color=color.green,linewidth=2,style=plot.style_cross)

nn = input(7,"Channel Length")
ll = lowest(low,nn)

if close<ll[1]
    strategy.entry("Buy",strategy.long)
if strategy.position_size > 0
    strategy.exit(id="XL SL", stop=FixedStopPrice, limit=FixedTakePrice)    // commands stop loss order to exit!

plot(ll,color=color.orange)

Lebih banyak