Sistem Pengikut Trend Kotak Ganda

Penulis:ChaoZhang, Tarikh: 2023-11-02 17:19:22
Tag:

Ringkasan

Trend Following System adalah strategi pengesanan trend berdasarkan sistem kotak berganda. Ia menggunakan kotak jangka panjang untuk menentukan arah trend keseluruhan dan mengambil isyarat yang sejajar dengan trend utama apabila kotak jangka pendek mencetuskan. Strategi ini mengikuti trend sambil menguruskan risiko.

Logika Strategi

Strategi ini menggunakan dua kotak untuk menentukan trend. kotak jangka panjang menggunakan tempoh yang lebih lama untuk menilai arah trend utama, dan kotak jangka pendek menggunakan tempoh yang lebih pendek untuk menghasilkan isyarat perdagangan.

Pertama, strategi mengira harga tertinggi dan terendah kotak jangka panjang untuk menentukan arah trend utama.

  • Jika harga tertinggi melintasi harga tertinggi bar sebelumnya, ia ditakrifkan sebagai trend menaik, yang diberikan nilai 1
  • Jika harga terendah melintasi di bawah harga terendah bar sebelumnya, ia ditakrifkan sebagai downtrend, yang diberikan nilai -1
  • Jika tidak, mengekalkan arah trend asal

Selepas menentukan trend utama, strategi mula mengambil kedudukan berdasarkan isyarat kotak jangka pendek.

  • Apabila trend utama naik dan harga terendah kotak jangka pendek sama dengan harga terendah bar sebelumnya dan lebih rendah daripada harga terendah kotak jangka pendek semasa, pergi panjang.
  • Apabila trend utama menurun dan harga tertinggi kotak jangka pendek sama dengan harga tertinggi bar sebelumnya dan lebih tinggi daripada harga tertinggi kotak jangka pendek semasa, pergi pendek.

Di samping itu, stop loss dan mengambil keuntungan dikonfigurasi:

  • Stop loss panjang adalah harga terendah kotak jangka panjang, stop loss pendek adalah harga tertinggi kotak jangka panjang
  • Long take profit adalah harga tertinggi kotak jangka pendek, mengambil keuntungan pendek adalah harga terendah kotak jangka pendek

Apabila trend utama berbalik, tutup semua kedudukan.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Sistem kotak berganda secara berkesan mengenal pasti arah trend dan mengurangkan perdagangan yang salah
  2. Hanya mengambil isyarat pembalikan yang sejajar dengan trend utama mengelakkan ditipu oleh bunyi pasaran jangka pendek
  3. Gabungan tempoh panjang dan pendek memastikan menangkap trend utama sambil mengekalkan fleksibiliti penyesuaian kedudukan
  4. Stop loss dan mengambil keuntungan yang munasabah untuk mengawal risiko sambil mengikuti trend
  5. Memudahkan semua kedudukan apabila trend utama berbalik meminimumkan kerugian

Analisis Risiko

Risiko strategi ini termasuk:

  1. Tetapan jangka panjang dan jangka pendek yang tidak betul boleh menyebabkan perdagangan berlebihan atau peluang yang hilang
  2. Pembalikan jangka pendek mungkin tidak mewakili perubahan trend jangka panjang, masih menimbulkan risiko kerugian
  3. Stop loss terlalu dekat mungkin akan berhenti terlalu awal.
  4. Mengambil keuntungan terlalu longgar mungkin tidak memaksimumkan keuntungan
  5. Penghakiman yang salah mengenai trend utama membawa kepada kerugian
  6. Penyelesaian termasuk menyesuaikan tempoh, mengoptimumkan berhenti / sasaran, menambah penapis dan lain-lain.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dengan:

  1. Menambah penapis untuk mengelakkan penyebaran palsu
  2. Mengoptimumkan tempoh panjang dan pendek untuk produk yang berbeza
  3. Penyesuaian dinamik tahap stop loss dan mengambil keuntungan
  4. Memasukkan peraturan ukuran kedudukan
  5. Menggunakan jumlah dll untuk menilai kebolehpercayaan perubahan trend
  6. Menggunakan pembelajaran mesin untuk mengoptimumkan parameter dan penapis secara automatik

Ringkasan

Sistem Pengikut Trend adalah strategi perdagangan trend yang praktikal yang menggabungkan penentuan trend dan penyesuaian jangka pendek. Dengan pengoptimuman berterusan, ia boleh menjadi sistem automatik yang kukuh yang mengesan trend sambil mengawal risiko. Ia mengandungi falsafah teras perdagangan trend dan bernilai kajian mendalam.

[/trans]


/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-26 07:00:00
period: 5m
basePeriod: 1m
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/
// © LonesomeTheBlue

//@version=4
strategy("Grab Trading System", overlay = true)
flb = input(defval = 80, title = "Longterm Period", minval = 1)
slb = input(defval = 21, title = "Shortterm Period", minval = 1)
showtarget = input(defval = true, title = "Show Target")
showtrend = input(defval = true, title = "Show Trend")

major_resistance = highest(flb)
major_support = lowest(flb)
minor_resistance = highest(slb)
minor_support = lowest(slb)

var int trend = 0
trend := high > major_resistance[1] ? 1 : low < major_support[1] ? -1 : trend
strategy.entry("Buy", true, when = trend == 1 and low[1] == minor_support[1] and low > minor_support)
strategy.entry("Sell", false, when = trend == -1 and high[1] == minor_resistance[1] and high < minor_resistance)

if strategy.position_size > 0
    strategy.exit("Buy", stop = major_support, comment = "Stop Buy")
    if high[1] == minor_resistance[1] and high < minor_resistance
        strategy.close("Buy", comment ="Close Buy")
    
if strategy.position_size < 0
    strategy.exit("Sell", stop = major_resistance, comment = "Stop Sell")
    if low[1] == minor_support[1] and low > minor_support
        strategy.close("Sell", comment ="Close Sell")

if strategy.position_size != 0 and change(trend)
    strategy.close_all()
    
majr = plot(major_resistance, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na)
majs = plot(major_support, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na)
minr = plot(minor_resistance, color = showtarget and trend == 1 and strategy.position_size > 0 ? color.yellow : na, style = plot.style_circles)
mins = plot(minor_support, color = showtarget and trend == -1 and strategy.position_size < 0 ? color.yellow : na, style = plot.style_circles)

fill(majs, mins, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na, transp = 85)
fill(majr, minr, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na, transp = 85)


Lebih lanjut