Strategi Swing Points Breakouts adalah strategi fluktuasi tren jangka panjang yang didasarkan pada identifikasi swing high dan swing low. Strategi ini memasuki posisi panjang ketika harga menembus harga tertinggi dalam periode terbaru yang ditentukan oleh parameter input, dan memasuki posisi pendek ketika harga menembus harga terendah dalam periode terbaru.
Strategi ini mendefinisikan harga tertinggi N bar terbaru dan harga terendah sebagai swing high dan swing low melalui parameter input. Ini menentukan entri dan keluar berdasarkan parameter arah. Ketika pergi panjang, masuk posisi panjang dengan perintah berhenti OCO ketika harga menembus swing high. Ketika pergi pendek, masuk posisi pendek dengan perintah berhenti OCO ketika harga menembus swing low.
Selain itu, strategi ini mengatur stop loss. Setelah membuka posisi panjang, stop loss ditetapkan di dekat harga terendah baru-baru ini. Setelah membuka posisi pendek, stop loss ditetapkan di dekat harga tertinggi terbaru. Ini secara efektif menghindari kerugian besar di pasar tren.
Keuntungan terbesar dari strategi ini adalah bahwa ia menangkap fluktuasi kunci di sekitar swing high dan low dan keuntungan yang sesuai.
Khususnya keuntungan adalah:
Logika strategi jelas, dengan masuk dan keluar berdasarkan swing tinggi / rendah breakout.
Ini memanfaatkan swing high/low untuk mengidentifikasi peluang pembalikan, pendekatan analisis teknis klasik.
Ada stop loss yang diatur untuk mengendalikan risiko dan menghindari kerugian besar di pasar tren.
Kode ini memiliki struktur yang jelas dan mudah dipahami dan dimodifikasi.
Parameter dapat disesuaikan untuk mengoptimalkan strategi, seperti menyetel periode swing tinggi / rendah.
Risiko utama dari strategi ini berasal dari identifikasi swing tinggi/rendah yang tidak akurat yang mengarah pada perdagangan yang salah.
Penembusan palsu dari swing high/low yang mengakibatkan entri yang salah.
Stop loss besar terjadi di dekat titik-titik breakout.
Simbol tren cenderung membutuhkan biaya besar menentukan titik swing.
Pengaturan parameter yang tidak tepat juga mempengaruhi kinerja strategi.
Solusinya meliputi:
Mengoptimalkan parameter seperti swing periode tinggi / rendah.
Meningkatkan jarak stop loss.
Menghindari menggunakannya pada simbol tren.
Mengadopsi pembelajaran mesin untuk mengoptimalkan parameter secara dinamis.
Strategi dapat dioptimalkan dalam arah berikut:
Optimasi dinamis periode swing high/low daripada nilai tetap untuk menghindari overfit.
Memperkenalkan stop loss/take profit dinamis berdasarkan ATR dan volatilitas.
Menggabungkan beberapa kerangka waktu, menggunakan TF yang lebih tinggi untuk menentukan tren dan TF yang lebih rendah untuk masuk.
Mengintegrasikan model pembelajaran mesin untuk memprediksi titik swing potensial dan meningkatkan kinerja.
Mengoptimalkan algoritma stop loss untuk menghindari hit yang tidak perlu sambil menjaga stop loss yang efektif.
Strategi Swing Points Breakouts adalah strategi kuantitatif jangka panjang yang praktis secara keseluruhan. Dengan menangkap peluang pembalikan di sekitar titik ayunan dan mengatur stop loss untuk mengendalikan risiko, strategi ini memastikan keuntungan sambil juga mengendalikan drawdown. Dengan pengaturan parameter yang fleksibel dan logika yang jelas, ini adalah paradigma strategi yang disarankan yang layak digunakan. Peningkatan lebih lanjut dapat dilakukan dengan memperkenalkan optimasi dinamis 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)