Tiga atau empat strategi pembalikan terobosan garis K


Tanggal Pembuatan: 2023-12-18 10:39:53 Akhirnya memodifikasi: 2023-12-18 10:39:53
menyalin: 2 Jumlah klik: 810
1
fokus pada
1621
Pengikut

Tiga atau empat strategi pembalikan terobosan garis K

Ringkasan

Tiga atau empat garis K yang menerobos strategi reversal dengan mengidentifikasi tiga atau empat garis K yang memiliki momentum tinggi di garis K, dan kemudian beberapa garis K yang lebih kecil membentuk dukungan atau tekanan. Strategi reversal adalah strategi perdagangan yang berlawanan.

Prinsip Strategi

Logika identifikasi inti dari strategi ini terdiri dari beberapa bagian:

  1. Identifikasi garis K dengan peningkatan besar ((Gap Bar): Melewati 1,5 kali rata-rata ATR, dengan bagian fisik lebih besar dari 0,65. Garis K dianggap memiliki momentum penurunan yang kuat.

  2. Identifikasi K-bar pengumpulan pengumpulan: K-bar yang mengikuti variasi kecil 1-2 di belakang Gap Bar, dengan titik tinggi atau rendah mendekati Gap Bar. K-bar ini mewakili penurunan dan pengumpulan tren, yang membentuk dukungan atau tekanan.

  3. Identifikasi K-line sinyal reversal: Setelah menyusun K-line, jika ada entitas yang menembus K-line dari beberapa garis K sebelumnya, maka dapat dianggap sebagai sinyal reversal, tergantung pada arah entitas, melakukan over atau short, dan membuka posisi di K-line tersebut.

  4. Stop loss dan stop loss: Stop loss ditetapkan di bawah titik rendah atau di atas titik tinggi garis Gap K; Stop loss didasarkan pada stop loss dengan perkalian rasio kerugian yang dikonfigurasi.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan utama:

  1. Menggunakan karakteristik K-line sendiri untuk menilai tren dan titik balik, tidak bergantung pada indikator apa pun, untuk mencapai indikator yang lebih baik.

  2. Gap Bar dan Collecting Bar memiliki kriteria penyaringan yang ketat, sehingga dapat secara efektif mengidentifikasi dan menyusun tren yang sebenarnya.

  3. Pembahasan sinyal pembalikan berdasarkan entitas, mengurangi probabilitas sinyal palsu.

  4. Hanya membutuhkan 3-4 kombinasi K untuk menyelesaikan satu transaksi, dengan periode waktu yang singkat dan frekuensi yang tinggi.

  5. Pengaturan Stop Loss jelas, pengunduran diri dan rasio untung-rugi mudah dikendalikan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Bergantung pada kualitas pengaturan parameter, jika parameter diatur terlalu longgar, akan meningkatkan peluang sinyal palsu dan kehilangan uang.

  2. Mudah terganggu oleh frekuensi tinggi false breaks, tidak dapat memfilter semua sinyal palsu secara efektif.

  3. Ada risiko yang tertutup, jika tidak ada pembalikan yang cukup, perubahan akan terjadi, sehingga kerugian tidak dapat dihentikan.

  4. Stop loss yang lebih besar, individu yang terputus kesempatan dapat menyebabkan kerugian besar.

Untuk mengurangi risiko ini, ada beberapa hal yang dapat dioptimalkan:

  1. Parameter yang dioptimalkan untuk identifikasi lebih akurat antara Gap Bar dan Collecting Bar.

  2. Tambahkan filter, dan buka posisi setelah K line terbalik dikonfirmasi lagi.

  3. Mengoptimalkan algoritma stop loss agar stop loss lebih dekat dengan harga, sehingga kerugian bisa lebih terkendali.

Arah optimasi

Strategi ini juga memiliki beberapa optimasi utama:

  1. Menambahkan filter komposit untuk menghindari gangguan penembusan palsu. Misalnya, menambahkan indikator volume transaksi, hanya mempertimbangkan sinyal perdagangan jika volume transaksi meningkat.

  2. Dalam kombinasi dengan indikator garis rata, sinyal perdagangan hanya dipertimbangkan ketika harga menembus garis rata penting (seperti garis 20 hari, garis 60 hari).

  3. Verifikasi multi-frame timeframe, hanya membuka posisi jika sinyal diberikan pada beberapa periode sekaligus.

  4. Mengoptimalkan kondisi stop loss, menyesuaikan rasio untung rugi secara dinamis sesuai dengan volatilitas pasar dan preferensi risiko.

  5. Strategi ini hanya digunakan dalam situasi pasar yang sedang tren, dikombinasikan dengan sistem penilaian kondisi pasar kosong.

Optimisasi ini dapat meningkatkan stabilitas strategi dan probabilitas keuntungan.

Meringkaskan

Tiga atau empat K-line breakout reversal strategi melakukan perdagangan dengan mengidentifikasi kualitas tinggi tren potensial segmen dan sinyal reversal. Siklus operasi yang pendek, frekuensi tinggi, diharapkan untuk mendapatkan keuntungan ekstra yang kaya. Di samping itu, ada risiko tertentu, perlu terus dioptimalkan untuk mengurangi risiko meningkatkan stabilitas.

Kode Sumber Strategi
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Three (3)-Bar and Four (4)-Bar Plays Strategy", shorttitle="Three (3)-Bar and Four (4)-Bar Plays Strategy", overlay=true, calc_on_every_tick=true, currency=currency.USD, default_qty_value=1.0,initial_capital=30000.00,default_qty_type=strategy.percent_of_equity)

frommonth = input(defval = 1, minval = 01, maxval = 12, title = "From Month")
fromday = input(defval = 1, minval = 01, maxval = 31, title = "From day")
fromyear = input(defval = 2021, minval = 1900, maxval = 2100, title = "From Year")

tomonth = input(defval = 12, minval = 01, maxval = 12, title = "To Month")
today = input(defval = 31, minval = 01, maxval = 31, title = "To day")
toyear = input(defval = 2100, minval = 1900, maxval = 2100, title = "To Year")

garBarSetting1 = input(defval = 1.5, minval = 0.0, maxval = 100.0, title = "Gap Bar Size", type = input.float)
garBarSetting2 = input(defval = 0.65, minval = 0.0, maxval = 100.0, title = "Gap Bar Body Size", type = input.float)
TopSetting = input(defval = 0.10, minval = 0.0, maxval = 100.0, title = "Bull Top Bar Size", type = input.float)

profitMultiplier = input(defval = 2.0, minval = 1.0, maxval = 100.0, title = "Profit Multiplier", type = input.float)

// ========== 3-Bar and 4-Bar Play Setup ==========
barSize = abs(high - low)
bodySize = abs(open - close)

gapBar = (barSize > (atr(1000) * garBarSetting1)) and (bodySize >= (barSize * garBarSetting2))  // find a wide ranging bar that is more than 2.5x the size of the average bar size and body is at least 65% of bar size

bullTop = close > close[1] + barSize[1] * TopSetting ? false : true  // check if top of bar is relatively equal to top of the gap bar (first collecting bull bar)
bullTop2 = close > close[2] + barSize[2] * TopSetting ? false : true  // check if top of bar is relatively equal to top of the gap bar (first collecting bear bar)
bearTop = close < close[1] - barSize[1] * TopSetting ? false : true  // check if top of bar is relatively equal to top of the gap bar (second collecting bull bar)
bearTop2 = close < close[2] - barSize[2] * TopSetting ? false : true  // check if top of bar is relatively equal to top of the gap bar (second collecting bear bar)

collectingBarBull = barSize < barSize[1] / 2 and low > close[1] - barSize[1] / 2 and bullTop  // find a collecting bull bar
collectingBarBear = barSize < barSize[1] / 2 and high < close[1] + barSize[1] / 2 and bearTop  // find a collecting bear bar
collectingBarBull2 = barSize < barSize[2] / 2 and low > close[2] - barSize[2] / 2 and bullTop2  // find a second collecting bull bar
collectingBarBear2 = barSize < barSize[2] / 2 and high < close[2] + barSize[2] / 2 and bearTop2  // find a second collecting bear bar

triggerThreeBarBull = close > close[1] and close > close[2] and high > high[1] and high > high[2]  // find a bull trigger bar in a 3 bar play
triggerThreeBarBear = close < close[1] and close < close[2] and high < high[1] and high < high[2]  // find a bear trigger bar in a 3 bar play
triggerFourBarBull = close > close[1] and close > close[2] and close > close[3] and high > high[1] and high > high[2] and high > high[3]  // find a bull trigger bar in a 4 bar play
triggerFourBarBear = close < close[1] and close < close[2] and close < close[3] and high < high[1] and high < high[2] and high < high[3]  // find a bear trigger bar in a 4 bar play

threeBarSetupBull = gapBar[2] and collectingBarBull[1] and triggerThreeBarBull  // find 3-bar Bull Setup
threeBarSetupBear = gapBar[2] and collectingBarBear[1] and triggerThreeBarBear  // find 3-bar Bear Setup
fourBarSetupBull = gapBar[3] and collectingBarBull[2] and 
   collectingBarBull2[1] and triggerFourBarBull  // find 4-bar Bull Setup
fourBarSetupBear = gapBar[3] and collectingBarBear[2] and 
   collectingBarBear2[1] and triggerFourBarBear  // find 4-bar Bear Setup

labels = input(title="Show Buy/Sell Labels?", type=input.bool, defval=true)

plotshape(threeBarSetupBull and labels, title="3-Bar Bull", text="3-Bar Play", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(threeBarSetupBear and labels, text="3-Bar Bear", title="3-Bar Play", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
plotshape(fourBarSetupBull and labels, title="4-Bar Bull", text="4-Bar Play", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(fourBarSetupBear and labels, text="4-Bar Bear", title="4-Bar Play", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

alertcondition(threeBarSetupBull or threeBarSetupBear or fourBarSetupBull or fourBarSetupBear, title="3-bar or 4-bar Play", message="Potential 3-bar or 4-bar Play")
float sl = na
float tp = na
sl := nz(sl[1], 0.0)
tp := nz(tp[1], 0.0)
plot(sl==0.0?na:sl,title='SL', color = color.red)
plot(tp==0.0?na:tp,title='TP', color = color.green)
if (true)
    if threeBarSetupBull and strategy.position_size <=0
        strategy.entry("3 Bar Long", strategy.long, when=threeBarSetupBull)
        sl :=low[1]
    if threeBarSetupBear and strategy.position_size >=0
        strategy.entry("3 Bar Short", strategy.short, when=threeBarSetupBull)
        sl :=high[1]
    if fourBarSetupBull and strategy.position_size <=0
        strategy.entry("4 Bar Long", strategy.long, when=fourBarSetupBull)
        sl :=min(low[1], low[2])
    if fourBarSetupBear and strategy.position_size >=0
        strategy.entry("4 Bar Short", strategy.short, when=fourBarSetupBear)
        sl :=max(high[1], high[2])

if sl !=0.0
    if strategy.position_size > 0
        tp := strategy.position_avg_price + ((strategy.position_avg_price - sl) * profitMultiplier)
        strategy.exit(id="Exit", limit=tp, stop=sl)

    if strategy.position_size < 0
        tp := strategy.position_avg_price - ((sl - strategy.position_avg_price) * profitMultiplier)
        strategy.exit(id="Exit", limit=tp, stop=sl)