Strategi ini adalah strategi perdagangan jangka pendek yang mengenal pasti trend berdasarkan beberapa penunjuk. Ia menggabungkan 8 penunjuk termasuk WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI dan WTO untuk menentukan arah trend dan membuat keputusan perdagangan dengan sewajarnya.
Strategi ini mula-mula mengira dan menilai arah trend 8 penunjuk - WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI dan WTO.
Indikator WOW menilai trend menaik atau menurun berdasarkan lokasi badan.
Indikator BMA menilai trend dengan hubungan antara SMA terbuka dan dekat. SMA dekat melintasi di atas SMA Terbuka menunjukkan kenaikan sementara melintasi di bawah menunjukkan penurunan.
Penunjuk BarColor menilai trend dengan warna candelier. Lilin kuning berterusan menunjukkan bullish manakala lilin hitam menunjukkan bearish.
Indikator SuperTrend menilai trend berdasarkan lokasi harga berbanding julat purata. Harga di atas jalur atas menunjukkan kenaikan manakala harga di bawah jalur bawah menunjukkan penurunan.
Indikator DI menilai trend dengan hubungan antara pergerakan arah positif dan negatif.
Penunjuk TTS menilai trend berdasarkan lokasi harga berbanding purata bergerak.
Penunjuk RSI menilai arah trend berdasarkan tahap indeks kekuatan relatif.
Indikator WTO menilai arah trend berdasarkan pengayun trend gelombang.
Strategi kemudian mengira jumlah isyarat kenaikan dari 8 penunjuk dan memetakan garis sokongan dan rintangan SILA dengan sewajarnya.
Apabila pelbagai penunjuk menunjukkan kenaikan, isyarat beli dihasilkan apabila penutupan berada di atas garis sokongan terendah. Apabila pelbagai penunjuk menunjukkan penurunan, isyarat jual dihasilkan apabila penutupan berada di bawah garis rintangan terendah.
Di samping itu, strategi ini juga menggunakan corak lilin untuk mencari peluang menarik balik dan meningkatkan titik masuk.
Strategi ini menggunakan 8 penunjuk trend umum untuk menentukan trend dari pelbagai aspek, dengan itu meningkatkan ketepatan dan kebolehpercayaan penilaian trend.
Garis sokongan / rintangan SILA mencerminkan bilangan isyarat kenaikan / penurunan. Lebih banyak garis menunjukkan isyarat yang lebih kuat. Ini membantu peniaga untuk menilai lebih lanjut kekuatan isyarat perdagangan.
Strategi ini mencari peluang menarik balik berdasarkan corak candlestick untuk mencari titik masuk yang lebih baik apabila trend berbalik.
Banyak penunjuk kadangkala boleh menghasilkan isyarat yang bertentangan, menjadikan pengambilan keputusan lebih sukar.
Parameter lalai mungkin tidak optimum. Pengoptimuman lanjut mungkin diperlukan untuk mencapai hasil yang terbaik.
Peristiwa black swan boleh membatalkan isyarat teknikal biasa.
Mengikuti trend ini boleh mengakibatkan pengeluaran yang lebih besar semasa pembetulan pasaran.
Secara sistematik menguji dan mengoptimumkan parameter seperti tempoh dan tahap nilai untuk mencari kombinasi parameter yang optimum.
Pertimbangkan untuk menambah pergerakan atau peratusan stop loss untuk mengawal pengeluaran.
Gabungkan penunjuk trend dengan penunjuk jumlah seperti MAVP dan OBV untuk meningkatkan keputusan taktikal.
Penyelidikan saiz kedudukan yang optimum untuk peringkat pasaran yang berbeza, dan ukuran apabila trend menjadi lebih jelas.
Ringkasnya, ini adalah trend multi-penunjuk yang mengikuti strategi perdagangan jangka pendek. Ia menentukan arah trend menggunakan beberapa penunjuk dan mengenal pasti kekuatan isyarat dengan sistem SILA, ditambah dengan corak candlestick untuk peningkatan kemasukan. Strategi ini boleh meningkatkan ketepatan tetapi risiko isyarat yang bertentangan harus diperhatikan. Penambahbaikan lanjut boleh dibuat melalui pengoptimuman parameter, pengoptimuman kehilangan berhenti, penggabungan jumlah dll.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // (c) Noro //2017 //@version=2 strategy(title="Noro's SILA v1.6L Strategy", shorttitle="SILA v1.6L str", overlay=true) //settings sensup = input(5, title="Uptrend-sensivity", minval = -8, maxval = 8) sensdn = input(5, title="Downtrend-sensivity", minval = -8, maxval = 8) usewow = input(true, title="Use trend-indicator WOW?") usebma = input(true, title="Use trend-indicator BestMA?") usebc = input(true, title="Use trend-indicator BarColor?") usest = input(true, title="Use trend-indicator SuperTrend?") usedi = input(true, title="Use trend-indicator DI?") usetts = input(true, title="Use trend-indicator TTS?") usersi = input(true, title="Use trend-indicator RSI?") usewto = input(true, title="Use trend-indicator WTO?") dist = input(100, title="Distance SILA-lines", minval = 0, maxval = 100) usetl = input(true, title="Need SILA-lines?") usebgup = input(true, title="Need uptrend-background?") usebgdn = input(true, title="Need downtrend-background?") usealw = input(true, title="Need background always?") usearr = input(true, title="Need new-trend-arrows?") useloco = input(true, title="Need locomotive-arrows?") usemon = input(true, title="Need money?") //joke // WOW 1.0 method lasthigh = highest(close, 30) lastlow = lowest(close, 30) center = (lasthigh +lastlow) / 2 body = (open + close) / 2 trend1 = body > center ? 1 : body < center ? -1 : trend1[1] trend2 = center > center[1] ? 1 : center < center[1] ? -1 : trend2[1] WOWtrend = usewow == true ? trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : WOWtrend[1] : 0 // BestMA 1.0 method SMAOpen = sma(open, 30) SMAClose = sma(close, 30) BMAtrend = usebma == true ? SMAClose > SMAOpen ? 1 : SMAClose < SMAOpen ? -1 : BMAtrend[1] : 0 // BarColor 1.0 method color = close > open ? 1 : 0 score = color + color[1] + color[2] + color[3] + color[4] + color[5] + color[6] + color[7] BARtrend = usebc == true ? score > 5 ? 1 : score < 3 ? -1 : BARtrend[1] : 0 // SuperTrend mehtod Up = hl2 - (7 * atr(3)) Dn = hl2 + (7 * atr(3)) TrendUp = close[1] > TrendUp[1] ? max(Up, TrendUp[1]) : Up TrendDown = close[1] < TrendDown[1] ? min(Dn, TrendDown[1]) : Dn SUPtrend = usest == true ? close > TrendDown[1] ? 1: close < TrendUp[1]? -1 : SUPtrend[1] : 0 //DI method th = 20 TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/14) + TrueRange SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/14) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/14) + DirectionalMovementMinus DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DItrend = usedi == true ? DIPlus > DIMinus ? 1 : -1 : 0 //TTS method (Trend Trader Strategy) //Start of HPotter's code //Andrew Abraham' idea avgTR = wma(atr(1), 21) highestC = highest(21) lowestC = lowest(21) hiLimit = highestC[1]-(avgTR[1] * 3) loLimit = lowestC[1]+(avgTR[1] * 3) ret = iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) pos = iff(close > ret, 1, iff(close < ret, -1, nz(pos[1], 0))) //End of HPotter's code TTStrend = usetts == true ? pos == 1 ? 1 : pos == -1 ? -1 : TTStrend[1] : 0 //RSI method RSIMain = (rsi(close, 13) - 50) * 1.5 rt = iff(RSIMain > -10, 1, iff(RSIMain < 10, -1, nz(pos[1], 0))) RSItrend = usersi == true ? rt : 0 //WTO ("WaveTrend Oscilator") method by LazyBear //Start of LazyBear's code esa = ema(hlc3, 10) d = ema(abs(hlc3 - esa), 10) ci = (hlc3 - esa) / (0.015 * d) tci = ema(ci, 21) //End of LazyBear's code WTOtrend = usewto == true ? tci > 0 ? 1 : tci < 0 ? -1 : 0 : 0 //plots trends = usemon == true ? WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend: -1 * (WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend) pricehi = sma(high, 10) pricelo = sma(low, 10) per = usetl == 1 ? dist / 10000 : 0 color1 = usetl == true ? trends > 0 ? blue : na : na plot(pricelo * (1 - per), color=color1, linewidth=1, title="SILA-line") color2 = usetl == true ? trends > 1 ? blue : na : na plot(pricelo * (1 - 2 * per), color=color2, linewidth=1, title="SILA-line") color3 = usetl == true ? trends > 2 ? blue : na : na plot(pricelo * (1 - 3 * per), color=color3, linewidth=1, title="SILA-line") color4 = usetl == true ? trends > 3 ? blue : na : na plot(pricelo * (1 - 4 * per), color=color4, linewidth=1, title="SILA-line") color5 = usetl == true ? trends > 4 ? blue : na : na plot(pricelo * (1 - 5 * per), color=color5, linewidth=1, title="SILA-line") color6 = usetl == true ? trends > 5 ? blue : na : na plot(pricelo * (1 - 6 * per), color=color6, linewidth=1, title="SILA-line") color7 = usetl == true ? trends > 6 ? blue : na : na plot(pricelo * (1 - 7 * per), color=color7, linewidth=1, title="SILA-line") color8 = usetl == true ? trends > 7 ? blue : na : na plot(pricelo * (1 - 8 * per), color=color8, linewidth=1, title="SILA-line") color10 = usetl == true ? trends < 0 ? black : na : na plot(pricehi * (1 + per), color=color10, linewidth=1, title="SILA-line") color11 = usetl == true ? trends < -1 ? black : na : na plot(pricehi * (1 + 2 * per), color=color11, linewidth=1, title="SILA-line") color12 = usetl == true ? trends < -2 ? black : na : na plot(pricehi * (1 + 3 * per), color=color12, linewidth=1, title="SILA-line") color13 = usetl == true ? trends < -3 ? black : na : na plot(pricehi * (1 + 4 * per), color=color13, linewidth=1, title="SILA-line") color14 = usetl == true ? trends < -4 ? black : na : na plot(pricehi * (1 + 5 * per), color=color14, linewidth=1, title="SILA-line") color15 = usetl == true ? trends < -5 ? black : na : na plot(pricehi * (1 + 6 * per), color=color15, linewidth=1, title="SILA-line") color16 = usetl == true ? trends < -6 ? black : na : na plot(pricehi * (1 + 7 * per), color=color16, linewidth=1, title="SILA-line") color17 = usetl == true ? trends < -7 ? black : na : na plot(pricehi * (1 + 8 * per), color=color17, linewidth=1, title="SILA-line") //background col = usebgup == true and trends >= sensup ? 1 : usebgdn == true and trends <= (-1 * sensdn) ? -1 : usealw == true ? col[1] : 0 bgcolor = col == 1 ? lime : col == -1 ? red : na //bgcolor(bgcolor, transp=70) //arrows posi = trends >= sensup ? 1 : trends <= (-1 * sensdn) ? -1 : posi[1] arr = usearr == true ? posi == 1 and posi[1] < 1 ? 1 : posi == -1 and posi[1] > -1 ? -1 : na : na //plotarrow(arr == 1 ? 1 : na, title="UpArrow", colorup=blue, maxheight=60, minheight=50, transp=0) //plotarrow(arr == -1 ? -1 : na, title="DnArrow", colordown=blue, maxheight=60, minheight=50, transp=0) //locomotive bar = close > open ? 1 : close < open ? -1 : 0 locotop = bar == -1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 locobot = bar == 1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 entry = useloco == false ? 1 : posi == posi[1] ? (locotop == 1 and posi == -1) or (locobot == 1 and posi == 1) ? 1 : entry[1] : 0 //plotarrow(locobot == 1 and entry[1] == 0 and posi == 1 ? 1 : na, title="UpLocomotive", colorup=yellow, maxheight=60, minheight=50, transp=0) //plotarrow(locotop == 1 and entry[1] == 0 and posi == -1 ? -1 : na, title="DnLocomotive", colordown=yellow, maxheight=60, minheight=50, transp=0) longCondition = arr == 1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = arr == -1 if (shortCondition) strategy.entry("Short", strategy.short)