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