
Strategi Sunshine Supertrend adalah strategi trend-tracking berdasarkan ATR dan SuperTrend. Ia boleh meramalkan perubahan trend dengan tepat dan sangat sesuai untuk digunakan sebagai penunjuk masa.
Strategi ini menggunakan indikator SuperTrend untuk menentukan arah trend semasa. Apabila indikator SuperTrend berubah arah, kami berpendapat bahawa kemungkinan pembalikan trend telah berlaku. Di samping itu, strategi ini juga menggunakan arah entiti K-baris untuk membuat penilaian tambahan.
Secara khusus, strategi menghasilkan isyarat perdagangan berdasarkan logik berikut:
Strategi Supertrend Sunshine adalah strategi yang cekap untuk menentukan pembalikan trend berdasarkan indikator SuperTrend. Ia menggabungkan arah entiti K-Line untuk membuat penilaian tambahan, yang dapat menyaring isyarat yang tidak berkesan dengan berkesan, meningkatkan kualiti isyarat. Strategi ini mudah dikendalikan, kuat beradaptasi, dan boleh digunakan secara meluas untuk pelbagai varieti dan tempoh masa.
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Sunny Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
shor= close > open and close[1] > open[1] and close[2] > open[2]
lon = open > close and open[1] > close[1] and open[2] > close[2]
tt= ta.change(direction) < 0
ss= ta.change(direction) > 0
long= tt
longexit = lon or ss
short= ss
shortexit = shor or tt
longPosMem = false
longexitPosMem = false
shortPosMem = false
shortexitPosMem = false
longPosMem := long ? true : short ? false : longPosMem[1]
longexitPosMem := longexit ? true : shortexit ? false : longexitPosMem[1]
shortPosMem := short ? true : long ? false : shortPosMem[1]
shortexitPosMem := shortexit ? true : longexit ? false : shortexitPosMem[1]
longy = long and not(longPosMem[1])
longexity = longexit and not(longexitPosMem[1])
shorty = short and not(shortPosMem[1])
shortexity = shortexit and not(shortexitPosMem[1])
//Use this to customize the look of the arrows to suit your needs.
plotshape(longy, location=location.abovebar, color=color.green, style=shape.arrowup, text="Buy")
plotshape(longexity, location=location.top, color=color.green, style=shape.xcross, text="Buy exit")
plotshape(shorty, location=location.belowbar, color=color.red, style=shape.arrowdown, text="Sell")
plotshape(shortexity, location=location.bottom, color=color.red, style=shape.xcross, text="Sell exit")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
// STEP 1:
// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month",
defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year",
defval=2021, minval=1800, maxval=2100)
endDate = input.int(title="End Date",
defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month",
defval=2, minval=1, maxval=12)
endYear = input.int(title="End Year",
defval=2021, minval=1800, maxval=2100)
// STEP 2:
// Look if the close time of the current bar
// falls inside the date range
inDateRange = true
// STEP 3:
// Submit entry orders, but only when bar is inside date range
if (inDateRange and longy)
strategy.entry("enter long",strategy.long,when= longy)
strategy.close("long",when=longexity)
if (inDateRange and shorty)
strategy.entry("enter short",strategy.short,when = shorty)
strategy.close("short", when=shortexity)