Strategi ini menggunakan purata bergerak untuk menjana isyarat perdagangan dan menetapkan peratusan stop loss tetap dan mengambil tahap keuntungan berdasarkan harga kemasukan untuk mengawal risiko dan ganjaran setiap perdagangan.
Strategi ini mula-mula menggunakan purata bergerak eksponensial 5 hari (EMA) dan EMA 32 hari untuk menentukan arah trend. Ia pergi lama apabila purata bergerak jangka pendek melintasi di atas jangka panjang dan pergi pendek di bawah.
Selepas memasuki perdagangan, strategi secara dinamik menetapkan stop loss dan mengambil keuntungan untuk setiap perdagangan berdasarkan peratusan stop loss dan mengambil keuntungan yang ditakrifkan oleh pengguna. Khususnya, untuk perdagangan panjang, stop loss ditetapkan pada harga kemasukan × (1 - peratusan stop loss) dan mengambil keuntungan ditetapkan pada harga kemasukan × (1 + mengambil keuntungan peratusan). Untuk perdagangan pendek ia terbalik - stop loss pada harga kemasukan × (1 + peratusan stop loss) dan mengambil keuntungan pada harga kemasukan × (1 - mengambil keuntungan peratusan).
Ini membolehkan memastikan nisbah risiko / ganjaran tetap untuk setiap perdagangan dan mengawal risiko dan keuntungan.
Cara menetapkan stop loss dan mengambil keuntungan ini mempunyai beberapa kelebihan penting:
Ia boleh mengehadkan kerugian maksimum setiap perdagangan dan mengawal risiko perdagangan dengan berkesan.
Ia boleh mengunci nisbah keuntungan tetap setiap perdagangan dan memastikan pulangan.
Titik stop loss dan mengambil keuntungan berbeza dengan harga kemasukan sebenar dan bukannya menggunakan nilai tetap.
Pengguna boleh menentukan selera risiko mereka dengan menyesuaikan parameter input.
Logik strategi yang mudah dan intuitif, mudah difahami dan disahkan.
Terdapat juga beberapa risiko dengan strategi ini:
Purata bergerak boleh menghasilkan isyarat yang tidak sah yang berlebihan, dengan kemungkinan tinggi dihentikan selepas masuk.
Mengambil nisbah keuntungan yang terlalu tinggi boleh mengakibatkan keuntungan yang tidak mencukupi, terlalu rendah mungkin gagal untuk memenangi cukup.
Stop loss yang terlalu dekat boleh meningkatkan peluang untuk dihentikan dan harus memberikan penyangga.
Pilihan produk perdagangan dan jangka masa boleh mempengaruhi keberkesanan.
Penyelesaian yang sepadan:
Mengoptimumkan parameter purata bergerak untuk mengurangkan isyarat palsu.
Uji nisbah keuntungan yang berbeza untuk mencari yang optimum.
Sesuaikan jarak stop loss berdasarkan turun naik pasaran.
Menilai prestasi strategi merentasi produk dan jangka masa yang berbeza.
Strategi ini boleh ditingkatkan dalam aspek berikut:
Tambah penunjuk lain untuk pengesahan trend untuk mengelakkan isyarat palsu yang berlebihan dari purata bergerak.
Mengoptimumkan stop loss dan mengambil peratusan keuntungan berdasarkan data backtest untuk mencari parameter yang optimum.
Tukar stop loss ke trailing stop untuk mengunci lebih banyak keuntungan semasa.
Tambahkan peraturan saiz kedudukan dengan piramid dan stop loss untuk menguruskan risiko perdagangan.
Menilai perbezaan prestasi di instrument perdagangan dan jangka masa yang berbeza.
Strategi ini mengenal pasti arah trend dengan purata bergerak, dan menetapkan peratusan tetap stop loss dan mengambil keuntungan berdasarkan harga kemasukan untuk mengawal risiko dan ganjaran perdagangan tunggal. Kelebihannya adalah dengan berkesan mengehadkan kerugian, memastikan nisbah keuntungan, dengan logik yang mudah dan mudah. konfigurasi yang betul parameter stop loss / mengambil keuntungan, pemilihan produk perdagangan dan jangka masa, dan pelbagai cara untuk mengoptimumkan lagi strategi perlu diperhatikan.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © theCrypster 2020 //@version=4 strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true) // Moving Averages to get some example trades generated eg1 = ema(close, 5) eg2 = ema(close, 32) long = crossover(eg1, eg2) short = crossunder(eg1, eg2) strategy.entry("LONG", strategy.long, when=long) strategy.entry("SHORT", strategy.short, when=short) // // The Fixed Percent Stop Loss Code // User Options to Change Inputs (%) stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100 takePer = input(10.0, title='Take Profit %', type=input.float) / 100 // Determine where you've entered and in what direction longStop = strategy.position_avg_price * (1 - stopPer) shortStop = strategy.position_avg_price * (1 + stopPer) shortTake = strategy.position_avg_price * (1 - takePer) longTake = strategy.position_avg_price * (1 + takePer) if strategy.position_size > 0 strategy.exit(id="Close Long", stop=longStop, limit=longTake) if strategy.position_size < 0 strategy.exit(id="Close Short", stop=shortStop, limit=shortTake) //PLOT FIXED SLTP LINE plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL") plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL") plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit") plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit") //