
Strategi ini adalah strategi pengembalian nilai rata-rata berdasarkan Bollinger Bands dan intraday strength index. Strategi ini menggunakan harga untuk menembus Bollinger Bands dan turun, dan menggabungkan volume perdagangan dengan volume perdagangan untuk menentukan waktu masuk. Keuntungan dari strategi ini meliputi: memanfaatkan karakteristik pengembalian rata-rata harga, dan menggabungkan indikator energi kuantitatif untuk memfilter sinyal.
Strategi ini pertama-tama menghitung lintasan tengah, lintasan atas, dan lintasan bawah. Lintasan tengah adalah rata-rata bergerak sederhana atau rata-rata bergerak indeks dari harga penutupan. Lintasan atas dan bawah dibangun dengan menghitung selisih standar, menambahkan dua kali selisih standar pengurangan di lintasan tengah.
Sebagai indikator penilaian tambahan, strategi ini memperkenalkan indeks kekuatan harian. Indeks ini menggabungkan informasi harga dan informasi volume transaksi. Ketika indeks positif, itu menunjukkan peningkatan kekuatan beli, sebagai sinyal overstock.
Dalam hal membuka posisi, strategi membutuhkan harga untuk menembus Bollinger Bands ke bawah, dan indikator penilaian indeks kekuatan intraday. Dalam hal stop loss, strategi mengambil waktu stop loss, dan jika tidak menguntungkan setelah melewati periode tertentu, pilih stop loss untuk keluar.
Keuntungan terbesar dari strategi ini adalah memanfaatkan karakteristik pengembalian rata-rata harga untuk mendapatkan keuntungan. Ketika harga mengalami penyimpangan besar, berdasarkan hukum statistik, probabilitas harga untuk kembali ke sumbu tengah rata-rata lebih besar, yang memberikan dasar teoritis untuk operasi strategi.
Kelebihan lain adalah bahwa strategi ini menambahkan indikator volume transaksi dan indeks intensitas dalam sehari untuk memfilter sinyal harga. Volume transaksi dapat membuktikan efektivitas sinyal harga. Ini menghindari sinyal yang salah dalam beberapa kasus ketika volume transaksi tidak mencukupi karena harga yang sangat bergoyang.
Meskipun strategi ini bergantung pada probabilitas bahwa harga akan kembali ke rata-rata untuk mendapatkan keuntungan, pergerakan acak harga pasar juga dapat menyebabkan stop loss yang dipicu, sehingga kerugian. Ini adalah risiko yang umumnya dihadapi strategi rata-rata kembali.
Risiko utama lainnya adalah bahwa harga kembali ke nilai rata-rata sendiri adalah proses siklus waktu yang panjang. Bagi investor, dana mungkin terkurung untuk sementara waktu. Risiko waktu ini dapat menyebabkan investor kehilangan peluang investasi lain yang lebih baik.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Optimalkan parameter Brin, siklus penyesuaian, indikator standar deviasi untuk menyesuaikan diri dengan lingkungan berfluktuasi di pasar yang berbeda
Cobalah jenis rata-rata bergerak lainnya, seperti rata-rata bergerak linear untuk meningkatkan kelancaran
Mencoba jenis lain dari indikator volume transaksi untuk mencari sinyal konfirmasi harga yang lebih baik
Menambahkan strategi stop loss untuk mengontrol kerugian maksimum dari setiap order
Strategi ini secara keseluruhan adalah strategi kemunduran rata-rata yang khas. Bergantung pada probabilitas peristiwa untuk mendapatkan keuntungan, tetapi risikonya juga jelas. Dengan penyesuaian parameter, pengoptimalan indikator dapat memperoleh hasil yang lebih baik.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Bollinger Bands Strategy with Intraday Intensity Index
// by SparkyFlary
//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Bollinger Bands Strategy with Intraday Intensity Index", shorttitle="Bollinger Bands Strategy", overlay=true)
BBlength = input(20, title="Bollinger Bands length")
BBmaType = input("SMA", title="Bollinger Bands MA type", type=input.string, options=["SMA", "EMA"])
BBprice = input(close, title="source")
timeStop = input(10, title="Time-based stop length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
withIII = input(true, title="with Intraday Intensity Index?")
IIIlength = input(21, title="Intraday Intensity Index length")
//function for choosing moving averages
f_ma(type, src, len) =>
float result = 0
if type == "SMA"
result := sma(src, len)
if type == "EMA"
result := ema(src, len)
result
//Intraday Intensity Index
k1 = (2 * close - high - low) * volume
k2 = high != low ? high - low : 1
i = k1 / k2
iSum = sum(i, IIIlength)
//Bollinger Bands
BBbasis = f_ma(BBmaType, BBprice, BBlength)
BBdev = BBmult * stdev(BBprice, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
plot(BBupper, title="Bollinger Bands Upper Line")
plot(BBlower, title="Bollinger Bands Lower Line")
plot(BBbasis, title="Bollinger Bands Mid line", color=color.maroon)
//Strategy
buy = close[1]<BBlower[1] and close>BBlower and (withIII ? iSum>0 : 1)
sell = close>BBbasis or buy[timeStop] or (strategy.openprofit>0 and buy==0 and buy[1]==0 and buy[2]==0 and buy[3]==0)
short = close[1]>BBupper[1] and close<BBupper and (withIII ? iSum<0 : 1)
cover = close<BBbasis or short[timeStop] or (strategy.openprofit>0 and short==0 and short[1]==0 and short[2]==0 and short[3]==0)
strategy.entry(id="enter long", long=true, when=buy)
strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
strategy.close(id="enter short", comment="exit short", when=cover)