
Strategi penarikan balik adalah strategi untuk mengesan trend. Prinsip asasnya adalah untuk melakukan lebih banyak shorting apabila harga tertinggi atau terendah K-baris sebelum penembusan, menetapkan stop loss dan membiarkan keuntungan terus berjalan.
Strategi ini menentukan masa Entry dengan menilai sama ada harga akan menembusi harga tertinggi atau terendah pada garis K terdahulu. Logiknya ialah:
Jika harga tertinggi pada garis K semasa lebih tinggi daripada harga tertinggi pada garis K sebelumnya, maka ia akan mengeluarkan isyarat untuk melakukan lebih banyak.
Jika harga terendah pada garis K semasa lebih rendah daripada harga terendah pada garis K sebelumnya, isyarat kosong akan dikeluarkan.
Setelah menerima isyarat untuk melakukan lebih banyak pengosongan, masuk segera. Setelah masuk, atur stop stop menjadi 50 mata dan stop loss menjadi 100 mata.
Keluar dari permainan apabila kerugian lebih besar daripada sama dengan titik berhenti atau keuntungan lebih besar daripada sama dengan titik berhenti.
Strategi penarikan balik ini mempunyai kelebihan:
Strategi ini mempunyai beberapa risiko:
Strategi ini boleh terus dioptimumkan dalam beberapa aspek:
Meningkatkan penilaian keberkesanan penembusan harga, mengelakkan penembusan palsu. Sebagai contoh, penapisan penunjuk dan pengesahan kuantiti transaksi boleh dimasukkan.
Menambah mekanisme penghakiman trend, mengelakkan risiko kurungan yang dibawa oleh pasaran. Indikator trend seperti purata bergerak boleh dimasukkan.
Mengoptimumkan strategi hentian dan hentian, seperti menjejaki hentian dan hentian selepas keuntungan, untuk memaksimumkan keuntungan.
Optimumkan parameter untuk mencari jumlah titik henti rugi yang optimum.
Strategi penyesuaian penarikan balik secara keseluruhan logiknya mudah, mudah dilaksanakan, dapat menangkap permulaan trend dengan berkesan, penarikan balik dan kawalan risiko yang kuat. Dengan pengoptimuman lanjut, ia boleh menjadi strategi kuantitatif yang sangat praktikal.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Breakout Strategy", shorttitle="BS", overlay=true)
// Input for take profit and stop loss in pips
tp_pips = input(50, title="Take Profit (in pips)")
sl_pips = input(100, title="Stop Loss (in pips)")
// Calculate take profit and stop loss levels in points
tp_level = tp_pips * syminfo.mintick
sl_level = sl_pips * syminfo.mintick
// Function to check if a breakout has occurred
breakout(high_or_low) =>
high_or_low > request.security(syminfo.tickerid, "D", high[1]) ? true : false
// Buy condition
buy_condition = breakout(high)
strategy.entry("Buy", strategy.long, when=buy_condition)
// Sell condition
sell_condition = breakout(low)
strategy.entry("Sell", strategy.short, when=sell_condition)
// Take profit and stop loss conditions for Buy
tp_buy_condition = strategy.position_avg_price + tp_level
sl_buy_condition = strategy.position_avg_price - sl_level
strategy.exit("Take Profit/Close Buy", from_entry="Buy", profit=tp_buy_condition, loss=sl_buy_condition)
// Take profit and stop loss conditions for Sell
tp_sell_condition = strategy.position_avg_price - tp_level
sl_sell_condition = strategy.position_avg_price + sl_level
strategy.exit("Take Profit/Close Sell", from_entry="Sell", profit=tp_sell_condition, loss=sl_sell_condition)