এই কৌশলটি ব্যাংকনিফটি ফিউচারগুলির জন্য একটি এসএমএ-ভিত্তিক ট্রেডিং কৌশল। কৌশলটির মূল ধারণাটি এসএমএকে একটি প্রবণতা সূচক হিসাবে ব্যবহার করা, যখন দাম এসএমএর উপরে অতিক্রম করে তখন দীর্ঘ এবং যখন দাম এসএমএর নীচে অতিক্রম করে তখন শর্ট যায়। একই সাথে, কৌশলটি ঝুঁকি নিয়ন্ত্রণ এবং মুনাফা লক করার জন্য স্টপ-লস এবং লাভের শর্তও নির্ধারণ করে।
এই কৌশলটির মূল বিষয় হল এসএমএকে একটি প্রবণতা সূচক হিসাবে ব্যবহার করা। বিশেষত, কৌশলটি প্রথমে একটি নির্দিষ্ট সময়ের এসএমএ গণনা করে (ডিফল্ট 200), এবং তারপরে দাম এবং এসএমএর আপেক্ষিক অবস্থানের উপর ভিত্তি করে প্রবণতার দিক নির্ধারণ করে। যখন দাম এসএমএর উপরে অতিক্রম করে, তখন এটি বিবেচনা করা হয় যে একটি ঊর্ধ্বমুখী প্রবণতা গঠিত হয়েছে, এবং একটি দীর্ঘ অবস্থান নেওয়া হয়; যখন দাম এসএমএর নীচে অতিক্রম করে, তখন এটি একটি নিম্নমুখী প্রবণতা গঠিত হয়েছে বলে মনে করা হয়, এবং একটি শর্ট অবস্থান নেওয়া হয়। এছাড়াও, কৌশলটি ঝুঁকি নিয়ন্ত্রণ এবং লাভের লক করার জন্য স্টপ-লস এবং লাভের শর্তও নির্ধারণ করে। স্টপ-লসের শর্তগুলির মধ্যে রয়েছেঃ দামটি এসএমএকে একটি নির্দিষ্ট পরিসরের মাধ্যমে (
এই কৌশলটি এসএমএ ভিত্তিক একটি সহজ ট্রেডিং কৌশল, যা ব্যাংকনিফটি ফিউচারগুলির জন্য উপযুক্ত। এর সুবিধাগুলি এর সহজ নীতি, শক্তিশালী অভিযোজনযোগ্যতা এবং ঝুঁকি নিয়ন্ত্রণের ব্যবস্থাগুলিতে রয়েছে। তবে, ব্যবহারিক প্রয়োগে, এখনও প্যারামিটার অপ্টিমাইজেশন, দোলনকারী বাজার, প্রবণতা বিপরীতমুখী এবং ইনট্রাডে volatility এর মতো সম্ভাব্য ঝুঁকিগুলিতে মনোযোগ দিতে হবে। ভবিষ্যতে, কৌশলটি প্যারামিটার অপ্টিমাইজেশন, অন্যান্য সূচকগুলির সাথে সংমিশ্রণ, গতিশীল স্টপ-লস এবং ট্রেডিং সময় সীমাবদ্ধ করার মতো দিক থেকে অনুকূলিত এবং উন্নত করা যেতে পারে।
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Bhasker_S //@version=5 strategy("Strategy BankNifty SMA", overlay=true, margin_long=100, margin_short=100) src = input(close, title="Source") timeFrame = input.timeframe(defval='5', title = "Select Chart Timeframe") typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) len = input.int(200, minval=1, title="Length", step = 10) alertPrecision = input.float(0, "Alert Precision", minval = 0, maxval = 50, step=1) slTimeFrame = input.timeframe(defval='1', title = "Select Stoploss Candle Timeframe") slBuffer = input.float(0, "Stop Loss Buffer", minval = 0, maxval = 50, step = 1) targetSlab = input.float(150, "Target Price", minval = 1, maxval = 2000, step = 10) Stoploss = input.float(20, "Stop Loss", minval = 1, maxval = 2000, step = 5) offset = input.int(title="Offset", defval=0, minval=-500, maxval=500) //out = ta.sma(src, len) ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) tfSource = request.security(syminfo.tickerid, timeFrame, src, barmerge.gaps_on, barmerge.lookahead_off) mySMA = ma(tfSource, len, typeMA) plot(mySMA, color=color.rgb(243, 33, 89), title="MA", offset=offset, linewidth = 2) slClose = request.security(syminfo.tickerid, slTimeFrame, src, barmerge.gaps_on, barmerge.lookahead_off) highTravel = low > mySMA lowTravel = high < mySMA touchabove = (((high[1] + alertPrecision) > mySMA[1]) and (low[1] < mySMA[1])) //and (high[2] < mySMA[2]) touchbelow = (((low[1] - alertPrecision) < mySMA[1]) and (high[1] > mySMA[1])) //and (low[2] > mySMA[2]) crossabove = math.min(open, close) > mySMA crossbelow = math.max(open, close) < mySMA upalert = (touchabove or touchbelow) and crossabove downalert = (touchabove or touchbelow) and crossbelow h=hour(time('1'),"Asia/Kolkata") m=minute(time('1'),"Asia/Kolkata") startTime=h*100+m if upalert and strategy.position_size == 0 strategy.entry("buy", strategy.long, 15) if downalert and strategy.position_size == 0 strategy.entry("sell", strategy.short, 15) longexit = (slClose < (mySMA - slBuffer)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - Stoploss)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + targetSlab)) or (hour(time) == 15) shortexit = (slClose > (mySMA + slBuffer)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + Stoploss)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - targetSlab)) or (hour(time) == 15) if longexit strategy.close("buy") if shortexit strategy.close("sell")