Strategi ini berdasarkan penunjuk SuperTrend dan menggunakan ATR untuk menetapkan garis stop loss secara dinamik untuk mendapat keuntungan daripada trend kuat di Ethereum.
Strategi ini menggunakan penunjuk trend klasik - penunjuk SuperTrend untuk menentukan arah trend.
Apabila harga berubah dari trend menaik ke trend menurun, buka kedudukan pendek. Apabila harga berubah dari trend menurun ke trend naik, buka kedudukan panjang.
Di samping itu, strategi ini menggunakan penunjuk ATR untuk menyesuaikan garis stop loss secara dinamik. Khususnya, kedudukan garis stop loss uptrend adalah purata tertinggi tertinggi dan terendah rendah dikurangkan ATR dikalikan dengan pekali; kedudukan garis stop loss downtrend adalah purata tertinggi tertinggi dan terendah rendah ditambah ATR dikalikan dengan pekali. Ini membolehkan menyesuaikan stop loss berdasarkan turun naik pasaran.
Selepas isyarat masuk dicetuskan, jika harga kembali di atas garis stop loss, berhenti dengan kerugian.
Ini adalah trend yang agak matang mengikut strategi dengan kelebihan berikut:
Terdapat juga beberapa risiko dengan strategi ini:
Untuk mengurangkan risiko di atas, pekali ATR boleh diselaraskan, atau menambah penapis dengan penunjuk lain.
Terdapat ruang untuk penambahbaikan lanjut:
Secara keseluruhan, ini adalah strategi trend yang matang dan boleh dipercayai. Ia menggunakan penunjuk SuperTrend untuk menentukan arah trend dan menyesuaikan stop loss dengan ATR untuk mengawal risiko sambil memperoleh keuntungan. Strategi ini berfungsi dengan baik untuk cryptocurrency turun naik tinggi seperti Ethereum. Pengoptimuman lanjut dapat memperluaskan aplikasinya di lebih banyak pasaran untuk prestasi yang lebih mantap.
/*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")