اس حکمت عملی کا نام آر ایس آئی بولنگر بینڈ ٹی پی / ایس ایل حکمت عملی ہے۔ یہ رجحانات اور تجارتی سگنلز کی نشاندہی کرنے کے لئے آر ایس آئی اشارے اور بولنگر بینڈ کو جوڑتا ہے۔ جب آر ایس آئی اشارے میں زیادہ خریدنے یا زیادہ فروخت ہونے کے سگنل دکھائے جاتے ہیں اور قیمت بولنگر بینڈ کو چھوتی ہے یا توڑتی ہے تو ، لمبی یا مختصر پوزیشنیں کھولی جائیں گی۔ اس کے علاوہ ، منافع اور اسٹاپ نقصان کے مقامات کو بھی خطرات پر قابو پانے کے لئے مقرر کیا جاتا ہے۔
آر ایس آئی اشارے کا فیصلہ کرتا ہے کہ آیا اسٹاک زیادہ سے زیادہ خریدا گیا ہے یا زیادہ سے زیادہ فروخت ہوا ہے۔ زیادہ سے زیادہ لائن کے اوپر آر ایس آئی کی پڑھنے سے زیادہ خریدنے کی شرائط ظاہر ہوتی ہیں ، جبکہ زیادہ سے زیادہ لائن کے نیچے پڑھنے سے زیادہ فروخت ہونے کی شرائط ظاہر ہوتی ہیں۔ اس حکمت عملی میں زیادہ سے زیادہ لائن 50 پر مقرر کی گئی ہے اور زیادہ سے زیادہ لائن 50 پر مقرر کی گئی ہے۔
بولنگر بینڈ ایک سادہ چلتی اوسط کے اوپر اور نیچے معیاری انحراف کی لائنوں کا نقشہ بناتے ہیں۔ اوپری بینڈ مزاحمت کے طور پر کام کرتا ہے اور نچلی بینڈ سپورٹ کے طور پر کام کرتا ہے۔ نچلی بینڈ کا اوپر کا کراسنگ خرید کا اشارہ ہے ، جبکہ اوپری بینڈ کا نیچے کا کراسنگ فروخت کا اشارہ ہے۔
جب آر ایس آئی اشارے میں نچلی الٹ سگنل دکھایا جاتا ہے اور قیمت بولنگر بینڈ کے نچلے بینڈ سے گزرتی ہے تو ، اسے اوپر کی الٹ سمجھا جاتا ہے ، اس طرح طویل ہوتا ہے۔ جب آر ایس آئی اشارے میں اوپری الٹ سگنل دکھایا جاتا ہے اور قیمت اوپری بینڈ کو توڑتی ہے تو ، اسے نیچے کی الٹ سمجھا جاتا ہے ، اس طرح مختصر ہوجاتا ہے۔
آر ایس آئی اور بولنگر بینڈ دونوں رجحانات اور الٹاوں کا تعین کرنے کے لئے استعمال ہوتے ہیں۔ یہ امتزاج سگنل کی شناخت کی درستگی کو بہتر بناتا ہے اور جھوٹے بریک آؤٹ سے بچتا ہے۔
حکمت عملی سیٹ منافع (TP) اور سٹاپ نقصان (SL) کے پوائنٹس کو منافع میں مقفل کرنے اور نقصان کو کم کرنے کے لئے زیادہ سے زیادہ.
صارفین مارکیٹ کے حالات کی بنیاد پر صرف طویل، صرف مختصر یا دونوں سمتوں میں جا سکتے ہیں، جو لچکدار خطرے کے کنٹرول کی اجازت دیتا ہے.
معیاری انحراف کا سائز بینڈ کی چوڑائی اور تجارتی سگنل کو متاثر کرتا ہے۔ غلط ترتیبات سے زیادہ غلط سگنل پیدا ہوسکتے ہیں۔
V کی شکل میں واپسی غیر ضروری نقصانات کو متحرک کر سکتی ہے TP / SL کی ترتیبات بہت جارحانہ ہیں.
RSI پیرامیٹر کی غلط ترتیبات الٹ سگنل کی درستگی میں کمی کا باعث بنتی ہیں.
زیادہ سے زیادہ RSI لمبائی اقدار کو ٹیسٹ کیا جا سکتا ہے تاکہ زیادہ سے زیادہ پیرامیٹر مجموعہ تلاش کیا جا سکے.
زیادہ لمبائی اور معیاری انحراف کا تجربہ کیا جا سکتا ہے تاکہ زیادہ سے زیادہ پیرامیٹر مجموعہ تلاش کیا جا سکے.
بیک ٹسٹنگ سے زیادہ سے زیادہ TP/SL تناسب تلاش کرنے میں مدد مل سکتی ہے۔
یہ حکمت عملی رجحانات اور الٹاوں کی نشاندہی کرنے کے لئے آر ایس آئی اور بولنگر بینڈ کا فائدہ اٹھاتی ہے ، اور خطرات کو کنٹرول کرنے کے لئے ٹی پی / ایس ایل مرتب کرتی ہے۔ یہ خود بخود تجارتی سگنل کا پتہ لگاسکتی ہے اور باہر نکلنے کا انتظام کرسکتی ہے۔ ابھی بھی کچھ خطرات ہیں جن میں پیرامیٹر کی اصلاح سے بہتری آسکتی ہے۔ عام طور پر ، یہ ایک عملی حکمت عملی ہے جس میں مضبوط اطلاق ہے۔
/*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")