
اس حکمت عملی کو آر ایس آئی بولنگر بینڈ ٹی پی / ایس ایل حکمت عملی کہا جاتا ہے۔ اس حکمت عملی میں آر ایس آئی اشارے اور بولنگر بینڈ اشارے کا امتزاج کیا گیا ہے ، جس سے رجحان کی پوزیشننگ اور بریک ٹریڈنگ ممکن ہے۔ جب آر ایس آئی اشارے میں اوورلوڈ اوور سیل سگنل ہوتا ہے ، اور قیمت بولننگ بینڈ کو ٹریک کرتا ہے یا ٹریک کرتا ہے یا ٹریک کرتا ہے تو ، اضافی یا خالی آپریشن کیا جاتا ہے۔ اس کے علاوہ ، حکمت عملی میں اسٹاپ اسٹاپ نقصانات بھی ہوتے ہیں ، جو استحکام کو بہتر بناسکتے ہیں۔
آر ایس آئی اشارے سے یہ معلوم ہوتا ہے کہ آیا اسٹاک اوور بائی اوور سیل رینج میں ہے۔ آر ایس آئی اوور بائی ہے جب وہ مقررہ اوور بائی لائن سے زیادہ ہو اور اوور سیل ہے جب وہ مقررہ اوور سیل رینج سے کم ہو۔ اس حکمت عملی میں اوور بائی لائن 50 اور اوور سیل لائن 50 ہے۔
برن بینڈ اسٹاک کی قیمت کے معیاری فرق کا حساب کتاب کرکے ، اسٹاک کی قیمت کے اوپر اور نیچے کی ریلوں کو حاصل کرتا ہے۔ اوپر کی ریل مزاحمت کی لائن ہے ، نیچے کی ریل سپورٹ لائن ہے۔ جب اسٹاک کی قیمت اوپر سے نیچے کی راہ پر گامزن ہوتی ہے تو خریدنے کی جگہ ہوتی ہے ، اور نیچے کی راہ پر گامزن ہونے پر فروخت کی جگہ ہوتی ہے۔
جب آر ایس آئی اشارے میں نیچے کی طرف مڑنے کا اشارہ ہوتا ہے ، اور جب اسٹاک کی قیمت بورن بینڈ سے نیچے کی ٹریک کو توڑتی ہے تو ، یہ سمجھا جاتا ہے کہ نیچے سے اوپر کی طرف مڑنے کا اشارہ ہوتا ہے ، اور زیادہ کام کرتا ہے۔ جب آر ایس آئی اشارے میں اوپر کی طرف مڑنے کا اشارہ ہوتا ہے ، اور اسٹاک کی قیمت بورن بینڈ سے اوپر کی ٹریک کو توڑتی ہے تو ، یہ سمجھا جاتا ہے کہ اوپر سے نیچے کی طرف مڑنے کا اشارہ ہوتا ہے ، اور کم ہوتا ہے۔
آر ایس آئی اور برن بینڈ اشارے دونوں رجحانات اور الٹ پوائنٹس کا اندازہ لگانے کے لئے استعمال کیے جاتے ہیں۔ دونوں کے ساتھ مل کر ، حقیقی خرید و فروخت کے اشارے کی شناخت کی درستگی کو بہتر بنایا جاسکتا ہے ، اور جھوٹے بریک سے بچایا جاسکتا ہے۔
اسٹریٹجی نے اسٹاپ اسٹاپ نقصان کا مقام طے کیا ، اور اسٹاپ اسٹاپ کو داخلہ قیمت کے طور پر بنایا(1 + سٹاپ نقصان کا تناسب)(1- روکنے کے نقصان کا تناسب) ؛ اس کے برعکس ، یہ منافع کو لاک کرنے ، نقصان کو زیادہ سے زیادہ سے بچنے اور خطرے پر قابو پانے میں مدد کرتا ہے۔
اسٹریٹجی میں صرف زیادہ ، صرف مختصر یا دو طرفہ تجارت کا انتخاب کیا جاسکتا ہے ، صارف مارکیٹ کے حالات کے مطابق مختلف سمتوں کا انتخاب کرسکتا ہے ، اور خطرے کو لچکدار طریقے سے کنٹرول کرسکتا ہے۔
برین بینڈ کے معیاری سائز کا فرق برین بینڈ کی چوڑائی پر اثر انداز ہوتا ہے جس سے ٹریڈنگ سگنل پیدا ہوتا ہے۔ اگر پیرامیٹرز کو غلط ترتیب دیا جائے تو ، بہت سارے غلط سگنل پیدا ہوسکتے ہیں۔
اسٹاپ نقصان کی ترتیب بہت زیادہ ہوسکتی ہے اور غیر ضروری نقصانات کا سبب بن سکتی ہے اگر تجارت میں وی ٹرن آؤٹ ہوتا ہے۔
آر ایس آئی کے پیرامیٹرز آر ایس آئی وکر کی شکل کو بھی متاثر کرتے ہیں۔ اگر آر ایس آئی پیرامیٹرز کو غلط ترتیب دیا جائے تو ، آر ایس آئی الٹ سگنل کی درستگی کم ہوجاتی ہے۔
زیادہ سے زیادہ آر ایس آئی لمبائی پیرامیٹرز کی جانچ کی جاسکتی ہے تاکہ بہترین پیرامیٹرز کا مجموعہ تلاش کیا جاسکے۔
زیادہ سے زیادہ برننگ بینڈ لمبائی اور معیاری انحراف پیرامیٹرز کی جانچ کی جاسکتی ہے تاکہ بہترین پیرامیٹرز کا مجموعہ تلاش کیا جاسکے۔
بہترین سٹاپ نقصان کا تناسب پیرامیٹرز کو تلاش کرنے کے لئے ریٹرننگ کا استعمال کیا جا سکتا ہے.
اس حکمت عملی میں آر ایس آئی اشارے اور برن بینڈ اشارے کا استعمال کیا گیا ہے تاکہ رجحانات اور الٹ کو سمجھا جاسکے۔ اس میں اسٹاپ اسٹاپ نقصان کے طریقہ کار کو شامل کیا گیا ہے۔ اس سے خود بخود خرید و فروخت کے مقامات کی شناخت ہوسکتی ہے اور بروقت اسٹاپ نقصان کو روک دیا جاسکتا ہے۔ اس حکمت عملی میں کچھ خطرات بھی موجود ہیں ، جس میں بنیادی طور پر پیرامیٹرز کی اصلاح جیسے طریقوں سے بہتری لائی جاسکتی ہے۔ مجموعی طور پر ، اس حکمت عملی میں مضبوط عملی ہے۔
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 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/
// © BigCoinHunter
//@version=5
strategy(title="RSI_Boll-TP/SL", overlay=true,
pyramiding=0, default_qty_type=strategy.percent_of_equity,
default_qty_value=100, initial_capital=1000,
currency=currency.USD, commission_value=0.05,
commission_type=strategy.commission.percent,
process_orders_on_close=true)
//----------- get the user inputs --------------
//---------- RSI -------------
price = input(close, title="Source")
RSIlength = input.int(defval=6,title="RSI Length")
RSIoverSold = input.int(defval=50, title="RSI OverSold", minval=1)
RSIoverBought = input.int(defval=50, title="RSI OverBought", minval=1)
//------- Bollinger Bands -----------
BBlength = input.int(defval=200, title="Bollinger Period Length", minval=1)
BBmult = input.float(defval=2.0, minval=0.001, maxval=50, step=0.1, title="Bollinger Bands Standard Deviation")
BBbasis = ta.sma(price, BBlength)
BBdev = BBmult * ta.stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = ta.crossover(source, BBlower)
sellEntry = ta.crossunder(source, BBupper)
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
fill(plot1=p1, plot2=p2, title="Bollinger BackGround", color=color.new(color.aqua,90), fillgaps=false, editable=true)
//---------- input TP/SL ---------------
tp = input.float(title="Take Profit:", defval=0.0, minval=0.0, maxval=100.0, step=0.1) * 0.01
sl = input.float(title="Stop Loss: ", defval=0.0, minval=0.0, maxval=100.0, step=0.1) * 0.01
longEntry = input.bool(defval=true, title= 'Long Entry', inline="11")
shortEntry = input.bool(defval=true, title='Short Entry', inline="11")
//---------- backtest range setup ------------
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input.int(defval = 2021, title = "From Year", minval = 2010)
toDay = input.int(defval = 30, title = "To Day", minval = 1, maxval = 31)
toMonth = input.int(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input.int(defval = 2042, title = "To Year", minval = 2010)
//------------ time interval setup -----------
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(toYear, toMonth, toDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//------- define the global variables ------
var bool long = true
var bool stoppedOutLong = false
var bool stoppedOutShort = false
//--------- Colors ---------------
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na
//bgcolor(switch2?(color.new(TrendColor,50)):na)
//--------- calculate the input/output points -----------
longProfitPrice = strategy.position_avg_price * (1 + tp) // tp -> take profit percentage
longStopPrice = strategy.position_avg_price * (1 - sl) // sl -> stop loss percentage
shortProfitPrice = strategy.position_avg_price * (1 - tp)
shortStopPrice = strategy.position_avg_price * (1 + sl)
//---------- RSI + Bollinger Bands Strategy -------------
vrsi = ta.rsi(price, RSIlength)
rsiCrossOver = ta.crossover(vrsi, RSIoverSold)
rsiCrossUnder = ta.crossunder(vrsi, RSIoverBought)
BBCrossOver = ta.crossover(source, BBlower)
BBCrossUnder = ta.crossunder(source, BBupper)
if (not na(vrsi))
if rsiCrossOver and BBCrossOver
long := true
if rsiCrossUnder and BBCrossUnder
long := false
//------------------- determine buy and sell points ---------------------
buySignall = window() and long and (not stoppedOutLong)
sellSignall = window() and (not long) and (not stoppedOutShort)
//---------- execute the strategy -----------------
if(longEntry and shortEntry)
if long
strategy.entry("LONG", strategy.long, when = buySignall, comment = "ENTER LONG")
stoppedOutLong := true
stoppedOutShort := false
else
strategy.entry("SHORT", strategy.short, when = sellSignall, comment = "ENTER SHORT")
stoppedOutLong := false
stoppedOutShort := true
else if(longEntry)
strategy.entry("LONG", strategy.long, when = buySignall)
strategy.close("LONG", when = sellSignall)
if long
stoppedOutLong := true
else
stoppedOutLong := false
else if(shortEntry)
strategy.entry("SHORT", strategy.short, when = sellSignall)
strategy.close("SHORT", when = buySignall)
if not long
stoppedOutShort := true
else
stoppedOutShort := false
//----------------- take profit and stop loss -----------------
if(tp>0.0 and sl>0.0)
if ( strategy.position_size > 0 )
strategy.exit(id="LONG", limit=longProfitPrice, stop=longStopPrice, comment="Long TP/SL Trigger")
else if ( strategy.position_size < 0 )
strategy.exit(id="SHORT", limit=shortProfitPrice, stop=shortStopPrice, comment="Short TP/SL Trigger")
else if(tp>0.0)
if ( strategy.position_size > 0 )
strategy.exit(id="LONG", limit=longProfitPrice, comment="Long TP Trigger")
else if ( strategy.position_size < 0 )
strategy.exit(id="SHORT", limit=shortProfitPrice, comment="Short TP Trigger")
else if(sl>0.0)
if ( strategy.position_size > 0 )
strategy.exit(id="LONG", stop=longStopPrice, comment="Long SL Trigger")
else if ( strategy.position_size < 0 )
strategy.exit(id="SHORT", stop=shortStopPrice, comment="Short SL Trigger")