Artikel ini menerangkan strategi perdagangan kuantitatif untuk mengesan trend berdasarkan nisbah penyesuaian harga. Strategi ini mengenal pasti ketinggian tempatan untuk penetapan masuk dengan nisbah penyesuaian tertentu.
I. Prinsip-prinsip Strategi
Logik teras strategi ini adalah untuk mengenal pasti harga tertinggi dalam tempoh tertentu, dan kemudian menjejaki dagangan di kedudukan penarikan balik dalam perkadaran tertentu. Langkah-langkahnya adalah seperti berikut:
Pertama, kira harga tertinggi dalam 90 garis K yang paling baru, sebagai titik tertinggi tempatan;
Pembelian dijejaki apabila harga kembali pada satu peratusan (seperti 3%) dari paras tertinggi tersebut;
Hentian ditetapkan sebagai kenaikan peratusan tertentu dari harga masuk (seperti 6%), apabila harga mencapai titik berhenti;
Tidak menetapkan stop loss, dan hanya mengikut trend.
Dengan cara ini, masa masuk dinilai oleh perkadaran penarikan balik titik tinggi tempatan, yang dapat menyaring gegaran dengan berkesan, dan masuk hanya setelah trend disahkan. Pengaturan penangguhan juga membolehkan setiap keuntungan mendapat pengurusan jangkaan tertentu.
Kedua, kelebihan strategi
Kelebihan utama strategi ini ialah menggunakan nisbah regresi untuk menilai trend, menyaring banyak bunyi. Ia dapat mengurangkan kebarangkalian untuk dimasukkan secara langsung di titik perubahan.
Kelebihan lain ialah logik hentian yang ditetapkan. Ini menjadikan setiap perdagangan dapat dikawal dan sesuai dengan prinsip pengurusan wang positif.
Akhirnya, pengesanan stop loss yang lebih besar daripada peratusan pengembalian juga memberi strategi mekanisme ganjaran risiko.
Ketiga, potensi risiko
Walaupun ada kelebihan, strategi ini mempunyai risiko yang perlu diperhatikan dalam penggunaan sebenar:
Pertama, kadar penarikan balik perlu ditetapkan dengan berhati-hati. Penarikan balik yang terlalu dalam atau terlalu cetek akan menjejaskan ruang keuntungan.
Kedua, tiada tetapan stop loss menjadikan strategi menghadapi risiko tunggal yang lebih besar. Pembaikan trend yang kuat mungkin membawa kerugian yang lebih besar.
Akhirnya, pengoptimuman parameter yang tidak betul juga boleh menyebabkan masalah overfitting, yang menyebabkan kualiti isyarat menurun.
Empat isi, ringkasan
Artikel ini menerangkan secara terperinci strategi kuantitatif untuk mengikuti trend berdasarkan nisbah regresi harga. Ia dapat mengenal pasti arah trend dengan berkesan, menggunakan regresi untuk masuk. Di samping itu, menetapkan pengurusan hentian juga menjadikan strategi mempunyai mekanisme kawalan risiko tertentu. Secara keseluruhan, strategi ini boleh menjadi salah satu pilihan strategi untuk mengikuti trend dengan membina peraturan perdagangan berdasarkan regresi titik tinggi tempatan.
/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © luboremenar
//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)
// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)
// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)
if (longCondition1)
strategy.entry("Long1", strategy.long, qty = strategy.equity/close)
strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
when= crossover(strategy.position_size, 0))
// plot
plot(strategy.equity)
// for testing, debugging
//test=0.0
//if(crossover(strategy.position_size, 0))
// test := (close*1.06-close)*basis_points
//plot(test)