Strategi Penembusan Tren-Bayangan Panjang


Tanggal Pembuatan: 2023-11-15 16:43:17 Akhirnya memodifikasi: 2023-11-15 16:43:17
menyalin: 2 Jumlah klik: 665
1
fokus pada
1617
Pengikut

Strategi Penembusan Tren-Bayangan Panjang

Strategi ini mengukur arah tren saat ini dengan menghitung rasio panjang bayangan matahari pada garis K. Untuk mengidentifikasi tren, gunakan ATR dengan amplitudo riil rata-rata, buka posisi terbalik pada titik terobosan, atur stop loss, dan tangkap tren jangka pendek.

Prinsip Strategi

Strategi ini didasarkan pada perhitungan rasio panjang bayangan matahari pada garis K untuk menentukan arah tren saat ini. Jika garis matahari terlalu panjang, maka akan terjadi tren turun, dan jika garis matahari terlalu panjang maka akan terjadi tren naik.

Logika spesifik dari strategi ini adalah:

  1. Hitung panjang bayangan bawah dari garis K: close-low
  2. Hitung panjang bayangan atas garis K: high-open ((harga tertinggi - harga buka)
  3. Mengambil bayangan bawah dan nilai maksimum dari bayangan atas sebagai panjang bayangan
  4. Hitung panjang entitas K: high-low ((harga tertinggi-harga terendah)
  5. Perhitungan rasio panjang bayangan terhadap panjang benda
  6. Ketika rasio lebih besar dari 0,5 dan bayangan bawah lebih besar dari bayangan atas, dinilai sebagai tren ke bawah, mengatur beberapa single entry
  7. Ketika rasio lebih besar dari 0,5 dan bayangan atas lebih besar dari bayangan bawah, dinilai sebagai tren ke atas, dan atur entri kosong
  8. Pada saat masuk, pertimbangkan apakah panjang entitas K lebih besar dari 0,75 kali rata-rata gelombang nyata ATR, untuk menghindari penembusan yang tidak efektif.
  9. Setelah masuk, atur stop loss, stop loss adalah harga masuk kalikan dengan faktor, stop loss adalah harga masuk kalikan dengan faktor dua kali lipat, untuk mencapai rasio untung rugi 2: 1

Ini adalah logika perdagangan dasar dari strategi ini, dengan mengidentifikasi titik terobosan tren untuk membuka posisi terbalik, dan mengatur stop loss stop loss untuk mengoptimalkan keuntungan.

Keunggulan Strategis

  1. Menggunakan rasio matahari dan bayangan untuk menentukan arah tren, dengan perbedaan yang tinggi
  2. Pertimbangan penembusan yang efektif dengan indikator ATR untuk menghindari sinyal palsu
  3. Pengaturan Stop Loss Stopper untuk pengendalian risiko
  4. Mencapai rasio keuntungan dan kerugian 2:1 sesuai dengan standar transaksi kuantitatif
  5. Trading short line yang berlaku untuk saham yang sangat fluktuatif
  6. Strategi logis sederhana dan jelas, mudah dipahami dan diterapkan

Risiko Strategis

  1. Stop loss dapat ditembus ketika harga saham berfluktuasi secara dramatis, menyebabkan kerugian yang meluas.
  2. Efek sangat terkait dengan pengaturan parameter yang perlu dioptimalkan
  3. Jika terjadi pergeseran, kemungkinan terjadi kerugian.
  4. Hal ini juga dapat terjadi dengan memperluas jangkauan stop loss dan stop loss.
  5. Jika gagal, Anda akan kehilangan banyak uang.

Risiko dapat dikendalikan dengan stop loss yang wajar, parameter optimasi, dan stop loss yang tepat waktu.

Optimasi Strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimalkan parameter rasio sun/shadow untuk mencari nilai optimal
  2. Optimalkan parameter ATR untuk menentukan panjang K terbaik
  3. Mengoptimalkan Stop Loss Coefficient untuk mencapai RRK optimal
  4. Meningkatkan manajemen posisi, misalnya dengan menambah posisi secara bertahap
  5. Meningkatkan Tracking Stop Loss dan Menjaga Profit
  6. Menyaring sinyal masuk dalam kombinasi dengan indikator lainnya
  7. Mengoptimalkan periode pengembalian untuk menguji efek dari fase pasar yang berbeda

Strategi ini dapat dimaksimalkan melalui pengujian dan optimalisasi multi-dimensi.

Secara keseluruhan, strategi ini adalah strategi penembusan garis pendek yang stabil dan efektif untuk memanfaatkan fluktuasi harga jangka pendek dengan cara mengidentifikasi tren dan mengendalikan risiko. Setelah dioptimalkan, strategi ini dapat menjadi bagian penting dari perdagangan kuantitatif.

Kode 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)