یہ حکمت عملی تجارتی سگنلز کے لئے قیمتوں کے رجحانات اور زیادہ خرید / فروخت کی سطح کا اندازہ کرنے کے لئے چلتے ہوئے اوسط ، بولنگر بینڈ اور آر ایس آئی کو یکجا کرتی ہے۔ یہ درستگی کو بہتر بنانے کے لئے متعدد اشارے کی طاقتوں کا فائدہ اٹھاتا ہے۔
حکمت عملی منطق:
قیمت کے رجحان کا تعین کرنے کے لئے اوسط اور بولنگر بینڈ کا حساب لگائیں۔
RSI کا حساب لگانے کے لئے overbought / oversold کی سطح کی نشاندہی کریں.
جب قیمت بی بی کے نچلے بینڈ اور آر ایس آئی بالش کراس اوور سے اوپر ہوتی ہے تو طویل درج کریں۔ مختصر کے لئے الٹ۔
ہر تجارت میں نقصان کو کنٹرول کرنے کے لئے سٹاپ نقصان کا استعمال کریں.
فوائد:
کثیر اشارے کی تصدیق سے خراب تجارت کم ہوتی ہے۔
آر ایس آئی ایم اے کی حدود کی تکمیل کرتا ہے۔
بی بی، فرار کی سطح کی نشاندہی.
خطرات:
متعدد پیرامیٹرز کو بہتر بنانے میں وقت لگتا ہے.
RSI اور BBs کے درمیان کچھ redundancy.
بریک آؤٹ ناکامیوں اور الٹ کے لئے موزوں ہیں.
خلاصہ یہ ہے کہ یہ حکمت عملی رجحان اور الٹ ٹریڈنگ کے مواقع دونوں کی نشاندہی کرنے کے لئے ایم اے ، بی بی اور آر ایس آئی کو یکجا کرتی ہے۔ متعدد اشارے کا استعمال نتائج کو بہتر بنا سکتا ہے لیکن پیرامیٹر کی اصلاح اور رسک کنٹرول کی ضرورت ہوتی ہے۔
/*backtest start: 2023-08-13 00:00:00 end: 2023-09-12 00:00:00 period: 30m 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/ // © LucasVivien //@version=4 strategy("MA Bolinger Bands + RSI ", shorttitle="MABB + RSI", overlay=true) // User input source = input(title="Price source" , type=input.source , defval=close) RSIlen = input(title="RSI Length" , type=input.integer , defval=6 , group="RSI") RSIlvlOB = input(title="RSI Overbough" , type=input.integer , defval=50 , group="RSI") RSIlvlOS = input(title="RSI Oversold" , type=input.integer , defval=50 , group="RSI") RSIN = input(title="RSI Neutral" , type=input.integer , defval=50 , group="RSI") MAlen = input(title="MA Length" , type=input.integer , defval=200 , group="MABB") BBlen = input(title="BB Length" , type=input.integer , defval=200 , group="MABB") BBmult = input(title="BB multiplier" , type=input.float , defval=2.0 , group="MABB" , tooltip="Set BB closer / appart", minval=0.001, maxval=50) MAtype = input(title="MA type" , type=input.string , defval="SMA", group="MABB" , tooltip="MA type used in BB", options=["SMA", "EMA", "HMA"]) //SLmult = input(title="SL value" ,type=input.float , defval=0.06) // Used indicators RSI = rsi(source, RSIlen) MA = sma(source, MAlen) if MAtype == "EMA" MA := ema(source, MAlen) if MAtype == "HMA" MA := hma(source, MAlen) // Perform Calculations BBdev = BBmult * stdev(source, BBlen) BBupper = MA + BBdev BBlower = MA - BBdev longSL = close - close * 0.06 shortSL = close + close * 0.06 // Signals validation ([0] is trade displayed from strategy() on chart => long/short entry) BBbull = (open < BBlower) and (close > BBlower) BBbear = (open > BBupper) and (close < BBupper) RSIbull = crossover(RSI , RSIN) RSIbear = crossunder(RSI, RSIN) Longsignal = (BBbull) and (RSIbull or RSIbull[1] or RSIbull[2] or RSIbull[3] or RSIbull[4] or RSIbull[5] or RSIbull[6] or RSIbull[7] or RSIbull[8] or RSIbull[9] or RSIbull[10]) Shortsignal = (BBbear) and (RSIbear or RSIbear[1] or RSIbear[2] or RSIbear[3] or RSIbear[4] or RSIbear[5] or RSIbear[6] or RSIbear[7] or RSIbear[8] or RSIbear[9] or RSIbear[10]) // Save SL values var SLlongsaved = 0.0 var SLshortsaved = 0.0 if Longsignal and (strategy.position_size == -1) /////////////////////////////// SLlongsaved := longSL if Shortsignal and (strategy.position_size == 1) //////////////////////////////// SLshortsaved := shortSL // Plots //plotshape(Longsignal , size=size.small, color=color.teal) //plotshape(Shortsignal, size=size.small, color=color.fuchsia) plot(Longsignal ? longSL : na, color=color.red, style=plot.style_linebr, linewidth=6) plot(Shortsignal ? shortSL : na, color=color.red, style=plot.style_linebr, linewidth=6) p1 = plot(BBupper,title="Bollinger Bands Upper Line", color=color.gray, transp=60) p2 = plot(BBlower,title="Bollinger Bands Lower Line", color=color.gray, transp=60) plot(MA, title="Bollinger Bands MA Basis Line" , color=color.white, transp=50) fill(p1, p2, color=color.white, transp=92) // Strategy Entry & Exit //if Longsignal strategy.entry(id="Long entry", long=true, when=Longsignal) //, oca_name="x", oca_type=strategy.oca.cancel) //if Shortsignal strategy.entry(id="Short entry", long=false, when=Shortsignal) //, oca_name="x", oca_type=strategy.oca.cancel) strategy.close(id="Long exit", when=strategy.position_size > 0)//, from_entry="Long entry" //, when=strategy.position_size > 0 // , stop=SLlongsaved) strategy.close(id="Short Exit", when=strategy.position_size < 0)//, from_entry="Short entry" //, when=strategy.position_size < 0 //, stop=SLshortsaved) plot(strategy.position_size) //////////////////////////////////////////////