この指標は,標準期間のRSIインジケーターを32のオーバーセール制限,70のオーバー買い制限,14の期間 (これらの値はインジケーター設定のエントリと静止タブからオプションで変更できます) とボリンジャーバンドを組み合わせて作成されます. 2の標準偏差と20の期間を持つインジケーター.また,RSIオーバーセールは,価格が同時にBBと下限 (Low) (つまり32以下) 以下の上昇緑色の三角形であり,RSIオーバーセール (つまり70以上) が同時に価格がBBを超えて上昇し,上限 (Upper) は赤色下向きの三角形です.三角形によって示されています.これらのアラーム条件に条件が設定されています.ソースコードは,素朴な言語で記述され,初心者のための説明が視覚的に掲載されています.
バックテスト
/*backtest start: 2022-02-11 00:00:00 end: 2022-05-11 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 study(title="RSI & BB'de aynı anda Oversold Yakalama", shorttitle="RSI&BB OS", overlay=true) //RSI hesabı ile kaynak ve period seçimi için seçki kutusu ve değer giriş kutuları burada yapıldı rsiKaynagi = input(title="RSI Kaynagi", type=input.source, defval=close) rsiPeriodu = input(title="RSI Periodu", type=input.integer, defval=14) rsiDegeri = rsi(rsiKaynagi, rsiPeriodu) rsiTabanDegeri = input(title="RSI Taban Değerini gir", type=input.integer, defval=32) // defval: default value yani varsayılan değer rsiTavanDegeri = input(title="RSI Taban Değerini gir", type=input.integer, defval=70) // Bollinger Bandı hesabı ve kaynak ve period seçimi için seçki kutusu ve değer giriş kutuları burada yapıldı bbPeriodu = input(20, minval=1) bbKaynagi = input(close, title="Source") standartSapmaDegeri = input(2.0, minval=0.001, maxval=50, title="Standart Sapma") bandOrtasi = sma(bbKaynagi, bbPeriodu) sapmaHesabi = standartSapmaDegeri * stdev(bbKaynagi, bbPeriodu) bbUstSiniri = bandOrtasi + sapmaHesabi bbAltsiniri = bandOrtasi - sapmaHesabi bandOrtaCizgisi = plot(bandOrtasi, "Orta Çizgi", color=color.black) ustSinirCizgisi = plot(bbUstSiniri, "Üst Sınır Çizgisi", color=color.black) altSinirCizgisi = plot(bbAltsiniri, "Alt Sınır Çizgisi", color=color.black) fill(ustSinirCizgisi, altSinirCizgisi, title = "Arka Plan", color=color.rgb(33, 150, 243, 95)) // arka plan renkleri RGB cinsinden // RSI'nin değerinin 20 altındayken aynı anda fiyatın Bollinger Bandının altı sınırının altında olduğu durum için şart oluşturma bullishkosulu = rsiDegeri<rsiTabanDegeri and low<bbAltsiniri bearishkosulu = rsiDegeri>rsiTavanDegeri and high>bbUstSiniri // bu kosulun sağlandığı yerleri belirtilen yazı ve / veya şekille gösterme plotshape((bullishkosulu)? 1 : 0, style=shape.triangleup, text="Bullish", color=color.green, location=location.belowbar, size=size.small) plotshape((bearishkosulu)? 1 : 0, style=shape.triangledown, text="Bearish", color=color.red, location=location.abovebar, size=size.small) //triangleup: yukarı yönlü üçgen //text: görünmesi istenen yazı //color: yazı ve şekil rengi //location: mumun altında mı üstünde mi görünsün //belowbar: mumun yani barın altında görünsün //size : büyüklük küçüklük ölçüsü (burada small ile küçük olsun istendi) alertcondition(bullishkosulu, title="Bullish koşulu üzerine alarm kur", message="{{interval}} - RSI<33 ve Fiyat<BB Lower - {{ticker}} - En düşük fiyat:{{low}} - {{timenow}}") alertcondition(bearishkosulu, title="Bearish koşulu üzerine alarm kur", message="{{interval}} - RSI>70 ve Fiyat>BB Upper - {{ticker}} - En yüksek fiyat:{{high}} - {{timenow}}") if bearishkosulu strategy.entry("Enter Long", strategy.long) else if bullishkosulu strategy.entry("Enter Short", strategy.short)