Trend Breakout-Strategi Bayangan Panjang


Tarikh penciptaan: 2023-11-15 16:43:17 Akhirnya diubah suai: 2023-11-15 16:43:17
Salin: 2 Bilangan klik: 665
1
fokus pada
1617
Pengikut

Trend Breakout-Strategi Bayangan Panjang

Strategi ini menggunakan pengiraan nisbah panjang bayang-bayang K untuk menentukan arah trend semasa, mengenal pasti trend dengan ATR gelombang sebenar rata-rata, membuka posisi terbalik pada titik penembusan, menetapkan stop loss dan menangkap trend jangka pendek.

Prinsip Strategi

Strategi ini terutamanya dengan mengira nisbah panjang bayang-bayang K garis, untuk menentukan arah trend semasa, apabila panjangnya terlalu panjang, ia dianggap sebagai tren menurun, apabila panjangnya terlalu panjang, ia dianggap sebagai tren naik.

Logik strategi ini ialah:

  1. Hitung panjang bayangan bawah garis K: close-low (harga tutup - harga terendah)
  2. Hitung panjang bayang-bayang di atas garis K: high-open ((harga tertinggi - harga bukaan)
  3. Mengambil nilai maksimum bayangan bawah dan atas sebagai panjang bayangan
  4. Hitung panjang entiti K: tinggi-rendah ((harga tertinggi-harga terendah)
  5. Mengira nisbah panjang bayang-bayang kepada panjang badan
  6. Apabila nisbah lebih besar daripada 0.5 dan bayangan bawah lebih besar daripada bayangan atas, dinilai sebagai trend ke bawah, dan setkan banyak penyertaan
  7. Apabila nisbah lebih besar daripada 0.5 dan bayang-bayang atas lebih besar daripada bayang-bayang bawah, dinilai sebagai trend ke atas, dan setkan tiket masuk kosong
  8. Apabila masuk, anda perlu menilai sama ada panjang entiti K lebih besar daripada 0.75 kali ATR purata gelombang sebenar, untuk mengelakkan penembusan yang tidak berkesan.
  9. Tetapkan stop loss selepas masuk, stop loss adalah harga masuk kali ganda, dan stop loss adalah harga masuk kali ganda, untuk mencapai nisbah keuntungan dan kerugian 2: 1

Ini adalah logik perdagangan asas strategi, dengan mengenal pasti titik pecah trend untuk membuka kedudukan terbalik, menetapkan stop loss dan kemudian mengoptimumkan keuntungan.

Kelebihan Strategik

  1. Menggunakan nisbah sunshine untuk menentukan arah trend, perbezaan yang tinggi
  2. Menggabungkan penunjuk ATR untuk membuat keputusan penembusan yang berkesan, mengelakkan isyarat palsu
  3. Tetapkan Stop Loss Stop untuk mengawal risiko
  4. Mencapai nisbah keuntungan dan kerugian 2:1 yang memenuhi piawaian transaksi kuantitatif
  5. Perdagangan garis pendek untuk saham yang bergelombang tinggi
  6. Strategi logik mudah difahami dan mudah dilaksanakan

Risiko Strategik

  1. Apabila harga saham bergelombang, penangguhan boleh ditembusi, menyebabkan kerugian meningkat
  2. Kesan sangat berkaitan dengan parameter yang perlu dioptimumkan
  3. Jika trend berubah, ia boleh menyebabkan kerugian.
  4. Memperluas jangkauan berhenti dan hentikan secara serentak akan meningkatkan kemungkinan kerugian
  5. Kegagalan untuk menerobos akan menyebabkan kerugian yang besar.

Anda boleh mengawal risiko dengan menghentikan kerugian yang munasabah, mengoptimumkan parameter, dan menghentikan kerugian tepat pada masanya.

Pengoptimuman Strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter nisbah sun dan bayangan untuk mencari nilai terbaik
  2. Mengoptimumkan parameter ATR untuk menentukan panjang K terbaik
  3. Mengoptimumkan faktor stop loss untuk mencapai nisbah risiko dan keuntungan yang optimum
  4. Meningkatkan pengurusan kedudukan, contohnya dengan menambah kedudukan secara beransur-ansur
  5. Meningkatkan Tracking Stop Loss, Mencapai Penjagaan Keuntungan
  6. Penapisan isyarat masuk ke dalam permainan yang digabungkan dengan petunjuk lain
  7. Mengoptimumkan tempoh tinjauan semula untuk menguji tahap pasaran yang berbeza

Untuk memaksimumkan keberkesanan strategi, percubaan dan pengoptimuman pelbagai arah diperlukan.

Secara keseluruhan, strategi ini adalah strategi penembusan garis pendek yang stabil dalam kesannya, memanfaatkan turun naik harga jangka pendek dengan cara mengenal pasti trend dan mengawal risiko. Apabila dioptimumkan, ia boleh menjadi bahagian penting dalam perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 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/
// © ondrej17

//@version=4
strategy("longWickstrategy", overlay=true )
 
// Inputs
st_yr_inp = input(defval=2020, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
canTrade = time >= start and time <= end
// Indicators Setup


 
// Strategy Calcuations
lowerWick = (open > close) ? close-low : open - low
upperWick = (open > close) ? high-open : high-close
wickLength = max(lowerWick,upperWick)
candleLength = high-low
wickToCandleRatio = wickLength / candleLength
entryFilterCandleLength = candleLength > 0.75*atr(48)


// Entries and Exits
 
longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0
shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0

strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition)
strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition)

longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na
longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na
shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na
shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na

strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP)
strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP)  
 

plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2)

plotLongCondition = longCondition ? high+abs(open-close) : na
plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green)
plotShortCondition = shortCondition ? high+abs(open-close) : na
plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)