यह रणनीति बैंकनिफ्टी वायदा के लिए एक एसएमए-आधारित ट्रेडिंग रणनीति है। रणनीति का मुख्य विचार एसएमए को एक प्रवृत्ति संकेतक के रूप में उपयोग करना है, जब कीमत एसएमए के ऊपर पार करती है और जब कीमत एसएमए के नीचे पार करती है तो शॉर्ट हो जाती है। साथ ही, रणनीति जोखिम को नियंत्रित करने और मुनाफे में लॉक करने के लिए स्टॉप-लॉस और टेक-प्रॉफिट शर्तें भी निर्धारित करती है।
इस रणनीति का मूल एक प्रवृत्ति संकेतक के रूप में एसएमए का उपयोग करना है। विशेष रूप से, रणनीति पहले एक निर्दिष्ट अवधि के एसएमए की गणना करती है (डिफ़ॉल्ट 200 है), और फिर मूल्य और एसएमए की सापेक्ष स्थिति के आधार पर प्रवृत्ति की दिशा निर्धारित करती है। जब कीमत एसएमए से ऊपर जाती है, तो यह माना जाता है कि एक अपट्रेंड बन गया है, और एक लंबी स्थिति ली जाती है; जब कीमत एसएमए से नीचे जाती है, तो यह माना जाता है कि एक डाउनट्रेंड बन गया है, और एक छोटी स्थिति ली जाती है। इसके अलावा, रणनीति जोखिम को नियंत्रित करने और मुनाफे में लॉक करने के लिए स्टॉप-लॉस और टेक-प्रॉफिट शर्तें भी निर्धारित करती है। स्टॉप-लॉस शर्तों में शामिल हैंः मूल्य एसएमए को एक निश्चित सीमा से (
यह रणनीति एसएमए पर आधारित एक सरल ट्रेडिंग रणनीति है, जो बैंकनिफ़्टी वायदा के लिए उपयुक्त है। इसके फायदे इसके सरल सिद्धांत, मजबूत अनुकूलन क्षमता और जोखिम नियंत्रण उपायों में निहित हैं। हालांकि, व्यावहारिक अनुप्रयोग में, अभी भी संभावित जोखिमों जैसे कि पैरामीटर अनुकूलन, दोलन बाजार, प्रवृत्ति उलट और इंट्राडे अस्थिरता पर ध्यान देने की आवश्यकता है। भविष्य में, रणनीति को पैरामीटर अनुकूलन, अन्य संकेतकों के साथ संयोजन, गतिशील स्टॉप-लॉस और व्यापार समय को सीमित करने जैसे पहलुओं से अनुकूलित और सुधार किया जा सकता है।
// 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")