
Strategi ini pertama-tama digabungkan dengan indikator harga VFI dan moving average untuk membangun penilaian tren, kemudian digabungkan dengan indikator Bollinger Bands untuk menilai reversal, untuk mencapai kombinasi organik antara perdagangan tren dan perdagangan goyangan.
Strategi ini terdiri dari beberapa bagian utama:
Indikator VFI menilai tren. Menggabungkan tingkat perubahan logaritma dan perubahan volume transaksi untuk menilai tren harga, untuk mencapai pencocokan harga yang wajar.
Indikator EMA membedakan arah tren. Menghitung rasio perbedaan antara garis 20 dan garis 50 untuk menentukan arah tren garis tengah dan panjang.
Indikator Blink Band menilai kebalikan. Blink Band berupa rata-rata bergerak sederhana 20 hari di tengah, dan bandwidthnya 1,5 kali standar di tengah.
Indikator VFI menilai kemungkinan terbalik. Nilai VFI mendekati batas atas dan bawah (,20) yang dianggap kemungkinan besar terbalik.
Dalam kondisi yang memenuhi periode waktu perdagangan, ketika harga menembus Bollinger Bands ke jalur, dan VFI, EMA indikator defisit adalah sama dengan bullish, melakukan lebih banyak; ketika harga jatuh Bollinger Bands ke jalur bawah, atau VFI mencapai suatu titik terendah, posisi yang lebih rendah.
Pengenalan indikator VFI membuat pencocokan harga-kuantitas menjadi lebih rasional dan menghindari harga yang mengikuti secara buta.
Pengadilan EMA dan VFI membuat penilaian tren lebih stabil dan dapat diandalkan
Kombinasi Brinks dengan penghakiman reversal dari indikator VFI membuat strategi lebih cocok untuk berfluktuasi dua arah di pasar.
Indikator harga tidak dapat sepenuhnya menghindari risiko terobosan palsu.
EMA memiliki keterlambatan dan tidak dapat bereaksi terhadap perubahan jangka pendek.
Tidak tepatnya pengaturan parameter BRI dapat menyebabkan risiko perdagangan yang sering atau captured market.
Solusi untuk menghadapi risiko:
Menggabungkan lebih banyak indikator untuk menilai tren, menghindari ketergantungan pada satu indikator saja.
Parameter EMA tidak boleh terlalu besar atau terlalu kecil, dan harus disesuaikan dengan parameter tersebut.
Pengujian dampak perubahan parameter Brin pada strategi dalam berbagai situasi pasar.
Terus mengoptimalkan parameter VFI agar lebih sensitif.
Menambahkan penilaian terobosan berdasarkan saluran harga atau indikator Envelopes.
Uji pengenalan lebih banyak indikator harga, seperti OBV, PVT, dll.
Memperkenalkan pembelajaran mesin dan teknologi AI untuk mengoptimalkan parameter secara dinamis.
Strategi ini secara komprehensif mempertimbangkan penilaian tren dan penilaian reversal, menggunakan VFI, EMA, dan indikator Brin, untuk menangkap fluktuasi dua arah pasar. Langkah selanjutnya adalah untuk terus mengoptimalkan pengaturan parameter, memperkaya dasar penilaian, memperluas ruang lingkup aplikasi, dan meningkatkan profitabilitas strategi yang stabil.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © beststockalert
//@version=4
strategy(title="Super Bollinger Band Breakout", shorttitle = "Super BB-BO", overlay=true)
source = close
length = input(130, title="VFI length")
coef = input(0.2)
vcoef = input(2.5, title="Max. vol. cutoff")
signalLength=input(5)
// session
pre = input( type=input.session, defval="0400-0935")
trade_session = input( type=input.session, defval="0945-1700")
use_trade_session = true
isinsession = use_trade_session ? not na(time('1', trade_session)) : true
is_newbar(sess) =>
t = time("D", sess)
not na(t) and (na(t[1]) or t > t[1])
is_session(sess) =>
not na(time(timeframe.period, sess))
preNew = is_newbar(pre)
preSession = is_session(pre)
float preLow = na
preLow := preSession ? preNew ? low : min(preLow[1], low) : preLow[1]
float preHigh = na
preHigh := preSession ? preNew ? high : max(preHigh[1], high) : preHigh[1]
// vfi 9lazybear
ma(x,y) => 0 ? sma(x,y) : x
typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coef * vinter * close
vave = sma( volume, length )[1]
vmax = vave * vcoef
vc = iff(volume < vmax, volume, vmax) //min( volume, vmax )
mf = typical - typical[1]
vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) )
vfi = ma(sum( vcp , length )/vave, 3)
vfima=ema( vfi, signalLength )
//ema diff
ema20 = ema(close,20)
ema50 = ema(close,50)
diff = (ema20-ema50)*100/ema20
ediff = ema(diff,20)
//
basis = sma(source, 20)
dev = 1.5 * stdev(source, 20)
upper = basis + dev
lower = basis - dev
ema9 = ema(source, 9)
if ( ((crossover(source, upper) and diff>ediff and diff>0) or (close>upper and (vfi >0 or vfima>0 or ediff>0.05) and (vfi<14 or vfima<14)) ))
strategy.entry("Long", strategy.long)
if (crossunder(source, lower) or vfi>19 or vfima>19 or diff<(ediff+0.01) )
strategy.close("Long")