
Strategi ini adalah strategi perdagangan garis pendek yang didasarkan pada beberapa indikator untuk menilai tren. Strategi ini secara komprehensif menggunakan delapan indikator termasuk WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI, dan WTO untuk menilai arah tren dan dengan demikian membuat keputusan membeli dan menjual.
Strategi ini pertama-tama menghitung dan menilai arah tren dari delapan indikator WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI, dan WTO.
Indikator WOW menilai tren bullish berdasarkan posisi entitas dalam harga. Jika posisi entitas mendekati lintasan atas, itu adalah bullish; Jika mendekati lintasan bawah, itu adalah bearish.
Indikator BMA menilai tren berdasarkan hubungan overbought SMA, jika harga close out di SMA, harga open out di SMA adalah bullish, dan turun di bawahnya adalah bearish.
Indikator BarColor menilai tren berdasarkan warna garis K, dengan beberapa garis lurus berturut-turut menjadi bullish dan garis negatif berturut-turut menjadi bearish.
Indikator SuperTrend menilai tren harga berdasarkan rentang fluktuasi rata-rata, dengan harga di atas rel bullish dan di bawah rel bearish.
Indikator DI menilai tren berdasarkan rasio besar dan kecil dari dinamika overhead, dinamika overhead lebih besar dari dinamika overhead adalah bullish, sebaliknya adalah bearish.
Indikator TTS menilai tren bullish berdasarkan hubungan posisi harga dengan garis rata-rata.
Indikator RSI menilai arah tren berdasarkan posisi indikator yang relatif kuat.
Indikator WTO menilai arah tren berdasarkan banyaknya indikator volatilitas.
Strategi ini kemudian menghitung jumlah bullish dari 8 indikator tersebut dan dengan demikian memetakan SILA bullish support line dan resistance line. Semakin banyak jumlah support line dan resistance line, semakin kuat sinyal tren.
Ketika beberapa indikator bullish, sinyal beli dihasilkan jika harga close out berada di atas garis support level terendah; ketika beberapa indikator bearish, sinyal jual dihasilkan jika harga close out berada di bawah garis resistance level terendah.
Selain itu, strategi ini juga akan menggunakan bentuk garis K untuk menilai peluang untuk retracement jangka pendek, mencari titik masuk yang lebih menguntungkan ketika tren berbalik.
Strategi ini tidak bergantung pada satu indikator, tetapi menggunakan 8 indikator penilaian tren yang umum digunakan secara terpadu, untuk menilai tren secara multi-dimensi, yang dapat meningkatkan akurasi dan keandalan penilaian.
Strategi ini didasarkan pada sinyal bullish-bullish dari beberapa indikator, dengan menggunakan sistem SILA untuk memetakan beberapa tingkatan garis dukungan dan garis perlawanan. Semakin banyak garis menunjukkan semakin kuat sinyal tren. Ini dapat membantu pedagang untuk lebih mengidentifikasi kekuatan sinyal.
Strategi ini tidak hanya didasarkan pada arah indikator tren, tetapi juga menggabungkan bentuk garis K untuk mencari kesempatan untuk membalikkan dalam waktu singkat, dan masuk ke titik terbalik tren untuk mendapatkan tempat yang lebih baik di titik masuk.
Strategi ini menggunakan beberapa indikator, di antara indikator-indikator ini mungkin terjadi perbedaan penilaian dalam beberapa kasus, yang memerlukan pedagang sendiri untuk melakukan pertimbangan, meningkatkan kesulitan dalam pengambilan keputusan.
Banyak indikator dalam strategi ini menggunakan parameter default, dan mungkin perlu mengoptimalkan parameter untuk mendapatkan hasil terbaik.
Jika terjadi peristiwa Black Swan yang signifikan, risiko sistemik dapat menyebabkan indikator teknis normal tidak berfungsi, dan perlu diperhatikan untuk menilai risiko sistemik pasar.
Penarikan perdagangan yang mengikuti tren mungkin lebih besar pada tahap ekspansi, perlu berhati-hati untuk mengendalikan skala transaksi tunggal untuk membatasi penarikan.
Dengan metode yang lebih sistematis, parameter dari setiap indikator seperti panjang siklus, ukuran angka, dan lain-lain dapat dioptimalkan untuk mencari kombinasi parameter yang optimal.
Anda dapat mempertimbangkan untuk menambahkan stop loss bergerak atau stop loss persentase untuk mengendalikan penarikan.
Indikator kuantitatif seperti MAVP, OBV dan indikator tren dapat dikombinasikan untuk meningkatkan akurasi keputusan taktik.
Rasio kepemilikan di berbagai tahap pasar dapat dipelajari untuk meningkatkan posisi ketika tren lebih jelas.
Strategi Overall adalah strategi perdagangan garis pendek yang melacak tren multi-indikator. Strategi ini mengintegrasikan penggunaan beberapa indikator untuk menentukan arah tren, menggunakan sistem SILA untuk mengidentifikasi kekuatan sinyal, dan dibantu dengan pengoptimalan masuk dengan bentuk K. Strategi ini dapat meningkatkan akurasi penilaian, tetapi perlu diperhatikan risiko perbedaan antara indikator yang berbeda.
/*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)