মাল্টি-ইন্ডিকেটর কনভার্জেন্স ট্রেডিং স্ট্র্যাটেজিতে RSI, TD Sequential, MACD এবং Bollinger Bands এর সংকেতগুলিকে একত্রিত করে ট্রেন্ডিং মার্কেটের সময় উচ্চ সম্ভাব্যতার সেটআপগুলি চিহ্নিত করা হয়।
কৌশলগত যুক্তি:
১৪ পেরিওডের আরএসআই গণনা করুন। ক্রয়/বিক্রয় সংকেতের জন্য RSI ডিফারেন্স প্যারামিটারটি থ্রেশহোল্ড হিসাবে ব্যবহার করুন। RSI এর নীচে (50 - RSI ডিফারেন্স) ক্রয় সংকেত দেয়। RSI এর উপরে (50 + RSI ডিফারেন্স) বিক্রয় সংকেত দেয়।
MACD সূচক গণনা করুন। পরপর পাঁচটি ইতিবাচক MACD হিস্টোগ্রাম বার কিনে সিগন্যাল দেয়। পরপর পাঁচটি নেতিবাচক বার বিক্রি সিগন্যাল দেয়।
টিডি সিকোয়েন্সিয়াল গণনা করুন। পরপর ২ টিডি বার কিনে সিগন্যাল দেয়। পরপর ২ টিএস বার বিক্রি সিগন্যাল দেয়।
২০ পেরিওডের বোলিংজার ব্যান্ড গণনা করুন। উপরের ব্যান্ডের উপরে দাম ভাঙ্গার অর্থ কেনা। নীচের ব্যান্ডের নিচে দাম ভাঙ্গার অর্থ বিক্রয়।
শুধুমাত্র যখন RSI, MACD এবং TD Sequential এর দিকনির্দেশনা একমত হয় এবং বোলিংজার ব্যান্ডগুলি পরস্পর বিরোধিতা করে না তখনই ট্রেড করুন।
ইনপুট প্যারামিটারগুলির উপর ভিত্তি করে লাভের লক্ষ্য নির্ধারণ এবং ক্ষতি বন্ধ করুন।
এই কৌশলটি মিথ্যা সংকেত এড়ানোর জন্য একাধিক সূচকের শক্তিকে একত্রিত করে। বোলিংজার ব্যান্ডগুলি প্রবণতার সময় উচ্চ সম্ভাব্যতার সেটআপগুলি ফিল্টার করতে সহায়তা করে। তবে সূচক পরামিতিগুলির পুঙ্খানুপুঙ্খ অপ্টিমাইজেশনের প্রয়োজন এবং সমস্ত 4 টি সূচক যখন ওভার-ট্রেডিং এড়াতে সম্মত হয় তখন সংকেতগুলি তুলনামূলকভাবে বিরল হতে হবে।
সামগ্রিকভাবে, এই মাল্টি-ইন্ডিকেটর কৌশলটি শক্তিশালী প্রবণতার সময় উচ্চ সম্ভাব্যতার সেটআপগুলি ক্যাপচার করতে পারে, তবে অত্যধিক ট্রেডিং এড়াতে সাবধানতার সাথে পরামিতিগুলিকে সামঞ্জস্য করা এবং সূচক সংকেতগুলির সংরক্ষণমূলক ব্যবহারের প্রয়োজন।
/*backtest start: 2022-09-05 00:00:00 end: 2023-09-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("RSI, TD Seq, MACD, BB Strategy - Calculation",overlay=true) RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference") TD = close > close[4] ?nz(TD[1])+1:0 TS = close < close[4] ?nz(TS[1])+1:0 TDUp = TD - valuewhen(TD < TD[1], TD , 1 ) TDDn = TS - valuewhen(TS < TS[1], TS , 1 ) TDcheckUP = iff(TD == 2, true, false) TDCheckDOWN = iff(TS == 2, true, false) [_, _, histLine] = macd(close, 12, 26, 9) MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0 and histLine[4] > 0, true, false) MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false) RSICal = rsi(close, 14) RSICalNewUp = 50 + RSIDifference RSICalNewDown = 50 - RSIDifference RSICheckUp = iff(RSICal <= RSICalNewUp, true, false) RSICheckDown = iff(RSICal >= RSICalNewDown, true, false) basis = sma(close, 20) dev = 2 * stdev(close, 20) upperBB = basis + dev lowerBB = basis - dev BBCheckUp = iff(close > upperBB, true, false) BBCheckDown = iff(close < lowerBB, true, false) //BBCheckUp = false //BBCheckDown = false BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false) SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false) ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5) useStopLoss = input(false, title="Use Stop Loss?") LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5) ProfitStrat = ProfitStratA * 10 Lossstrat = useStopLoss ? LossstratA * 10 : 1000000 if (strategy.position_size > 0) strategy.exit("BuyClose", "Buy", profit=ProfitStrat, loss=Lossstrat) if (strategy.position_size < 0) strategy.exit("SellClose", "Sell", profit=ProfitStrat, loss=Lossstrat) if (BuyCheck == true and strategy.position_size == 0) strategy.entry("Buy", strategy.long, comment="Long Entry") if (SellCheck == true and strategy.position_size == 0) strategy.entry("Sell", strategy.short, comment="Short Entry") //plotshape(BuyCheck, color=blue, transp=0, style=shape.arrowup, text="Buy\n", location=location.belowbar) //plotshape(SellCheck, color=orange, transp=0, style=shape.arrowdown, text="Sell\n", location=location.abovebar)