Strategi Peluru Perak Berasaskan Penembusan Kotak

Penulis:ChaoZhang, Tarikh: 2024-01-15 12:06:32
Tag:

img

Ringkasan

Strategi ini terutamanya mengesan terobosan kotak yang terbentuk oleh titik tinggi dan rendah K-line untuk menilai arah dan kekuatan pasaran. Apabila terdapat terobosan kotak ke atas, strategi akan menetapkan kedudukan panjang di sekitar titik terobosan. Apabila terdapat terobosan kotak ke bawah, strategi akan menetapkan kedudukan pendek di sekitar titik terobosan. Setelah isyarat perdagangan dihasilkan, strategi akan meletakkan pesanan untuk membuka kedudukan dan menetapkan stop loss dan mengambil keuntungan untuk mengawal risiko.

Logika Strategi

  1. Strategi menentukan tempoh perdagangan dan hanya mencari peluang perdagangan dalam tempoh itu.

  2. Selepas setiap garis K terbentuk, strategi menilai sama ada terdapat kejayaan yang ketara antara harga tertinggi dan terendah dari dua garis K sebelumnya.

    2.1 Jika harga terendah pada K-line ke-2 lebih tinggi daripada harga tertinggi pada K-line ke-1, terdapat penembusan kotak menaik.

    2.2 Jika harga tertinggi K-line ke-2 adalah lebih rendah daripada harga terendah K-line ke-1, terdapat pecah kotak ke bawah.

  3. Selepas mengesahkan isyarat pecah kotak, strategi menetapkan titik masuk panjang atau pendek di sekitar harga tertinggi atau terendah garis K semasa.

  4. Sebaik sahaja kedudukan dibuka, strategi menetapkan mengambil keuntungan berdasarkan dua kali julat pecah untuk menangkap percepatan trend.

  5. Strategi ini juga menetapkan stop loss pada harga terendah atau tertinggi dari garis K ke-2 untuk mengurangkan risiko kerugian.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Logiknya mudah dan mudah dilaksanakan.

  2. Menggunakan penembusan kotak K-line untuk menilai arah dan kekuatan pasaran mempunyai ketepatan yang tinggi.

  3. Tetapan mengambil keuntungan menangkap peluang daripada percepatan trend.

  4. Terdapat logik stop loss yang jelas untuk mengawal kerugian tunggal.

  5. Idea strategi adalah fleksibel dan boleh disesuaikan mengikut gaya peribadi.

Analisis Risiko

Walau bagaimanapun, terdapat beberapa risiko dalam strategi:

  1. Isyarat pecah mungkin palsu, kerugian tidak dapat dielakkan sepenuhnya.

  2. Stop loss berhampiran titik kemasukan boleh dengan mudah dicetuskan oleh pasaran agresif.

  3. Ia tidak dapat menilai struktur trend dan berhenti sering boleh dicetuskan di pasaran yang terikat julat.

  4. Ia tidak mengambil kira kesan produk dan tempoh masa yang berbeza.

Arahan pengoptimuman

Untuk mengoptimumkan lagi strategi, kita boleh memperbaiki dari aspek berikut:

  1. Tetapkan parameter stop loss adaptif dan ambil keuntungan untuk produk dan tempoh masa yang berbeza.

  2. Tambah penunjuk teknikal untuk penilaian trend untuk mengelakkan terperangkap dalam pasaran yang terikat julat.

  3. Tetapkan peluang tambahan seterusnya untuk mengesan trend berjalan.

  4. Gabungkan penunjuk kelantangan untuk menilai keaslian isyarat pecah dan penapis.

  5. Tambah algoritma pembelajaran mesin untuk membantu menentukan arah trend.

Ringkasan

Strategi ini direka berdasarkan prinsip pecah mudah untuk menangkap berjalan dipercepatkan selepas pecah untuk pulangan yang berlebihan. Ia menggunakan berhenti dan keuntungan untuk mengawal risiko.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Dvitash

//@version=5
strategy("Casper SMC Silver Bullet", shorttitle = "Casper SB", overlay=true, calc_on_order_fills = true)

startTime = input(defval = "1000", title = "Start Time")
endTime = input(defval = "1600", title = "End Time")
contractAmt = input.int(defval = 2, title = "Contract Amount")
fvgCol = input.color(defval = color.rgb(63, 61, 179, 41), title = "FVG Color")
borderCol = input.color(defval = color.rgb(35, 33, 172, 41), title = "FVG Border Color")
fvgExtendLength = input.int(defval = 0, minval = 0, title = "FVG Extend Length")

allowedTime = not na(time(timeframe.period, startTime + "-" + endTime +":23456", "America/New_York"))
newDay = bool(ta.change(time('D')))
h = hour(time('1'), "America/New_York")

var bool fvgDrawn = na
var float entryPrice = na 
var float stopPrice = na 
var float tpPrice = na 

if newDay
    fvgDrawn := false
    // a_allBoxes = box.all
    // if array.size(a_allBoxes) > 0
    //     for i = 0 to array.size(a_allBoxes) - 1
    //         box.delete(array.get(a_allBoxes, i))

if allowedTime and barstate.isconfirmed and h <= 16
    //Long FVG
    if high[2] < low and not fvgDrawn
        // box.new(bar_index[2], low, bar_index + fvgExtendLength, high[2], bgcolor = fvgCol, border_color = borderCol)
        stopPrice := low[2]
        entryPrice := low
        tpPrice := entryPrice + (math.abs(low[2] - entryPrice) * 2)
        // log.info("SL: " + str.tostring(stopPrice) + " Entry: " + str.tostring(entryPrice) + " TP: " + str.tostring(tpPrice))
        strategy.entry("long", strategy.long, contractAmt, limit = entryPrice, comment = "Long Entry")
        fvgDrawn := true

    if low[2] > high and not fvgDrawn
        // box.new(bar_index[2], high, bar_index + fvgExtendLength, low[2], bgcolor = fvgCol, border_color = borderCol)
        stopPrice := high[2]
        entryPrice := high
        tpPrice := entryPrice - (math.abs(high[2] - entryPrice) * 2)
        // log.info("SL: " + str.tostring(stopPrice) + " Entry: " + str.tostring(entryPrice) + " TP: " + str.tostring(tpPrice))
        strategy.entry("short", strategy.short, contractAmt, limit = entryPrice, comment = "Short Entry")
        fvgDrawn := true
if h >= 16
    strategy.close_all()
    strategy.cancel_all()

strategy.exit("long exit", from_entry = "long", qty = contractAmt, limit = tpPrice, stop = stopPrice, comment = "Long Exit")
strategy.exit("short exit", from_entry = "short", qty = contractAmt, limit = tpPrice, stop = stopPrice, comment = "Short Exit")

Lebih lanjut