এই কৌশলটি ট্রেড সিগন্যালের জন্য মূল্যের প্রবণতা এবং অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তরগুলি মূল্যায়ন করার জন্য চলমান গড়, বলিংজার ব্যান্ড এবং আরএসআই একত্রিত করে। এটি নির্ভুলতা উন্নত করতে একাধিক সূচকের শক্তি ব্যবহার করে।
কৌশলগত যুক্তি:
মূল্য প্রবণতা নির্ধারণের জন্য চলমান গড় এবং বোলিংজার ব্যান্ড গণনা করুন।
অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয়ের মাত্রা চিহ্নিত করার জন্য RSI গণনা করুন।
যখন দাম বিবি নিম্ন ব্যাণ্ডের উপরে এবং আরএসআই বাউলি ক্রসওভারের উপরে ভেঙে যায় তখন লম্বা প্রবেশ করুন।
ট্রেড প্রতি ক্ষতি নিয়ন্ত্রণ করতে স্টপ লস ব্যবহার করুন।
উপকারিতা:
মাল্টি-ইন্ডিক্টর ভেরিফিকেশন খারাপ ট্রেড হ্রাস করে।
আরএসআই এমএ-র সীমাবদ্ধতার পরিপূরক।
বিবি পলায়নের মাত্রা চিহ্নিত করে।
ঝুঁকি:
একাধিক প্যারামিটার অপ্টিমাইজ করতে সময় লাগে।
আরএসআই আর বিবির মধ্যে কিছু অতিরিক্ততা আছে।
ব্রেকআউট ব্যর্থতা এবং বিপরীতমুখী হতে পারে।
সংক্ষেপে, এই কৌশলটি ট্রেডিংয়ের ট্রেন্ড এবং বিপরীত ট্রেডিংয়ের সুযোগগুলি সনাক্ত করার জন্য এমএ, বিবি এবং আরএসআইকে একত্রিত করে। একাধিক সূচক ব্যবহার করে ফলাফলগুলি উন্নত করতে পারে তবে পরামিতি অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের প্রয়োজন।
/*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) //////////////////////////////////////////////