
Strategi pelacakan reversal extreme dengan melacak titik ekstrim dari kisaran harga yang berfluktuasi, melakukan lebih banyak shorting pada titik ekstrim reversal, dan melakukan pelacakan tren.
Strategi ini didasarkan pada prinsip-prinsip berikut:
Fungsi keamanan digunakan untuk mendapatkan harga tertinggi-tinggi dan harga terendah-rendah dari garis K periode yang berbeda, untuk memeriksa apakah sama dengan harga terendah-tinggi dari garis K sebelumnya, untuk menentukan apakah titik ekstrem baru telah dicapai.
Ketika titik ekstrim baru terdeteksi, jika saat ini adalah perdagangan bertingkat, maka di titik ekstrim itu dibalikkan untuk melakukan shorting; jika saat ini adalah perdagangan kosong, maka dibalikkan untuk melakukan plus di titik ekstrim tersebut.
Tetapkan stop loss sebagai titik teratas baru yang terbentuk setelah melakukan lebih banyak shorting, untuk mencapai trend tracking stop loss.
Dengan mengatur rentang waktu dari tahun ke tahun, kebijakan dapat disesuaikan dengan periode waktu yang berbeda.
Strategi ini memiliki beberapa keuntungan utama:
Ini adalah metode yang efektif untuk menangkap titik-titik ekstrim dari perubahan harga, melakukan reversal, dan melacak tren.
Pengelolaan waktu dan uang diatur untuk mengontrol waktu dan uang yang digunakan untuk strategi, mengurangi risiko.
Menggunakan titik ekstrim baru sebagai titik stop loss, dapat menyesuaikan posisi stop loss sesuai dengan rentang fluktuasi harga baru, untuk mencapai stop loss dinamis.
Logika strategi sederhana dan jelas, mudah dipahami, mudah untuk debug dan mengoptimalkan.
Strategi ini juga memiliki beberapa risiko:
Penghakiman titik ekstrim berpotensi terjadi kesalahan penghakiman, yang menyebabkan kesalahan melakukan lebih banyak shorting. Hal ini dapat dioptimalkan dengan menyesuaikan logika penghakiman titik ekstrim.
Posisi stop loss yang dekat dengan titik masuk dapat meningkatkan probabilitas stop loss yang dipicu. Anda dapat mengatur stop loss yang mengambang di luar lapangan untuk mengatasinya.
Tanpa mempertimbangkan logika kenaikan dan pembalikan posisi yang mengikuti tren, mungkin sulit untuk mendapatkan keuntungan dalam situasi tren. Anda dapat menambahkan aturan kenaikan dan pembalikan posisi untuk dioptimalkan.
Pengaturan mata uang dan rentang waktu yang lebih kaku, tidak dapat disesuaikan secara dinamis. Anda dapat membangun sistem optimasi parameter untuk mengatasi.
Strategi ini dapat dioptimalkan dari beberapa arah:
Optimalkan logika penilaian titik ekstrim, tambahkan lebih banyak kondisi penyaringan untuk menghindari kesalahan penilaian.
Menambahkan floating stop loss mechanism, menyesuaikan stop loss distance sesuai dengan perubahan harga dan amplitudo fluktuasi.
Untuk meningkatkan profitabilitas Anda, Anda dapat menambahkan modus penambahan dan reverse positioning berdasarkan tren dan fluktuasi.
Membangun mekanisme optimasi parameter untuk melakukan pengujian dan optimasi parameter secara otomatis.
Dengan menggunakan model pembelajaran mesin untuk menilai perilaku, dan membantu pengambilan keputusan strategi.
Strategi pelacakan reversal ini memiliki kemampuan beradaptasi dan profitabilitas yang lebih kuat dengan menangkap titik-titik perubahan harga dan melacak tren. Strategi ini diharapkan menjadi strategi perdagangan kuantitatif yang stabil dan andal setelah terus mengoptimalkan penilaian titik-titik ekstrem, mekanisme stop-loss, dan aturan pembukaan posisi.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = 'Timeframe for extremums')
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Levels
highm = request.security(syminfo.tickerid, tf, high[1])
lowm = request.security(syminfo.tickerid, tf, low[1])
upcolorm = highm == highm[1] ? lime : na
dncolorm = lowm == lowm[1] ? red : na
plot(highm, color = upcolorm, linewidth = 3)
plot(lowm, color = dncolorm, linewidth = 3)
//Signals
size = strategy.position_size
up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1]
dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1]
exit = true
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if highm > 0 and high[1] < highm and highm == highm[1]
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up)
if lowm > 0 and low[1] > lowm and lowm == lowm[1]
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn)
if exit
strategy.close_all()