Strategi Peluru Perak Berdasarkan Pemecahan Kotak


Tarikh penciptaan: 2024-01-15 12:06:32 Akhirnya diubah suai: 2024-01-15 12:06:32
Salin: 1 Bilangan klik: 801
1
fokus pada
1617
Pengikut

Strategi Peluru Perak Berdasarkan Pemecahan Kotak

Gambaran keseluruhan

Strategi ini menilai arah dan kekuatan pasaran dengan memantau penembusan kotak yang terbentuk pada titik tinggi dan rendah garis K. Apabila terdapat penembusan kotak ke atas, strategi ini akan menetapkan titik masuk positif di dekat titik pecah; Apabila terdapat penembusan kotak ke bawah, strategi ini akan menetapkan titik masuk terbalik di dekat titik pecah.

Prinsip Strategi

  1. Strategi ini akan menentukan tempoh perdagangan dan hanya akan mencari peluang perdagangan dalam tempoh tersebut.

  2. Strategi ini akan menilai apakah terdapat penembusan yang ketara pada harga tertinggi dan terendah pada dua garis K terdahulu selepas setiap garis K terbentuk.

2.1 Jika harga minimum K baris kedua lebih tinggi daripada harga tertinggi K baris pertama, maka terdapat penembusan badan ke atas.

2.2 Jika harga tertinggi pada baris K kedua adalah lebih rendah daripada harga terendah pada baris K pertama, maka terdapat penembusan kotak ke bawah.

  1. Selepas mengesahkan isyarat penembusan kotak, strategi akan menetapkan titik masuk ke arah positif atau kebalikan berhampiran harga tertinggi atau terendah pada garis K.

  2. Setelah kedudukan terbentuk, strategi akan menetapkan stop-loss berdasarkan dua kali ganda daripada ketinggian penembusan, dengan cara ini untuk menangkap percepatan trend.

  3. Strategi ini juga menetapkan titik hentian pada harga terendah atau tertinggi pada garis K kedua, mengurangkan risiko kerugian.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Prinsipnya mudah difahami dan mudah dilaksanakan.

  2. Dengan menggunakan K line box body untuk memecahkan arah dan kekuatan pasaran, ketepatan yang lebih tinggi.

  3. Dengan menetapkan tahap stop, peluang untuk mempercepatkan trend dapat ditangkap.

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

  5. Strategi ini fleksibel dan boleh disesuaikan mengikut gaya individu.

Analisis risiko

Walau bagaimanapun, strategi ini mempunyai risiko:

  1. Isyarat penembusan mungkin palsu, tidak dapat mengelakkan kerugian sepenuhnya.

  2. Kedudukan stop loss yang berhampiran dengan titik masuk mungkin mudah dicetuskan oleh pasaran yang agresif.

  3. Tidak dapat menilai corak trend, dan hentian kerugian mungkin sering dicetuskan dalam keadaan gegaran.

  4. Tidak mengambil kira kesan yang disebabkan oleh perbezaan jenis transaksi dan tempoh masa.

Arah pengoptimuman

Untuk mengoptimumkan lagi strategi ini, langkah-langkah yang boleh diambil ialah:

  1. Tetapkan parameter penghentian kerosakan adaptasi mengikut pelbagai jenis dan tempoh masa.

  2. Tambah indikator teknikal untuk menilai trend untuk mengelakkan terjerat dalam keadaan gegaran.

  3. Tetapkan peluang kenaikan harga untuk mengesan trend.

  4. Jumlah penggabungan boleh menjadi penunjuk untuk menilai kebenaran atau kepalsuan penembusan dengan memfilterkan isyarat.

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

ringkaskan

Strategi ini berdasarkan reka bentuk prinsip terobosan yang mudah, memperoleh keuntungan tambahan dengan menangkap operasi yang dipercepatkan selepas terobosan. Menggunakan risiko kawalan dengan menggunakan seting berhenti dan berhenti. Strategi ini mudah difahami dan dilaksanakan, boleh disesuaikan dan dioptimumkan mengikut keperluan individu dan keadaan pasaran, dan mempunyai kepraktisan yang kuat.

Kod sumber strategi
/*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")