Strategi Pembalikan Bawah Multi Timeframe

Penulis:ChaoZhang, Tarikh: 2023-10-18 12:27:29
Tag:

img

Ringkasan

Strategi ini menggabungkan beberapa penunjuk corak bawah untuk mengenal pasti peluang pembalikan utama, mengamalkan trend mengikuti strategi stop loss untuk menyasarkan keuntungan melebihi stop loss.

Prinsip

Strategi ini terutamanya menggunakan penunjuk berikut untuk menentukan pembalikan bawah:

  1. Penunjuk Sensitiviti Bawah (Noros BottomSensitivity): Mengesan corak bawah tertentu pada carta candlestick.

  2. Indeks Kepastian Volition (CVI): Menentukan perubahan sentimen bullish/bearish.

  3. Isyarat Siklus Akhir (UCS): Mengesan oversold di bawah purata bergerak.

  4. Indeks Kekuatan Relatif (RSI): Mengenal pasti keadaan oversold.

  5. Gabungan corak: Termasuk candlestick, pin bar dan corak bawah yang lain.

Strategi ini menggabungkan beberapa penunjuk bawah, menghasilkan isyarat beli apabila bilangan corak bawah memenuhi tetapan parameter. Untuk menapis pecah palsu, RSI juga digunakan untuk mencetuskan beli hanya dalam keadaan oversold.

Pengguna boleh menyesuaikan penggunaan dan parameter setiap penunjuk bawah, memberikan fleksibiliti yang tinggi.

Kelebihan

  • Keakuratan yang lebih baik menggunakan pelbagai penunjuk

  • Parameter yang boleh disesuaikan sesuai dengan produk yang berbeza

  • Penapis SMA menghalang pembelian atas

  • Lilin merah pilihan hanya mengurangkan risiko

  • Isyarat membolehkan pemantauan masa nyata

Risiko

  • Pelbagai penunjuk mungkin terlepas bahagian bawah

  • corak bawah tidak selalu berbalik

  • Perlu menonton jika jumlah menyokong pembalikan

Peningkatan

  • Mengoptimumkan parameter untuk produk yang berbeza

  • Tambah saiz kedudukan kepada asas kos yang lebih rendah

  • Melaksanakan stop loss untuk mengunci keuntungan

Ringkasan

Strategi ini secara berkesan mengenal pasti bahagian bawah dengan pelbagai penunjuk, mengawal risiko dengan trend selepas stop loss. Tetapi sokongan jumlah memerlukan pemantauan. Pengguna boleh mengoptimumkan parameter mengikut ciri produk.


/*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"}]
*/

// the original indicator is Noro's BottomSensivity v0.6
//@version=4
strategy("Noro's BottomSensivity v0.6 strategy + rsi + Alarm", shorttitle="Bottom 0.6 StRsiAlarm", overlay=true)

overSold = input(35)
overBought = input(70)
botsens = input(defval = 3, minval = 1, maxval = 4, title = "Bottom-Sensivity")
smalen = input(defval = 25, minval = 20, maxval = 200, title = "SMA Length")
bars = input(defval = 3, minval = 2, maxval = 4, title = "Bars of Locomotive")
useloc = input(true, title = "Use bottom-pattern Locomotive?")
usepin = input(true, title = "Use bottom-pattern Pin-bar?")
usecvi = input(true, title = "Use bottom-indicator CVI?")
useucs = input(true, title = "Use bottom-indicator UCS?")
usevix = input(true, title = "Use bottom-indicator WVF?")
usersi = input(true, title = "Use bottom-indicator RSI?")
usered = input(false, title = "Only red candles?")
usesma = input(true, title = "Use SMA Filter?")
showsma = input(false, title = "Show SMA Filter?")

//SMA Filter
sma = sma(close, smalen)
colsma = showsma == true ? red : na
plot(sma, color = colsma)

//VixFix method
//Start of ChrisMoody's code
pd = 22
bbl = 20
mult = 2
lb = 50
ph = .85
pl = 1.01
hp = false
sd = false
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl
//End of ChrisMoody's code

//Locomotive mmethod
bar = close > open ? 1 : close < open ? -1 : 0
locob = bar == 1 and bar[1] == -1 and bar[2] == -1 and (bar[3] == -1 or bars < 3) and (bar[4] == -1 or bars < 4) ? 1 : 0

//PIN BAR
body = abs(close - open)
upshadow = open > close? (high - open) : (high - close)
downshadow = open > close ? (close - low) : (open - low)
pinbar = open[1] > close[1] ? (body[1] > body ? (downshadow > 0.5 * body ? (downshadow > 2 * upshadow ? 1 : 0 ) : 0 ) : 0 ) : 0

//CVI method
//Start of LazyBear's code
ValC=sma(hl2, 3)
bull=-.51
bear=.43
vol=sma(atr(3), 3)
cvi = (close-ValC) / (vol*sqrt(3))
cb= cvi <= bull ? green : cvi >=bear ? red : cvi > bull ? blue : cvi < bear ? blue : na
bull1 = cvi <= bull
bear1 = cvi >= bear
bull2 = bull1[1] and not bull1
bear2 = bear1[1] and not bear1
//End of LazyBear's code

//UCS method
//Start of UCS's code
ll = lowest(low, 5)
hh = highest(high, 5)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ema(ema(rdiff,3),3)
avgdiff = ema(ema(diff,3),3)
mom = ((close - close[3])/close[3])*1000
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ema(SMI,3)
ucslong = SMI < -35  and mom > 0 and mom[1] < 0 ? 1 : 0
//End of UCS's code

//RSI method
//Chris Moody's code
up = rma(max(change(close), 0), 2)
down = rma(-min(change(close), 0), 2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsib = rsi < 10 ? 1 : 0
//Chris Moody's code

//sum
locobot = useloc == false ? 0 : locob
vixfixbot = usevix == false ? 0 : wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
cvibot = usecvi == false ? 0 : bull2 == true ? 1 : 0
ucsbot = useucs == false ? 0 : ucslong == 1 ? 1 : 0
rsibot = usersi == false ? 0 : rsib
pinbot = usepin == false ? 0 : pinbar
score = vixfixbot + locobot + cvibot + ucsbot + rsibot + pinbot

//arrows
bottom = usered == false ? usesma == false ? score >= botsens ? 1 : 0 : high < sma and score >= botsens ? 1 : 0 : usesma == false ? score >= botsens and close < open ? 1 : 0 : high < sma and score >= botsens and close < open ? 1 : 0
plotarrow(bottom == 1 ? 1 : na, title="Buy arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
data = bottom == 1
plotchar(data, char=" ", text="BUY!", location=location.belowbar, color=green, size=size.small)


//Market buy and exit
strategy.entry("BUY!", strategy.long, when =(bottom == 1) and(rsi(close,14)<overSold))
strategy.close("BUY!", when = (crossunder(rsi(close,14), overBought)))
alarm = bottom == 1 and(rsi(close,14)<overSold)
alertcondition(alarm == 1,title="BUY+RSI",message="BUY+RSI")

Lebih lanjut