Membeli penurunan dengan mengambil keuntungan dan berhenti kerugian

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

img

Ringkasan

Strategi ini membeli kejatuhan dan mengambil keuntungan untuk kadar kemenangan yang tinggi dengan menjejaki harga yang rendah secara dinamik, pergi lama selepas kejatuhan harga, dan mengunci keuntungan dan mengawal risiko melalui mengambil keuntungan adaptif dan menghentikan kerugian.

Prinsip-prinsip

Logik teras strategi ini adalah untuk menggunakan penunjuk ATR untuk mengira kedudukan keuntungan dan stop loss dinamik. Khususnya, isyarat panjang diaktifkan apabila harga penutupan berada di bawah paras terendah dalam n hari yang lalu (ditentukan kepada 7 hari dalam kod); semasa kedudukan panjang, harga keuntungan dan harga stop loss akan dikira secara dinamik berdasarkan penunjuk ATR (ditentukan melalui kelipatan ATR) dan dipaparkan pada carta dalam masa nyata.

Strategi ini menggabungkan pendekatan pembelian yang paling mudah dengan idea stop loss / mengambil keuntungan dinamik untuk menangkap peluang dengan tepat pada masanya sambil mengawal risiko.

Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggunakan penunjuk ATR dinamik untuk menetapkan stop loss dan mengambil keuntungan boleh menyesuaikan tahap P / L berdasarkan turun naik pasaran, mengelakkan kerugian yang tidak perlu atau kehilangan peluang keuntungan yang lebih besar kerana terlalu tetap stop loss / mengambil keuntungan.

  2. Membeli strategi penurunan cenderung mempunyai kadar kemenangan yang lebih tinggi semasa penyatuan pasaran apabila harga turun di bawah tahap sokongan secara tidak normal dan mungkin akan bangkit semula.

  3. Menganggarkan nisbah mengambil keuntungan / berhenti kerugian melalui nilai ATR adalah munasabah dan boleh ditetapkan secara fleksibel mengikut keadaan pasaran dan toleransi risiko peribadi.

  4. Logik kod adalah mudah dan jelas, mudah difahami. Tetapan parameter juga intuitif. Ia sesuai sebagai strategi teladan untuk pembelajaran.

Risiko

Risiko utama strategi ini ialah:

  1. Tidak dapat menentukan amplitudo dan kekuatan rebound selepas penurunan. Terdapat risiko bahawa jangkaan keuntungan kurang. Ini boleh ditangani dengan menyesuaikan parameter ATR untuk menetapkan julat keuntungan yang berbeza.

  2. Risiko terperangkap dalam kerugian apabila harga memecahkan sokongan dan terus jatuh, menghadapi kerugian yang lebih besar.

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

  4. Backtest risiko overfit. Ujian di bawah keadaan pasaran yang berbeza adalah perlu, dengan tetapan slippage / komisen yang betul.

Peningkatan

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Mengoptimumkan tahap sokongan dan penentuan isyarat. Penunjuk yang lebih canggih seperti KDJ atau Bollinger Bands boleh digunakan untuk menilai isyarat pembalikan dengan lebih dipercayai.

  2. Mengoptimumkan peraturan saiz kedudukan. Sesuaikan saiz kedudukan secara dinamik berdasarkan turun naik pasaran dll.

  3. Melaksanakan modul Stop Loss Trailing, mengetatkan stop selepas harga maju dengan julat tertentu, untuk mengunci keuntungan separa.

  4. Menambah penapis perpaduan. Masuk panjang hanya jika sektor/pasaran yang sama juga mencapai sokongan, mengesahkan kebolehpercayaan isyarat.

Kesimpulan

Strategi ini menangkap peluang pembalikan purata melalui pembelian penurunan, dengan mengambil keuntungan / berhenti kerugian untuk kawalan risiko. Walaupun ruang untuk lebih canggih, ia cukup mudah untuk dimengerti dan dipelajari oleh pemula. Penambahbaikan lanjut dapat meningkatkan ketahanan dan kesesuaian.


/*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 lanjut