Trend Mengikuti Strategi Dagangan Jangka Pendek


Tarikh penciptaan: 2023-11-16 11:11:32 Akhirnya diubah suai: 2023-11-16 11:11:32
Salin: 0 Bilangan klik: 667
1
fokus pada
1617
Pengikut

Trend Mengikuti Strategi Dagangan Jangka Pendek

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan garis pendek berdasarkan beberapa indikator untuk menilai trend. Strategi ini menggunakan 8 indikator termasuk WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI dan WTO untuk menentukan arah trend dan membuat keputusan membeli dan menjual.

Prinsip Strategi

Strategi ini mula mengira dan menilai arah trend dalam lapan indikator WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI dan WTO.

Penunjuk WOW adalah berdasarkan kedudukan entiti dalam harga untuk menilai trend kosong. Jika kedudukan entiti hampir ke arah atas, ia adalah bullish; jika ia dekat ke arah bawah, ia adalah bearish.

Indeks BMA menilai trend berdasarkan hubungan keterlaluan SMA, jika harga penutupan di SMA melepasi harga bukaan SMA sebagai bullish, turun menjadi bearish.

Indikator BarColor adalah berdasarkan warna garis K untuk menilai trend, berturut-turut beberapa garisan positif untuk bullish, garisan negatif untuk bearish.

Indikator SuperTrend menilai trend harga berdasarkan julat turun naik purata, dengan harga di atas rel naik dan di bawah rel turun.

Di dalam penunjuk DI, trend dikira berdasarkan perbandingan besar-besaran pergerakan udara, di mana pergerakan udara lebih besar daripada pergerakan udara adalah bullish dan sebaliknya adalah bearish.

Indeks TTS menilai trend kosong berdasarkan hubungan kedudukan harga dengan garis purata.

Indeks RSI menilai arah trend berdasarkan kedudukan indikator yang kuat berbanding yang lemah.

Indikator WTO menilai arah trend berdasarkan kebolehan indikator turun naik.

Kemudian, strategi ini akan mengkaji jumlah bullish dalam lapan indikator dan dengan itu memetakan garis sokongan bullish SILA dan garis rintangan bullish. Semakin banyak garis sokongan dan rintangan, semakin kuat isyarat trend.

Apabila beberapa petunjuk melambung, jika harga penutupan berada di atas garis sokongan tahap terendah, ia akan menghasilkan isyarat beli; apabila beberapa petunjuk melambung, jika harga penutupan berada di bawah garis rintangan tahap terendah, ia akan menghasilkan isyarat jual.

Selain itu, strategi ini juga menggunakan bentuk K untuk menilai peluang untuk penyesuaian jangka pendek, mencari titik masuk yang lebih menguntungkan apabila trend berbalik.

Kelebihan Strategik

  1. Mengintegrasikan pelbagai trend penilaian dan meningkatkan ketepatan penilaian

Strategi ini tidak bergantung pada satu indikator, tetapi menggunakan 8 indikator penilaian trend yang biasa digunakan secara bersepadu untuk menilai trend secara pelbagai arah, yang dapat meningkatkan ketepatan dan kebolehpercayaan penilaian.

  1. Sistem SILA memetakan rintangan sokongan bertingkat, mengenal pasti isyarat trend yang kuat

Strategi ini adalah berdasarkan pada beberapa petunjuk tanda-tanda bullish dan bearish, menggunakan sistem SILA untuk memetakan beberapa tahap sokongan dan garis rintangan. Semakin banyak garis menunjukkan semakin kuat isyarat trend. Ini dapat membantu peniaga untuk lebih mengenali kekuatan isyarat.

  1. Mencari peluang untuk dipanggil balik dengan menggunakan K-Line

Strategi ini bukan sahaja menilai arah berdasarkan petunjuk trend, tetapi juga menggabungkan bentuk garis K untuk mencari peluang untuk penyesuaian jangka pendek, memasuki titik perubahan trend, untuk mendapatkan tempat masuk yang lebih baik.

Risiko Strategik

  1. Mungkin terdapat perbezaan di antara pelbagai petunjuk

Strategi ini menggunakan beberapa petunjuk, yang mana dalam beberapa kes mungkin terdapat perbezaan dalam penilaian, yang memerlukan penimbang sendiri oleh peniaga, yang meningkatkan kesukaran membuat keputusan.

  1. Tetapan parameter penunjuk mungkin perlu dioptimumkan

Banyak parameter dalam strategi ini menggunakan parameter lalai, dan parameter mungkin perlu dioptimumkan untuk mendapatkan kesan terbaik dalam aplikasi sebenar.

  1. Risiko Sistemik Perlu Dipertimbangkan

Sekiranya berlaku peristiwa Black Swan yang besar, risiko sistemik akan menyebabkan indikator teknikal normal tidak berfungsi, dan perlu berhati-hati dalam menilai risiko sistemik pasaran.

  1. Risiko penarikan balik

Pengunduran dagangan mengikut trend mungkin lebih besar pada tahap pengembangan, dan perlu berhati-hati untuk mengawal saiz dagangan tunggal untuk mengehadkan pengunduran.

Arah pengoptimuman strategi

  1. Optimasi ujian parameter penunjuk

Parameter untuk setiap petunjuk seperti panjang kitaran, saiz nilai dan sebagainya boleh dioptimumkan dengan kaedah yang lebih sistematik untuk mencari kombinasi parameter yang terbaik.

  1. Peningkatan kawalan kerugian

Anda boleh pertimbangkan untuk menambah stop loss bergerak atau stop loss peratusan untuk mengawal penarikan balik.

  1. Indeks Kuantiti Gabungan

Indikator kuantitatif seperti MAVP, OBV dan lain-lain boleh diperkenalkan dalam kombinasi dengan indikator trend untuk meningkatkan ketepatan keputusan taktikal.

  1. Optimumkan pengurusan kedudukan

Anda boleh mengkaji peratusan pegangan pada peringkat pasaran yang berbeza untuk meningkatkan kedudukan apabila trend lebih jelas.

ringkaskan

Strategi Overall adalah strategi perdagangan garis pendek untuk trend pengesanan pelbagai indikator. Ia menggunakan pelbagai indikator untuk menentukan arah trend, menggunakan sistem SILA untuk mengenal pasti kekuatan isyarat, dan dibantu dengan pengoptimuman masuk dalam bentuk garis K. Strategi ini dapat meningkatkan ketepatan penghakiman, tetapi perlu berhati-hati dengan risiko perbezaan antara indikator yang berbeza.

Kod sumber strategi
/*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)