Strategi Super Trend V


Tanggal Pembuatan: 2023-10-18 12:35:53 Akhirnya memodifikasi: 2023-10-18 12:35:53
menyalin: 0 Jumlah klik: 877
1
fokus pada
1617
Pengikut

Strategi Super Trend V

Ringkasan

Strategi supertrend V adalah strategi perdagangan short line yang didasarkan pada moving average dan standar deviasi. Strategi ini menggunakan indikator Super Trend untuk menentukan arah tren harga, menggabungkan dukungan dan resistensi yang terbentuk dari moving average untuk masuk.

Prinsip Strategi

Strategi ini pertama-tama menghitung indikator Super Trend, indikator Super Trend menggunakan ATR dan hubungan harga untuk menentukan arah tren. Ketika harga lebih tinggi dari tren naik, itu adalah bullish, dan ketika harga lebih rendah dari tren turun, itu adalah bearish.

Kemudian menghitung harga bergerak rata-rata EMA dan pergerakan rata-rata EMA dari harga buka, ketika harga di atas melewati rata-rata bergerak dan di atas rata-rata harga buka untuk sinyal beli, ketika harga di bawah melewati rata-rata bergerak dan di bawah rata-rata harga buka untuk sinyal jual.

Kemudian menggunakan standar deviasi untuk menghitung naik dan turun dari saluran harga, dan melakukan pemrosesan yang halus, harga menembus standar deviasi naik adalah sinyal stop, harga menembus standar deviasi turun adalah sinyal stop.

Akhirnya, moving averages dari periode waktu yang berbeda digunakan untuk menentukan arah tren, yang dikombinasikan dengan indikator Super Trend untuk membentuk penilaian tren yang stabil.

Keunggulan Strategis

  • Menggunakan indikator Super Trend untuk menentukan arah tren harga, menghindari terbaliknya tren yang menyebabkan kerugian
  • Moving Average dan Opening Price membantu menentukan waktu masuk dan menghindari false breakout
  • Standar deviasi saluran memprediksi potensi dukungan dan resistensi harga, dan menetapkan harga stop loss
  • Periode waktu yang lebih banyak, yang dikombinasikan dengan penilaian arah tren, meningkatkan stabilitas

Risiko Strategis

  • Indikator Super Trend terlambat, mungkin kehilangan titik pergeseran tren
  • Rata-rata bergerak menghasilkan sinyal silang yang tertunda, waktu masuk tidak tepat
  • Jarak standar deviasi terlalu tetap untuk mencerminkan fluktuasi pasar secara real time
  • Pertimbangan dari beberapa periode waktu dapat saling bertentangan

Solusi untuk Mengatasi Risiko:

  • Parameter Super Trend yang disingkat untuk meningkatkan sensitivitas
  • Optimalkan siklus moving average, atau tambahkan indikator lain untuk penilaian masuk
  • Dinamiskan parameter channel standar deviasi agar jangkauan sesuai dengan pasar
  • Menentukan logika pertimbangan multi-siklus yang jelas dan menangani kemungkinan konflik

Arah optimasi strategi

  • Mengoptimalkan parameter Super Trend, mencari kombinasi parameter terbaik
  • Cobalah indikator lain yang dikombinasikan dengan Moving Average untuk menentukan kapan waktu masuk
  • Cobalah untuk secara dinamis menyesuaikan parameter standar deviasi saluran
  • Uji kombinasi periode yang berbeda untuk menemukan periode yang paling cocok
  • Mengoptimalkan strategi stop loss untuk meningkatkan ruang bagi strategi profit

Meringkaskan

Strategi supertrend V mengintegrasikan keunggulan indikator seperti tren, garis rata-rata, dan saluran standard deviasi, untuk mencapai arah tren yang stabil, memilih waktu masuk yang tepat, dan mengatur strategi perdagangan garis pendek untuk menghentikan stop loss di area harga. Dengan pengoptimalan parameter, pengoptimalan indikator, pengoptimalan stop loss, dan lain-lain, dapat meningkatkan stabilitas dan profitabilitas strategi. Logika yang kuat dan pemikiran yang ketat layak dipelajari dan diteliti.

Kode Sumber Strategi
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Super trend V Strategy version", overlay = true, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

v =  spreadvol + cum(spreadvol)
smooth = sma(v, v_len)
v_spread = stdev(v - smooth, window_len)
shadow = (v - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//
src = out
src1=open
src2=low
src3=high
tf =input(720)
len = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

c = ema(src, len)
plot(c,color=color.red)
o = ema(src1,len)
plot(o,color=color.blue)
//h = ema(src3,len)
//l=ema(src2,len)
//
col=c > o? color.lime : color.orange
vis = true
vl = c
ll = o
m1 = plot(vl, color=col, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=col, linewidth=2, transp=80)

fill(m1, m2,  color=col, transp=70)
//

vpt=ema(out,len)

// INPUTS //
st_mult   = input(1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = vpt - (st_mult * atr(st_period))
dn_lev = vpt + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( close, st_line) and close>o
sell=crossunder(close, st_line) and close<o
//plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny)
//plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny)
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon


//
multiplier = input(title="TP VWAP Deviation", type=input.float, defval=2, minval=1)
src5 = vwap
len5 = input(title="TP length", defval=150, minval=1)
offset = 0

calcSlope(src5, len5) =>
    sumX = 0.0
    sumY = 0.0
    sumXSqr = 0.0
    sumXY = 0.0
    for i = 1 to len5
        val = src5[len5-i]
        per = i + 1.0
        sumX := sumX + per
        sumY := sumY + val
        sumXSqr := sumXSqr + per * per
        sumXY := sumXY + val * per
        
        
    slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX)
    average = sumY / len5
    intercept = average - slope * sumX / len5 + slope
    [slope, average, intercept]

var float tmp = na
[s, a, i] = calcSlope(src5, len5)

vwap1=(i + s * (len5 - offset))
sdev = stdev(vwap, len5)
dev = multiplier * sdev
top=vwap1+dev
bott=vwap1-dev

//
z1 = vwap1 + dev
x1 = vwap1 - dev

low1 = crossover(close, x1)  
high1 = crossunder(close, z1) 

plotshape(low1, title="low", text="TP", color=color.red, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(high1, title="high", text="TP", color=color.green, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon



//
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

l = buy
s1 = sell
        
if l and testPeriod()
    strategy.entry("buy", strategy.long)
if s1 and testPeriod()
    strategy.entry("sell", strategy.short)