Strategi ini didasarkan pada indikator SuperTrend dan menggunakan ATR untuk secara dinamis mengatur garis stop loss untuk mendapatkan keuntungan dari tren kuat di Ethereum.
Strategi ini menggunakan indikator trend-mengikuti klasik - indikator SuperTrend untuk menentukan arah tren. indikator SuperTrend terdiri dari dua garis:
Ketika harga berubah dari uptrend ke downtrend, buka posisi short.
Selain itu, strategi ini menggunakan indikator ATR untuk menyesuaikan garis stop loss secara dinamis. Secara khusus, posisi garis stop loss uptrend adalah rata-rata tertinggi tertinggi dan terendah terendah dikurangi ATR dikalikan dengan koefisien; posisi garis stop loss downtrend adalah rata-rata tertinggi tertinggi dan terendah terendah ditambah ATR dikalikan dengan koefisien. Hal ini memungkinkan penyesuaian stop loss berdasarkan volatilitas pasar.
Setelah sinyal masuk dipicu, jika harga kembali di atas garis stop loss, stop out dengan kerugian.
Ini adalah tren yang relatif matang mengikuti strategi dengan keuntungan berikut:
Ada juga beberapa risiko dengan strategi ini:
Untuk mengurangi risiko di atas, koefisien ATR dapat disesuaikan, atau menambahkan filter dengan indikator lain.
Ada ruang untuk perbaikan lebih lanjut:
Secara keseluruhan ini adalah strategi trend berikut yang matang dan dapat diandalkan. Ini menggunakan indikator SuperTrend untuk menentukan arah tren dan menyesuaikan stop loss dengan ATR untuk mengontrol risiko sambil mendapatkan keuntungan. Strategi ini bekerja dengan baik untuk cryptocurrency volatilitas tinggi seperti Ethereum. Optimasi lebih lanjut dapat memperluas aplikasinya di lebih banyak pasar untuk kinerja yang lebih stabil.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SuperTrend Strategy", overlay=true, initial_capital=2e3, process_orders_on_close=true, commission_type=strategy.commission.percent, commission_value=0.1 ) length = input(title="ATR Period", type=input.integer, defval=21) mult = input(title="ATR Multiplier", type=input.float, step=.25, defval=6.2) wicks = input(title="Take Wicks into Account ?", type=input.bool, defval=false) useDate = input(title="Start from Specific Date ?", defval=false) yearStart = input(title="Start Year", defval=2019) monthStart = input(title="Start Month", minval=1, maxval=12, defval=1) dayStart = input(title="Start Day", minval=1, maxval=31, defval=1) startTime = timestamp(yearStart, monthStart, dayStart, 0, 0) startFrom = useDate ? time(timeframe.period) >= startTime : true atr = mult * ta.atr(length) longStop = hl2 - atr longStopPrev = nz(longStop[1], longStop) longStop := (wicks ? low[1] : close[1]) > longStopPrev ? math.max(longStop, longStopPrev) : longStop shortStop = hl2 + atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := (wicks ? high[1] : close[1]) < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and (wicks ? high : close) > shortStopPrev ? 1 : dir == 1 and (wicks ? low : close) < longStopPrev ? -1 : dir longColor = color.green shortColor = color.red plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor) plotshape(dir == 1 and dir[1] == -1 ? longStop : na, title="Long Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0) plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor) plotshape(dir == -1 and dir[1] == 1 ? shortStop : na, title="Short Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0) longCondition = dir[1] == -1 and dir == 1 if longCondition and startFrom strategy.entry("Long", strategy.long, stop=longStop) else strategy.cancel("Long") shortCondition = dir[1] == 1 and dir == -1 if shortCondition and startFrom strategy.entry("Short", strategy.short, stop=shortStop) else strategy.cancel("Short")