
یہ حکمت عملی بنیادی طور پر رجحان کا تعین کرنے کے لئے سورج کی لکیری تناسب ((RB) کے مساوی لائن کراس سگنل کا استعمال کرتی ہے ، اور خود کار طریقے سے اسٹاپ نقصان اور اسٹاپ اسٹاپ کے ساتھ تجارت کرتی ہے۔ حکمت عملی کے نام میں جرگہ کے مقابلے میں قلم کی قیمت میں اضافے کا مطلب یہ ہے کہ سورج کی لکیری کے مقابلے میں قلم کی قیمت میں اضافے کا حساب لگایا جائے۔
یہ حکمت عملی Vitelot کے RBI اشارے پر مبنی ہے، جس کا حساب کتاب دن کے K لائن کے رشتہ دار قلم کے تناسب ((RB) کی ایک چلتی اوسط ہے۔ RB کا حساب کتاب اس طرح کیا جاتا ہے:
فارمولے میں، آر بی کے برابر ہے یانگ لائن کی ہستی کی لمبائی سے پورے K لائن کی لمبائی کا تناسب، مثبت قیمت؛ سونا لائن کے آر بی منفی قیمت ◦ آر بی کی قیمتوں کی حد -1 سے 1 کے درمیان ہے۔
آر بی آئی اشارے آر بی کی چلتی اوسط کے ذریعے شور کو فلٹر کرتے ہیں ، مارکیٹ کی بنیادی خصوصیات کو پکڑتے ہیں۔ جب آر بی آئی اشارے اس کی سگنل لائن کو عبور کرتے ہیں تو خریدنے کا اشارہ پیدا ہوتا ہے۔ جب آر بی آئی اشارے اس کی سگنل لائن کو عبور کرتے ہیں تو فروخت کا اشارہ پیدا ہوتا ہے۔
کثیر سر غیر یقینی مرحلے کے جھوٹے سگنل کو فلٹر کرنے کے لئے ، یہ حکمت عملی یہ بھی فیصلہ کرے گی کہ آیا اختتامی قیمت 13 سائیکل ای ایم اے کی اوسط سے زیادہ ہے یا نہیں ، جب یہ آر بی آئی کے اشارے پر سگنل لائن سے گزرتا ہے ، اور اگر اس سے زیادہ ہے تو حقیقی خرید سگنل پیدا کرنے کے لئے کثیر سر حکمت عملی پر عملدرآمد ہوتا ہے۔ اسی طرح ، صرف اس وقت خالی سر حکمت عملی پر عملدرآمد ہوتا ہے جب اختتامی قیمت 13 سائیکل ای ایم اے سے کم ہو۔
اس حکمت عملی میں خطرے پر قابو پانے اور منافع کو روکنے کے لئے اسٹاپ اور اسٹاپ میکانیزم بھی موجود ہے۔ جب پوزیشن کھولی جاتی ہے تو ٹریل اسٹاپ پوائنٹس کی تعداد کو ٹریک کرتا ہے ، اور اس کے ساتھ ہی ایک مقررہ تعداد میں اسٹاپ نقصان بھی طے کرتا ہے۔
آر بی آئی کے اشارے بڑے پیمانے پر شور کو فلٹر کرتے ہیں تاکہ مارکیٹ کے رجحانات کی خصوصیات کو پکڑ سکیں اور ہلکے بازاروں کے غلط سگنل سے گمراہ نہ ہوں۔
یکساں لکیری فلٹرنگ کے ساتھ مل کر ، یہ غلط سگنل سے بچنے کے لئے موثر ہے ، جس سے خالی سر کا نقصان کم ہوتا ہے۔
اسٹاپ نقصان کی روک تھام کی ترتیب انفرادی پوزیشنوں کے نقصان کے خطرے کو کم کرنے میں مدد کرتی ہے ، جبکہ منافع کو لاک کرتی ہے ، جس سے مجموعی طور پر منافع کی شرح میں اضافہ ہوتا ہے۔
اس حکمت عملی میں کم پیرامیٹرز ہیں ، یہ سمجھنے میں آسان ہے اور خودکار تجارت کے لئے موزوں ہے۔
یہ حکمت عملی صرف آر بی آئی کے اشارے پر مبنی ہے اور اگر اشارے خود ہی غلط سگنل دیتے ہیں تو مجموعی حکمت عملی بھی ناکام ہوجاتی ہے۔
اشارے کے پیرامیٹرز کی غلط ترتیب بھی ٹریڈنگ سگنل کے معیار میں کمی کا سبب بن سکتی ہے۔
کسی بھی تکنیکی اشارے کو مخصوص مارکیٹ کے حالات کے تحت ناکامی کا سامنا کرنا پڑتا ہے اور نقصان سے مکمل طور پر بچنے کے لئے ممکن نہیں ہے.
اسٹاپ نقصان کی حد بہت چھوٹی ہے جس کی وجہ سے اسٹاپ نقصان بہت زیادہ ہوتا ہے۔ اسٹاپ نقصان کی حد بہت بڑی ہے جس کی وجہ سے انفرادی نقصان میں اضافہ ہوسکتا ہے۔
ناکافی واپسی کے کنٹرول کے نتیجے میں اکاؤنٹس میں ناکامی کا خطرہ ہوتا ہے۔
RBI اشارے کے پیرامیٹرز کو بہتر بنانے کے لئے مختلف پیرامیٹرز کے مجموعے کی جانچ کی جاسکتی ہے۔
سگنل کے معیار کو بہتر بنانے کے لئے دیگر معاون اشارے کے ساتھ فلٹر کیا جا سکتا ہے.
سٹاپ نقصان اسٹاپ کے پیرامیٹرز کو مشین لرننگ ٹریننگ کے ذریعہ بہتر بنایا جاسکتا ہے۔
مجموعی طور پر پوزیشنوں اور خطرے کے سوراخوں کو کنٹرول کرنے کے لئے فنڈ مینجمنٹ کی حکمت عملی میں شامل کیا جاسکتا ہے۔
آپ مختلف پوزیشننگ کی حکمت عملیوں کو آزما سکتے ہیں ، جیسے راتوں رات پوزیشن رکھنا یا شارٹ لائن ٹریڈنگ۔
یہ حکمت عملی مجموعی طور پر ایک سادہ اور براہ راست رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحان کی سمت کا اندازہ لگانے کے لئے دن کی لکیر کے مقابلے میں قلم کے تناسب کی اوسط لائن کراسنگ کا حساب لگاتا ہے ، اور اس کے ساتھ ساتھ خطرے کو کنٹرول کرنے کے لئے اوسط لائن فلٹر اور اسٹاپ نقصان کو شامل کرتا ہے ، جو زلزلے کی مارکیٹ کے جھوٹے سگنل کو مؤثر طریقے سے روک سکتا ہے۔ تاہم ، کوئی بھی تکنیکی اشارے کی حکمت عملی خطرے سے مکمل طور پر گریز نہیں کرسکتی ہے۔
/*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)