
Strategi hentian hentian pengesanan secara beransur-ansur dengan menyesuaikan garis hentian secara dinamik, mewujudkan kawalan risiko dan gabungan organik penyekatan hentian. Ia menggunakan julat pergerakan sebenar purata untuk mengira garis hentian, secara berkesan mengesan trend harga saham, mengurangkan hentian yang tidak perlu sambil melindungi keuntungan.
Strategi ini menggunakan pengiraan purata jangkauan pergerakan sebenar (ATR) sebagai asas untuk menghentikan kerugian dinamik. ATR dapat mencerminkan turun naik saham dengan berkesan. Strategi memasukkan parameter kitaran ATR, biasanya 10 hari.
Khususnya, strategi mengira nilai ATR untuk garis K semasa, kemudian kalikan dengan parameter penanda faktor penanda, untuk mendapatkan jarak henti. Jika harga saham lebih tinggi daripada harga henti, anda akan membuka lebih banyak kedudukan; jika harga saham lebih rendah daripada harga henti, anda akan membuka posisi kosong.
Strategi hentian pengesanan beransur-ansur mencapai keseimbangan yang berkesan antara kawalan risiko dan penyekatan hentian dengan menyesuaikan jarak hentian secara dinamik. Strategi ini mudah dikendalikan, sangat disesuaikan, dan sesuai untuk perdagangan automatik robot. Sudah tentu, pemilihan parameter yang munasabah dan kombinasi indikator masih memerlukan pengalaman manual. Dengan pengoptimuman lanjut, strategi ini diharapkan dapat memperoleh pulangan pelaburan yang lebih stabil.
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy, by Ho.J.", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)
// 백테스팅 시작일과 종료일 입력
startYear = input(2020, title="Start Year")
startMonth = input(1, title="Start Month")
startDay = input(1, title="Start Day")
endYear = input(9999, title="End Year")
endMonth = input(12, title="End Month")
endDay = input(31, title="End Day")
// 백테스팅 시간 범위 확인
backtestingTimeBool = (year >= startYear and month >= startMonth and dayofmonth >= startDay) and (year <= endYear and month <= endMonth and dayofmonth <= endDay)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
var bool longCondition = false
var bool shortCondition = false
if backtestingTimeBool
prevDirection = direction[1]
if direction < 0
longCondition := false
shortCondition := true
else if direction > 0
longCondition := true
shortCondition := false
if longCondition
strategy.entry("My Long Entry Id", strategy.long)
if shortCondition
strategy.entry("My Short Entry Id", strategy.short)
plot(strategy.equity, title="equity", color=color.rgb(255, 255, 255), linewidth=2, style=plot.style_area)