
Strategi ini terutama menggunakan rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r
Strategi ini didasarkan pada indikator RBI Vitelot, yang dihitung sebagai rata-rata bergerak rasio bobot rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio r rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio r
Dalam rumus ini, RB sama dengan rasio panjang entitas dari garis yang berlawanan dengan panjang keseluruhan garis K, dengan nilai positif; RB dari garis yang berlawanan dengan nilai negatif.
Indikator RBI memfilter kebisingan melalui rata-rata bergerak RB, menangkap karakteristik pasar. Indikator RBI menghasilkan sinyal beli ketika melewati garis sinyal di atasnya; Indikator RBI menghasilkan sinyal jual ketika melewati garis sinyal di bawahnya.
Untuk menyaring sinyal palsu dari fase ketidakpastian multihead, strategi ini juga menilai apakah harga tutup lebih tinggi dari rata-rata EMA 13 siklus saat melewati jalur sinyal pada indikator RBI, dan melakukan strategi multihead jika lebih tinggi dari yang menghasilkan sinyal beli yang sebenarnya. Demikian pula, strategi kosong hanya dilakukan ketika harga tutup lebih rendah dari EMA 13 siklus.
Strategi ini juga mengatur mekanisme stop loss dan stop loss untuk mengontrol risiko dan mengunci keuntungan. Setelah membuka posisi, trail akan melacak jumlah stop loss yang ditetapkan, sambil mengatur stop loss dengan jumlah poin tetap.
Indikator RBI menyaring banyak kebisingan untuk menangkap karakteristik tren pasar dan menghindari tertipu oleh sinyal palsu dari pasar yang bergoyang.
Kombinasi dengan penyaringan linear, dapat secara efektif mencegah sinyal palsu dari periode yang tidak pasti, mengurangi kerugian.
Pengaturan stop loss membantu mengurangi risiko kerugian pada posisi individu, sekaligus mengunci keuntungan dan meningkatkan tingkat keuntungan secara keseluruhan.
Strategi ini memiliki parameter yang lebih sedikit, mudah dipahami, dan cocok untuk perdagangan otomatis.
Strategi ini hanya didasarkan pada indikator RBI, dan jika indikator itu sendiri menghasilkan sinyal yang salah, strategi keseluruhan akan gagal.
Penetapan parameter indikator yang tidak tepat juga dapat menyebabkan penurunan kualitas sinyal perdagangan.
Indikator teknis apa pun dapat gagal dalam kondisi pasar tertentu dan tidak dapat sepenuhnya menghindari kerugian.
Stop loss yang terlalu kecil dapat menyebabkan stop loss yang terlalu sering; stop loss yang terlalu besar dapat memperluas kerugian tunggal.
Tidak cukup kontrol penarikan dapat menyebabkan risiko eksposur akun.
Untuk mengoptimalkan parameter RBI, Anda dapat menguji kombinasi parameter yang berbeda.
Untuk meningkatkan kualitas sinyal, dapat ditambahkan ke indikator tambahan lainnya untuk memfilter.
Parameter stop loss dapat dioptimalkan melalui pelatihan pembelajaran mesin.
Anda dapat bergabung dengan strategi pengelolaan dana untuk mengontrol keseluruhan posisi dan risiko.
Anda dapat mencoba strategi yang berbeda dalam waktu yang berbeda, seperti berdagang di waktu malam atau berdagang di waktu singkat.
Strategi ini secara keseluruhan adalah strategi pelacakan tren yang lebih sederhana dan langsung. Strategi ini menilai arah tren dengan menghitung persilangan garis rata-rata rasio pen-to-pen, sambil menambahkan filter garis rata dan stop loss untuk mengendalikan risiko, yang dapat secara efektif menghindari sinyal palsu pasar yang bergoyang. Namun, strategi indikator teknis apa pun tidak dapat sepenuhnya menghindari risiko, masih perlu memperhatikan pengoptimalan perbaikan terus menerus dalam hal pengoptimalan parameter, pengendalian risiko, dll, untuk mendapatkan excess return yang stabil dalam jangka panjang. Secara keseluruhan, strategi ini logisnya jelas, mudah dipahami, dan cocok untuk perdagangan otomatis.
/*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"}]
*/
//@version=3
strategy("RBI Backtest /w TSSL", shorttitle="RBI Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// RBI:
// The EMA of the relative body (RB) of Japanese candles is evaluated.
// The RB of a candle (my definition) is simply the ratio of the body with respect to its full length
// and taken positive for bull candles and negative for bear candles:
// e.g. a bull "marubozo" has RB=1 a bear "marubozo" has RB=-1;
// a "doji" has RB=0.
// This simple indicator grasps the essence of the market by filtering out a great deal of noise.
//
// A flag can be selected to calculate its very basic binary version, where a bull candle counts as a one
// and a bear candle counts as a minus one.
//
// Enter (or exit) the market when the signal line crosses the base line.
// When the market is choppy we have a kind of alternating bear and bull candles so that
// RBI is FLAT and usually close to zero.
// Therefore avoid entering the market when RBI is FLAT and INSIDE the Exclusion level.
// The exclusion level is to be set by hand: go back in history and check when market was choppy; a good
// way to set it is to frame the oscillations of RBI whe price was choppy.
//
// RBI is more effective when an EMA of price is used as filtering. I found EMA(13) to be
// a decent filter: go long when base crosses signal upwards AND closing price is above EMA(13);
// same concept for going short.
//
// As any other indicator, use it with responsibility: THERE CAN'T BE A SINGLE MAGIC INDICATOR winning
// all trades.
//
// Above all, have fun.
//
// Vitelot/Yanez/Vts March 31, 2019
par1 = input(5, title="MA1 Period")
par2 = input(5, title="Signal Period")
exclusion = input(0.2, title="Exclusion level")
useBin = input(false, title="Calculate the binary version")
treshold_long = input(0, title="Treshold Long")
treshold_short = input(0, title="Treshold Short")
fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=120)
trailTP = input(title="TP Trigger", defval=1)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
startTimeOk() => true // create function "within window of time" if statement true
ynSimple(t) =>
s = (close>open)? 1: -1
ema(sum(s,t),t)
ynRel(t) =>
s = (close-open)/(high-low)
ema(sum(s,t),t)
yn = useBin? ynSimple(par1): ynRel(par1)
sig = ema(yn,par2)
plot(yn, color=aqua, title="RBI", linewidth=3, transp=0)
plot(sig, color=orange, title="Signal", linewidth=2, transp=0)
hline(0, color=white, title="Zero level", editable=false)
hline(exclusion, color=yellow, title="Exclusion level +", editable=true, linestyle=line)
hline( 0-exclusion, color=yellow, title="Exclusion level -", editable=true, linestyle=line)
long = crossover(yn,sig) and yn < treshold_long
short = crossover(sig,yn) and yn > treshold_short
// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)