Strategi Penembusan Kembalikan Rendah

Penulis:ChaoZhang, Tarikh: 2023-11-02 15:34:22
Tag:

img

Ringkasan

Idea utama strategi ini adalah untuk mengesan jika harga memecahkan harga terendah dalam tempoh tertentu dan pergi lama, menunggu harga kembali ke purata.

Logika Strategi

Strategi ini mendapat harga terendah dalam tempoh yang ditentukan lowestLow menggunakan Pine Script's ta.lowest kaedah dan membandingkannya dengan harga terendah dari tempoh sebelumnya prevLow.

Jika harga terendah tempoh terakhir lowestLow adalah lebih rendah daripada harga terendah tempoh sebelumnya preLow, isyarat panjang dicetuskan. Selepas pergi lama, ia membandingkan dengan harga tertinggi dalam tempoh yang ditentukan tertinggiHigh. Jika harga tertinggi tempoh terakhir lebih tinggi daripada harga tertinggi sebelumnya, ia menutup kedudukan.

Strategi ini membolehkan memilih keadaan pencetus, iaitu harga terendah perlu memecahkan 1, 2, 3 atau 4 harga terendah sebelumnya secara berturut-turut, untuk mengawal kekerapan perdagangan.

Ia juga memetakan garis harga terendah terendah dan garis harga tertinggi tertinggi di carta untuk memaparkan perubahan trend secara visual.

Analisis Kelebihan

  • Strategi ini menangkap trend pembalikan selepas memecahkan tahap terendah baru dengan kadar kemenangan yang agak tinggi.

  • Membolehkan memilih bilangan harga terendah yang dipecahkan untuk mengawal kekerapan perdagangan.

  • Menggambar garisan membantu menentukan titik perubahan trend secara visual.

  • Logik strategi yang mudah dan jelas, mudah difahami dan dilaksanakan.

  • Boleh dikonfigurasi dan dioptimumkan pada stok dan tempoh masa yang berbeza.

Analisis Risiko

  • Melanggar dasar palsu tidak dapat menentukan titik pembalikan trend, boleh membawa kepada kerugian.

  • Perlu menguji kombinasi parameter yang berbeza untuk mengoptimumkan konfigurasi, jika tidak, kekerapan perdagangan mungkin terlalu tinggi atau terlalu rendah.

  • Parameter perlu diselaraskan untuk stok yang berbeza, tidak boleh digunakan secara mekanikal.

  • Tempoh backtest yang tidak mencukupi boleh menyebabkan pemasangan berlebihan.

  • Harga boleh membuat terendah baru selepas pecah, perlu menetapkan stop loss untuk mengawal risiko.

Arahan pengoptimuman

  • Tambah mekanisme stop loss seperti pergerakan stop loss, trailing stop loss, untuk mengehadkan kerugian setiap perdagangan.

  • Mengoptimumkan bilangan breakout untuk mengimbangi kekerapan perdagangan dan kualiti isyarat.

  • Parameter ujian pada stok dan tempoh masa yang berbeza.

  • Tambah penapis untuk mengelakkan perdagangan yang kerap di pasaran yang berbeza.

  • Pertimbangkan untuk menambah penunjuk trend untuk mengelakkan perdagangan kontra trend.

  • Uji isyarat keluar yang berbeza.

Kesimpulan

Strategi ini menangkap peluang pembalikan dengan memantau penembusan harga terendah, strategi penembusan pembalikan purata biasa. Kelebihannya adalah kesederhanaan, kekerapan yang boleh dikawal, dan penerapan kepada pelbagai saham. Tetapi ia juga mempunyai beberapa risiko pecah palsu. Menambah penapis dan pengoptimuman adalah perlu, serta mengawal risiko. Dengan ujian dan pengoptimuman yang komprehensif, ia boleh menjadi sistem perdagangan yang stabil dan boleh dipercayai.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
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/
// © merovinh

//@version=5
strategy(title="Merovinh - Mean Reversion Lowest low",
     overlay = true,
     default_qty_type = strategy.percent_of_equity,
     initial_capital = 10000,
     default_qty_value = 10,
     commission_type = strategy.commission.percent,
     slippage = 1,
     commission_value = 0.04)

GR_TIME = 'Time Period'

bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high")

numberOfLows  = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four'])

//Period

var prevLow = .0
var prevHigh = .0
var prevLow2 = .0
var prevLow3 = .0
var prevLow4 = .0

truetime = true


highestHigh = ta.highest(high, bars)
lowestLow = ta.lowest(low, bars)

if numberOfLows == 'One'
    if truetime and prevLow > 0 and lowestLow < prevLow
        strategy.entry('long', strategy.long)
if numberOfLows == 'Two'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2
        strategy.entry('long', strategy.long)
if numberOfLows == 'Three'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3
        strategy.entry('long', strategy.long)
if numberOfLows == 'Four'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4
        strategy.entry('long', strategy.long)

if truetime and prevHigh > 0 and highestHigh > prevHigh
    strategy.close('long')


if prevLow != lowestLow
    prevLow4 := prevLow3
    prevLow3 := prevLow2
    prevLow2 := prevLow
    prevLow := lowestLow
prevHigh := highestHigh

plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line")
plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")




Lebih lanjut