
Strategi penembusan titik rendah tinggi adalah strategi pergerakan jangka panjang berdasarkan pengenalan titik rendah tinggi. Strategi ini berorientasikan parameter arah strategi, melakukan over apabila harga tertinggi dalam tempoh tetingkap tertentu baru-baru ini pecah, dan melakukan short apabila harga terendah dalam tempoh tetingkap tertentu baru-baru ini pecah.
Strategi ini melihat harga tertinggi dan terendah pada garis N-root K terdekat dengan menetapkan parameter input, iaitu titik tinggi dan rendah pergerakan, dan menentukan arah strategi berdasarkan parameter arah. Apabila melakukan over, masuk ke pasaran dengan cara berhenti ketika harga menembusi titik tertinggi dalam garis N-root K terdekat. Apabila harga jatuh dari titik terendah dalam garis N-root K terdekat, masuk ke pasaran dengan cara berhenti.
Di samping itu, strategi ini juga menetapkan kedudukan berhenti. Apabila anda membuka lebih banyak kedudukan, garis berhenti anda akan ditetapkan di dekat harga terendah; selepas anda menutup, garis berhenti anda akan ditetapkan di dekat harga tertinggi. Ini dapat mengelakkan kerugian besar yang disebabkan oleh tindakan unilateral.
Kelebihan utama strategi ini ialah dapat menangkap turun naik penting di sekitar titik tinggi dan rendah, dan dengan itu, menghasilkan keuntungan. Selain itu, menetapkan garis stop loss dapat mengawal risiko dengan berkesan.
Kelebihan khusus:
Berfikiran strategik yang jelas, masuk dan keluar dinilai melalui titik tinggi dan rendah.
Ini adalah kaedah klasik dalam analisis teknikal, iaitu menggunakan titik-titik tinggi dan rendah untuk mencari peluang untuk berbalik.
Ia adalah satu cara untuk mengawal risiko dan mengelakkan kerugian besar yang mungkin disebabkan oleh tindakan unilateral.
Kod ini jelas, mudah difahami dan diubah suai.
Anda boleh memasukkan parameter yang berbeza untuk mengoptimumkan strategi, seperti menyesuaikan jumlah kitaran maksimum dan minimum.
Risiko utama dalam strategi ini adalah perdagangan yang salah yang boleh menyebabkan keputusan yang tinggi atau rendah tidak dibenarkan.
Punca tertinggi dan terendah yang mungkin berlaku ialah kesalahan penembusan yang membawa kepada kesalahan masuk ke dalam permainan.
Kemungkinan besar penutupan besar akan berlaku berhampiran titik penembusan.
Ia adalah jenis yang mudah terbentuk dan memerlukan perbelanjaan yang besar untuk menentukan tahap yang tinggi atau rendah.
Penetapan parameter yang tidak betul juga boleh menjejaskan prestasi strategi.
Penyelesaian termasuk:
Parameter pengoptimuman, jumlah kitaran untuk menyesuaikan penilaian tertinggi dan terendah.
Meningkatkan Stop Loss.
Membedakan ciri-ciri varieti dan mengelakkan penggunaan dalam varieti trend.
Parameter pengoptimuman dinamik menggunakan kaedah pembelajaran mesin.
Strategi ini boleh dioptimumkan dengan:
Pengoptimuman jumlah kitaran maksimum dan minimum: jumlah kitaran tetap semasa, boleh diubah menjadi pengoptimuman dinamik untuk mengelakkan pengoptimuman berlebihan yang disebabkan oleh mod tetap.
Tambah pengoptimuman Stop Loss: anda boleh menyesuaikan stop loss berdasarkan ATR, kadar turun naik dan lain-lain.
Gabungan beberapa kitaran masa: trend boleh ditentukan dalam kitaran masa yang lebih tinggi, dan kitaran masa yang lebih rendah menentukan kemasukan.
Meningkatkan pembelajaran mesin: Menggunakan kaedah seperti rangkaian saraf untuk meramalkan kebarangkalian penembusan titik tinggi dan rendah yang berpotensi, meningkatkan keberkesanan.
Pengoptimuman algoritma hentikan kerugian: penambahbaikan algoritma untuk meminimumkan keadaan di mana hentikan kerugian yang tidak berkesan dicetuskan, dengan syarat untuk memastikan hentikan kerugian.
Strategi penembusan titik rendah tinggi secara keseluruhan adalah strategi kuantitatif garis panjang yang sangat praktikal. Ia memperoleh keuntungan dengan menangkap peluang berbalik di sekitar titik rendah tinggi, dan menetapkan hentian untuk mengawal risiko, sehingga dapat mengawal pengunduran sambil menjamin keuntungan. Tetapan parameter strategi ini fleksibel, idea yang jelas, adalah strategi yang disyorkan.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
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/
// © tweakerID
// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line).
// The direction of the strategy can be adjusted in the Inputs panel.
//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)
direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")
//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)
//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na
//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)
if i_SL
strategy.exit("longexit", "long", stop=LSL)
strategy.exit("shortexit", "short", stop=SSL)
//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)