
Value Break Tracking Stop Loss Strategy adalah sistem perdagangan kuantitatif yang dirancang khusus untuk perdagangan aset digital yang menangkap pergerakan pasar yang terobosan dengan menempatkan daftar pegangan (buy stop loss and sell stop loss) di posisi harga ekstrem lokal. Strategi ini juga mengimplementasikan mekanisme tracking stop loss, yang mengaktifkan mekanisme perlindungan untuk mengunci keuntungan setelah pemegang posisi mencapai tingkat keuntungan yang telah ditentukan.
Strategi ini didasarkan pada perilaku harga dan prinsip manajemen risiko dinamis, dengan logika inti yang dapat dibagi menjadi beberapa bagian penting sebagai berikut:
Identifikasi nilai ekstrim lokalStrategi ini menggunakan jendela waktu yang telah ditentukan (parameter BarsN) untuk menghitung titik tinggi dan rendah lokal sebagai titik titik terobosan potensial. Secara khusus, strategi ini menggunakan garis K (BarsN * 2 + 1) untuk menentukan harga tertinggi dan terendah lokal.
Pengaturan daftar:
Filter waktuStrategi ini memungkinkan pedagang untuk mengatur waktu perdagangan dan hanya melakukan perdagangan dalam jangka waktu yang ditentukan, yang membantu menghindari periode waktu yang tidak diinginkan.
Perhitungan Tingkat Keuntungan dan Kerugian:
Pelacakan mekanisme stop loss:
Setelah menganalisis kode secara mendalam, strategi ini menunjukkan keuntungan yang signifikan:
Catat secara otomatis apa yang terjadi.Strategi ini dapat secara otomatis menangkap pergerakan harga tanpa perlu memantau pasar secara manual.
Manajemen risiko dinamisPengaturan Stop Loss berdasarkan persentase harga saat ini, membuat manajemen risiko lebih fleksibel untuk menyesuaikan dengan tingkat harga yang berbeda.
Mekanisme perlindungan keuntunganDengan fitur tracking stop loss, strategi ini dapat mengunci keuntungan yang telah diperoleh secara efektif, mengurangi penarikan, dan mempertahankan ruang untuk keuntungan.
Fungsi penyaringan waktuHal ini memungkinkan pedagang untuk memilih waktu perdagangan yang optimal sesuai dengan karakteristik pasar, menghindari perdagangan pada periode waktu yang lebih rendah volatilitas atau tidak dapat diprediksi.
Sangat mudah beradaptasiParameter strategi dapat disesuaikan sesuai dengan kondisi pasar, seperti menyesuaikan jendela perhitungan nilai ekstrem lokal, persentase stop loss, dan lain-lain, agar sesuai dengan lingkungan pasar yang berbeda.
Penegakan disiplin yang ketatSebagai strategi otomatisasi, ia menghilangkan pengaruh faktor emosional pada keputusan perdagangan dan melakukan perdagangan secara ketat sesuai dengan aturan yang telah ditetapkan.
Meskipun strategi ini memiliki banyak keuntungan, ada beberapa risiko dan keterbatasan potensial:
Risiko Penembusan PalsuPasar dapat menghasilkan false breaks yang menyebabkan strategi memasuki perdagangan yang tidak diinginkan. Solusinya adalah dengan meningkatkan indikator konfirmasi atau menyesuaikan ukuran jarak pesanan dari zona penyangga untuk mengurangi probabilitas false breaks yang dipicu.
Parameter SensitivitasKinerja strategi sangat bergantung pada pengaturan parameter, seperti BarsN, TPasPctBTC, dan SLasPctBTC. Parameter yang tidak sesuai dapat menyebabkan kinerja yang buruk. Disarankan untuk menemukan kombinasi parameter yang optimal melalui retesting.
Manajemen dana yang tidak lengkap: Meskipun parameter RiskPercent didefinisikan dalam kode, namun tidak diterapkan secara praktis untuk menghitung ukuran posisi.
Kemampuan untuk menanggapi situasi ekstrim terbatasDalam kondisi pasar yang sangat volatile atau ekstrem, hanya dengan melakukan penembusan batas lokal dan stop loss persentase tetap mungkin tidak cukup untuk mengelola risiko secara efektif.
Slider dan execution delayDalam transaksi nyata, eksekusi order dapat mengalami slippage atau keterlambatan yang mempengaruhi kinerja strategi.
Ketergantungan pada pasar tunggalStrategi ini dirancang untuk aset tertentu dan mungkin tidak berlaku untuk aset yang berbeda dari karakteristik pasar lainnya.
Berdasarkan analisis kode, strategi ini dapat dioptimalkan dalam beberapa arah:
Manajemen Posisi Dinamis: Mengimplementasikan penghitungan ukuran posisi dinamis berdasarkan parameter RiskPercent, menyesuaikan ukuran posisi berdasarkan ukuran akun dan risiko pasar saat ini untuk mengendalikan risiko yang lebih halus.
Mekanisme multiple confirmation: Memperkenalkan indikator teknis tambahan sebagai konfirmasi terobosan, seperti terobosan volume transaksi, indikator momentum, atau indikator tren, untuk mengurangi terobosan palsu.
Parameter adaptasiIntroduksi parameter yang secara otomatis disesuaikan berdasarkan volatilitas pasar atau karakteristik pasar lainnya, sehingga strategi dapat beradaptasi dengan lebih baik terhadap berbagai kondisi pasar.
Strategi penghentian batchImplementasi mekanisme batch-stop, memungkinkan beberapa posisi untuk keluar pada tingkat keuntungan yang berbeda, dapat mengunci sebagian keuntungan dan mempertahankan ruang keuntungan yang lebih besar.
Filter kondisi pasarPertimbangan: meningkatkan status pasar (trend, getaran, dll), menyesuaikan parameter strategi atau menghentikan perdagangan dalam kondisi pasar yang berbeda.
Optimalisasi Stop Loss: Membuat stop loss yang dinamis berdasarkan ATR atau indikator volatilitas lainnya, sehingga stop loss lebih masuk akal.
Kerangka Pemantauan dan Optimalisasi: Mengembangkan kerangka pengujian yang lebih komprehensif, menilai kinerja strategi dalam periode yang berbeda, di bawah parameter yang berbeda, dan mencari kombinasi parameter yang optimal.
Value Break Tracking Stop Loss Strategi adalah sistem perdagangan otomatis yang dirancang dengan baik untuk mengelola risiko dengan menangkap nilai terobosan lokal dan menerapkan tracking stop loss. Keunggulan utamanya adalah mekanisme pelaksanaan otomatis, manajemen risiko dinamis, dan perlindungan keuntungan, yang membuatnya menjadi alat perdagangan yang berpotensi efektif.
Namun, efektivitas strategi sangat bergantung pada pengaturan parameter dan kondisi pasar. Dengan menerapkan langkah-langkah optimasi yang disarankan, seperti manajemen posisi dinamis, mekanisme konfirmasi ganda, dan parameter adaptasi, strategi dapat secara signifikan meningkatkan robustitas dan adaptasi.
Untuk pedagang, disarankan untuk melakukan pengembalian yang cukup sebelum penerapan langsung, menemukan kombinasi parameter yang paling sesuai dengan lingkungan pasar saat ini, dan pertimbangkan untuk mengkonfirmasi sinyal perdagangan dalam kombinasi dengan alat analisis lainnya. Pada saat yang sama, terus memantau dan mengevaluasi kinerja strategi, menyesuaikan parameter secara tepat waktu sesuai dengan perubahan pasar untuk menjaga efektivitas strategi.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-06 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("BTC Trading Robot", overlay=true, pyramiding=1, initial_capital=100000)
//============== Input Groups ==============//
// Trading Profile
group_trading = "BTC"
systemType = input.int(1, title="Trading System (1:BTC)", group=group_trading)
// Common Trading Inputs
group_common = "Trading Inputs"
RiskPercent = input.float(4.0, title="Risk as % of trading capital", group=group_common)
TradeComment = input.string("BTC trading robot", title="Trade Comment", group=group_common)
SHInput = input.int(0, title="Start Hour (0 = no filter)", group=group_common)
EHInput = input.int(0, title="End Hour (0 = no filter)", group=group_common)
// Gold Related Inputs
group_BTC = "BTC Related Input"
TPasPctBTC = input.float(0.2, title="TP as % of Price", group=group_BTC)
SLasPctBTC = input.float(0.1, title="SL as % of Price", group=group_BTC)
TSLasPctofTPBTC = input.float(5.0, title="Trail SL as % of TP", group=group_BTC)
TSLTgrasPctofTPBTC = input.float(7.0, title="Trail Tgra SL as % of TP", group=group_BTC)
// Other parameters
BarsN = 5
OrderDistPoints = 100.0
//============== Calculate Trade Parameters ==============//
var float Tppoints = 0.0
var float Slpoints = 0.0
var float TslTriggerPoints = 0.0
var float TslPoints = 0.0
price = close
// Adjust parameters based on system type (using 1 for Gold)
if systemType == 1
Tppoints := price * TPasPctBTC
Slpoints := price * SLasPctBTC
OrderDistPoints := Tppoints / 2.0
TslPoints := Tppoints * TSLTgrasPctofTPBTC / 100.0
TslTriggerPoints := Tppoints * TSLTgrasPctofTPBTC / 100.0
//============== Time Filter ==============//
currentHour = hour(time)
inSession = true
if SHInput != 0 and currentHour < SHInput
inSession := false
if EHInput != 0 and currentHour >= EHInput
inSession := false
//============== Find Local High and Low ==============//
localHigh = ta.highest(high, BarsN * 2 + 1)
localLow = ta.lowest(low, BarsN * 2 + 1)
//============== Entry Orders ==============//
if inSession and strategy.position_size == 0
// For a BuyStop order: only submit if current price is less than the desired entry level minus a buffer.
if price < localHigh - OrderDistPoints * syminfo.mintick
strategy.order("BuyStop", strategy.long, stop=localHigh, comment="BuyStop")
// For a SellStop order: only submit if current price is greater than the desired entry level plus a buffer.
if price > localLow + OrderDistPoints * syminfo.mintick
strategy.order("SellStop", strategy.short, stop=localLow, comment="SellStop")
//============== Trailing Stop Logic ==============//
if strategy.position_size > 0 // Long positions
longProfit = price - strategy.position_avg_price
if longProfit > TslTriggerPoints * syminfo.mintick
strategy.exit("Long Exit", from_entry="BuyStop", stop=price - TslPoints * syminfo.mintick, limit=strategy.position_avg_price + Tppoints * syminfo.mintick)
if strategy.position_size < 0 // Short positions
shortProfit = strategy.position_avg_price - price
if shortProfit > TslTriggerPoints * syminfo.mintick
strategy.exit("Short Exit", from_entry="SellStop", stop=price + TslPoints * syminfo.mintick, limit=strategy.position_avg_price - Tppoints * syminfo.mintick)