
Strategi ini berdasarkan mekanisme penangguhan kerugian mengikut dinamik yang dikira, menetapkan garis berhenti untuk kedudukan panjang dan pendek berdasarkan harga tertinggi dan terendah harga saham. Apabila harga menyentuh garis berhenti, tutup kedudukan semasa, dan buka kedudukan baru ke arah yang berlawanan. Strategi ini mudah difahami, dapat mengawal risiko individu dengan berkesan.
Strategi ini dijalankan melalui beberapa langkah:
Ini adalah logik operasi asas strategi. Apabila harga berjalan, garis berhenti akan terus diperbaharui, sehingga dapat melakukan pelacakan dinamik. Dengan cara ini, anda dapat mengawal kerugian tunggal dengan berkesan.
Strategi ini mempunyai beberapa kelebihan:
Secara keseluruhannya, strategi ini dapat menguruskan kedudukan dengan berkesan melalui mekanisme hentian yang mudah, yang merupakan strategi Pengurusan Risiko yang tipikal.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Untuk risiko-risiko ini, boleh dioptimumkan dengan cara seperti menyesuaikan kitaran pengiraan, mengurangkan lebar titik slippage dengan sewajarnya, dan lain-lain, untuk membuat penyetempatan garis henti lebih munasabah.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi perdagangan ini mewujudkan pengurusan dinamik Positions melalui kaedah penghentian kerugian yang mudah. Strategi ini mudah difahami dan dilaksanakan, dapat mengawal kerugian tunggal dengan berkesan. Kami menganalisis kelebihan strategi, kemungkinan risiko dan arah pengoptimuman seterusnya.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", 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")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)
//Levels
max = highest(high, length)
min = lowest(low, length)
//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)
//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)
if trailing > 0 and size <= 0
strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)