
یہ حکمت عملی ایک سادہ حرکت پذیر اوسط ((SMA) پر مبنی بینک نیفٹی فیوچر ٹریڈنگ حکمت عملی ہے۔ حکمت عملی کا بنیادی خیال یہ ہے کہ ایس ایم اے کو رجحان کے اشارے کے طور پر استعمال کیا جائے۔ جب قیمت ایس ایم اے کو عبور کرتی ہے تو زیادہ کام کریں اور جب قیمت ایس ایم اے کو عبور کرتی ہے تو خالی ہوجائیں۔ اس کے ساتھ ہی ، اس حکمت عملی میں خطرے کو کنٹرول کرنے اور منافع کو مقفل کرنے کے لئے اسٹاپ نقصان اور اسٹاپ شرطیں بھی رکھی گئی ہیں۔
اس حکمت عملی کا بنیادی مقصد ایس ایم اے کو ایک رجحاناتی اشارے کے طور پر استعمال کرنا ہے۔ خاص طور پر ، حکمت عملی پہلے ایک مقررہ دورانیے کے ایس ایم اے کا حساب لگاتی ہے (ڈیفالٹ 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")