Strategi Swing Points Breakouts adalah strategi turun naik trend jangka panjang berdasarkan pengenalan swing tinggi dan swing rendah. Strategi ini memasuki kedudukan panjang apabila harga memecahkan harga tertinggi dalam tempoh yang paling baru yang ditentukan oleh parameter input, dan memasuki kedudukan pendek apabila harga memecahkan harga terendah dalam tempoh yang paling baru.
Strategi ini menentukan harga tertinggi dan harga terendah N bar yang paling baru sebagai swing tinggi dan swing rendah melalui parameter input. Ia menentukan masuk dan keluar berdasarkan parameter arah. Apabila pergi panjang, ia memasuki kedudukan panjang dengan pesanan berhenti OCO apabila harga memecahkan swing tinggi. Apabila pergi pendek, ia memasuki kedudukan pendek dengan pesanan berhenti OCO apabila harga memecahkan swing rendah.
Selain itu, strategi ini menetapkan stop loss. Selepas membuka kedudukan panjang, stop loss ditetapkan berhampiran harga terendah terkini. Selepas membuka kedudukan pendek, stop loss ditetapkan berhampiran harga tertinggi terkini. Ini berkesan mengelakkan kerugian besar dalam pasaran yang sedang trend.
Kelebihan terbesar strategi ini adalah bahawa ia menangkap turun naik utama di sekitar swing tinggi dan rendah dan keuntungan dengan sewajarnya.
Khususnya kelebihan adalah:
Logik strategi adalah jelas, dengan masuk dan keluar berdasarkan swing tinggi/rendah breakout.
Ia menggunakan swing high/low untuk mengenal pasti peluang pembalikan, pendekatan analisis teknikal klasik.
Terdapat stop loss yang ditetapkan untuk mengawal risiko dan mengelakkan kerugian besar di pasaran trend.
Kod ini mempunyai struktur yang jelas dan mudah difahami dan diubah suai.
Parameter boleh diselaraskan untuk mengoptimumkan strategi, seperti menyesuaikan tempoh swing tinggi / rendah.
Risiko utama strategi ini berasal dari pengiktirafan swing tinggi / rendah yang tidak tepat yang membawa kepada perdagangan yang salah.
Penembusan palsu swing tinggi/rendah yang mengakibatkan entri yang salah.
Kecelakaan besar berhampiran titik pecah.
Simbol trend cenderung memerlukan kos yang besar menentukan titik swing.
Penyesuaian parameter yang tidak betul juga mempengaruhi prestasi strategi.
Penyelesaian termasuk:
Mengoptimumkan parameter seperti swing tinggi / rendah tempoh.
Meningkatkan jarak stop loss.
Elakkan menggunakannya pada simbol tren.
Menggunakan pembelajaran mesin untuk mengoptimumkan parameter secara dinamik.
Strategi ini boleh dioptimumkan ke arah berikut:
Pengoptimuman dinamik tempoh swing tinggi / rendah bukannya nilai tetap untuk mengelakkan pemasangan berlebihan.
Memperkenalkan stop loss / mengambil keuntungan dinamik berdasarkan ATR dan turun naik.
Menggabungkan pelbagai bingkai masa, menggunakan TF yang lebih tinggi untuk menentukan trend dan TF yang lebih rendah untuk kemasukan.
Menggabungkan model pembelajaran mesin untuk meramalkan titik perubahan yang berpotensi dan meningkatkan prestasi.
Mengoptimumkan algoritma stop loss untuk mengelakkan hit yang tidak perlu sambil mengekalkan stop loss yang berkesan.
Strategi Swing Points Breakouts adalah strategi kuantitatif jangka panjang yang praktikal secara keseluruhan. Dengan menangkap peluang pembalikan di sekitar titik swing dan menetapkan kerugian berhenti untuk mengawal risiko, ia memastikan keuntungan sambil juga mengawal penurunan. Dengan penyesuaian parameter yang fleksibel dan logik yang jelas, ia adalah paradigma strategi yang disyorkan yang patut digunakan. Penambahbaikan lanjut boleh dibuat dengan memperkenalkan pengoptimuman dinamik dan pembelajaran mesin.
/*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)