Tren Mengikuti Strategi Perdagangan Jangka Pendek

Penulis:ChaoZhang, Tanggal: 2023-11-16 11:11:32
Tag:

img

Gambaran umum

Strategi ini adalah strategi perdagangan jangka pendek yang mengidentifikasi tren berdasarkan beberapa indikator. Ini menggabungkan 8 indikator termasuk WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI dan WTO untuk menentukan arah tren dan membuat keputusan perdagangan yang sesuai.

Logika Strategi

Strategi ini pertama-tama menghitung dan menilai arah tren dari 8 indikator - WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI dan WTO.

Indikator WOW menilai tren bullish atau bearish berdasarkan lokasi tubuh.

Indikator BMA menilai tren dengan hubungan antara SMA terbuka dan dekat. SMA dekat melintasi SMA terbuka menunjukkan bullish sementara melintasi di bawah menunjukkan bearish.

Indikator BarColor menilai tren dengan warna lilin. Lilin kuning terus menerus menunjukkan bullish sementara lilin hitam menunjukkan bearish.

Indikator SuperTrend menilai tren berdasarkan lokasi harga versus kisaran rata-rata. Harga di atas band atas menunjukkan bullish sementara harga di bawah band bawah menunjukkan bearish.

Indikator DI menilai tren dengan hubungan antara gerakan arah positif dan negatif.

Indikator TTS menilai tren berdasarkan lokasi harga versus moving average.

Indikator RSI menilai arah tren berdasarkan tingkat indeks kekuatan relatif.

Indikator WTO menilai arah tren berdasarkan osilator tren gelombang.

Strategi kemudian menghitung jumlah sinyal bullish dari 8 indikator dan memetakan garis dukungan dan resistance SILA sesuai dengan itu.

Ketika beberapa indikator menunjukkan bullish, sinyal beli dihasilkan ketika close berada di atas garis support terendah. Ketika beberapa indikator menunjukkan bearish, sinyal jual dihasilkan ketika close berada di bawah garis resistance terendah.

Selain itu, strategi ini juga memanfaatkan pola candlestick untuk menemukan peluang mundur dan meningkatkan titik masuk.

Keuntungan dari Strategi

  1. Menggabungkan beberapa indikator meningkatkan akurasi

Strategi ini menggunakan delapan indikator tren umum untuk menentukan tren dari berbagai aspek, sehingga meningkatkan akurasi dan keandalan penilaian tren.

  1. Sistem SILA mengidentifikasi kekuatan sinyal

Garis support/resistance SILA mencerminkan jumlah sinyal bullish/bearish. Lebih banyak garis menunjukkan sinyal yang lebih kuat. Ini membantu pedagang untuk lebih mengevaluasi kekuatan sinyal perdagangan.

  1. Pola candlestick meningkatkan titik masuk

Strategi ini mencari peluang mundur berdasarkan pola candlestick untuk menemukan titik masuk yang lebih baik ketika tren berbalik.

Risiko dari Strategi

  1. Konflik potensial antara indikator

Beberapa indikator kadang-kadang dapat menghasilkan sinyal yang bertentangan, sehingga membuat pengambilan keputusan lebih sulit.

  1. Parameter mungkin memerlukan optimasi

Parameter default mungkin tidak optimal. Optimasi lebih lanjut mungkin diperlukan untuk mencapai hasil terbaik.

  1. Pertimbangkan risiko sistemik

Peristiwa angsa hitam dapat membatalkan sinyal teknis normal.

  1. Risiko penarikan

Mengikuti tren dapat mengakibatkan penarikan yang lebih besar selama koreksi pasar.

Peningkatan Strategi

  1. Mengoptimalkan parameter indikator

Secara sistematis menguji dan mengoptimalkan parameter seperti periode dan tingkat nilai untuk menemukan kombinasi parameter yang optimal.

  1. Tambahkan metode stop loss

Pertimbangkan untuk menambahkan stop loss bergerak atau persentase untuk mengendalikan penarikan.

  1. Masukkan indikator volume

Gabungkan indikator tren dengan indikator volume seperti MAVP dan OBV untuk meningkatkan keputusan taktis.

  1. Mengelola ukuran posisi

Penelitian ukuran posisi optimal untuk tahap pasar yang berbeda, dan ukuran ketika tren menjadi lebih jelas.

Kesimpulan

Singkatnya, ini adalah tren multi-indikator yang mengikuti strategi perdagangan jangka pendek. Ini menentukan arah tren menggunakan beberapa indikator dan mengidentifikasi kekuatan sinyal dengan sistem SILA, dilengkapi dengan pola candlestick untuk peningkatan entri. Strategi dapat meningkatkan akurasi tetapi risiko sinyal yang bertentangan harus dicatat. Peningkatan lebih lanjut dapat dilakukan melalui optimasi parameter, optimasi stop loss, penggabungan volume 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)

Lebih banyak