Strategi Pembalikan Bawah Multi-Kerangka Waktu


Tanggal Pembuatan: 2023-10-18 12:27:29 Akhirnya memodifikasi: 2023-10-18 12:27:29
menyalin: 0 Jumlah klik: 642
1
fokus pada
1617
Pengikut

Strategi Pembalikan Bawah Multi-Kerangka Waktu

Ringkasan

Strategi ini menggunakan kombinasi dari beberapa indikator bentuk dasar untuk mengidentifikasi waktu reversal yang signifikan, mengambil strategi tracking trend untuk menghentikan kerugian, dengan tujuan untuk mendapatkan keuntungan lebih dari stop loss.

Prinsip

Strategi ini didasarkan pada beberapa indikator berikut untuk menilai reversal dasar:

  1. Noro’s BottomSensivity: menentukan apakah garis K menunjukkan bentuk dasar tertentu.

  2. Indeks Keinginan untuk Kepastian (CVI): menilai psikologis pluralitas menghadapi transformasi.

  3. Indikator Terakhir (UCS): menilai kondisi di mana overfall keluar dari garis rata-rata.

  4. Indeks RSI: untuk menilai oversold.

  5. Kombinasi bentuk: termasuk bentuk dasar yang beragam seperti kerucut, paku, dll.

Strategi ini menggunakan kombinasi dari beberapa indikator dasar, dan menghasilkan sinyal beli ketika jumlah bentuk dasar yang ditetapkan oleh parameter strategi terpenuhi. Strategi ini juga menambahkan penilaian indikator RSI untuk memfilter false breakout, dan hanya akan memicu pembelian jika oversold.

Pengguna dapat mengkonfigurasi penggunaan dan parameter masing-masing indikator penilaian dasar, yang memungkinkan fleksibilitas yang tinggi. Pada saat yang sama, strategi menambahkan penyaringan rata-rata SMA, untuk menghindari melakukan lebih banyak di bawah tren.

Keunggulan

  • Menggunakan berbagai indikator untuk meningkatkan kepastian

  • Parameter indikator yang dapat disesuaikan untuk varietas yang berbeda

  • SMA berfilter rata, menghindari overtaking

  • Dapat dikonfigurasi hanya untuk jalur K merah, mengurangi risiko

  • Alarm pop-up, pemantauan langsung

Risiko

  • Pertimbangan kombinasi multi-indikator mungkin melewatkan bagian bawah

  • Bottomline tidak selalu berbalik

  • Perhatikan apakah volume transaksi dapat mendukung pembalikan.

Arah optimasi

  • Mengoptimalkan konfigurasi parameter indikator, menyesuaikan untuk varietas yang berbeda

  • Meningkatkan manajemen posisi, menurunkan harga biaya melalui penambahan posisi

  • Meningkatkan strategi stop loss dan melacak trend stop loss

Meringkaskan

Strategi ini memanfaatkan penilaian multi-indikator untuk meningkatkan akurasi identifikasi dasar, dan mengontrol risiko secara efektif dengan melacak tren untuk menghentikan kerugian dan mengunci keuntungan. Namun, tetap perlu memperhatikan apakah volume perdagangan dapat mendukung kenaikan tren reversal. Pengguna dapat mengoptimalkan parameter berdasarkan karakteristik varietas untuk menyesuaikan diri dengan lingkungan pasar yang berbeda.

Kode Sumber Strategi
/*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")