موونگ ایوریج اور انٹرا ڈے پیٹرن پر مبنی ذہین ٹریلنگ اسٹاپ نقصان کی حکمت عملی

SMA MA18 ATR
تخلیق کی تاریخ: 2025-01-17 16:04:09 آخر میں ترمیم کریں: 2025-01-17 16:04:09
کاپی: 4 کلکس کی تعداد: 361
1
پر توجہ دیں
1617
پیروکار

موونگ ایوریج اور انٹرا ڈے پیٹرن پر مبنی ذہین ٹریلنگ اسٹاپ نقصان کی حکمت عملی

جائزہ

یہ 18 دن کی موونگ ایوریج (SMA18) پر مبنی حکمت عملی ہے، جو انٹرا ڈے ٹریڈنگ پیٹرن کی شناخت اور ایک سمارٹ ٹریلنگ اسٹاپ میکانزم کے ساتھ مل کر ہے۔ یہ حکمت عملی بنیادی طور پر قیمت اور SMA18 کے درمیان تعلق کا مشاہدہ کرتی ہے، انٹرا ڈے ہائی اور لو پوائنٹس کو یکجا کرتی ہے، اور صحیح وقت پر لمبی پوزیشن میں داخل ہوتی ہے۔ حکمت عملی ایک لچکدار سٹاپ لوس پلان کو اپناتی ہے، جو یا تو ایک فکسڈ سٹاپ لاس پوائنٹ یا دو دن کے کم ترین پوائنٹ کو ٹریلنگ سٹاپ لاس بینچ مارک کے طور پر استعمال کر سکتا ہے۔

حکمت عملی کا اصول

حکمت عملی کی بنیادی منطق میں درج ذیل کلیدی عناصر شامل ہیں:

  1. داخلے کی شرائط قیمت کی 18 دن کی موونگ ایوریج پر مبنی ہوتی ہیں جب آپ مارکیٹ میں داخل ہونے کا انتخاب کر سکتے ہیں جب یہ حرکت پذیری اوسط سے زیادہ ہو یا داخل ہو۔
  2. انٹرا ڈے کے لائن پیٹرن کا تجزیہ کرکے، خاص طور پر اندرونی K-لائن (اندرونی بار) پیٹرن پر توجہ دینے سے، اندراج کی درستگی بہتر ہوتی ہے۔
  3. ہفتے کے مختلف تجارتی دنوں کی کارکردگی کی خصوصیات کی بنیاد پر، آپ مخصوص دنوں میں منتخب تجارت کر سکتے ہیں۔
  4. لین دین کے امکان کو بڑھانے کے لیے داخلے کی قیمت ایک حد کی ترتیب میں مقرر کی جاتی ہے، جس میں کم پوائنٹ سے اوپر ایک چھوٹا پریمیم ہوتا ہے۔
  5. سٹاپ نقصان کا طریقہ کار دو طریقوں کو سپورٹ کرتا ہے: ایک انٹری پرائس کی بنیاد پر ایک مقررہ سٹاپ نقصان ہے، اور دوسرا پچھلے دو تجارتی دنوں کے سب سے کم پوائنٹ کی بنیاد پر ٹریلنگ سٹاپ نقصان ہے۔

اسٹریٹجک فوائد

  1. تکنیکی اشارے اور قیمت کے نمونوں کو یکجا کرتے ہوئے، اندراج کے اشارے زیادہ قابل اعتماد ہیں۔
  2. لچکدار ٹریڈنگ ٹائم سلیکشن میکانزم، جسے مارکیٹ کی مختلف خصوصیات کے مطابق بہتر بنایا جا سکتا ہے۔
  3. قیمتوں میں اتار چڑھاؤ کے لیے کافی گنجائش فراہم کرتے ہوئے ذہین اسٹاپ نقصان کا حل منافع کی حفاظت کرتا ہے۔
  4. حکمت عملی کے پیرامیٹرز انتہائی ایڈجسٹ ہوتے ہیں اور مارکیٹ کے مختلف ماحول کے مطابق ڈھال سکتے ہیں۔
  5. اندرونی K-لائن پیٹرن کی اسکریننگ کے ذریعے، غلط سگنلز کو مؤثر طریقے سے کم کیا جاتا ہے۔

اسٹریٹجک رسک

  1. غیر مستحکم مارکیٹوں میں، مقررہ اسٹاپ قبل از وقت باہر نکلنے کا باعث بن سکتے ہیں۔
  2. تیزی سے الٹنے کے لیے، ٹریلنگ اسٹاپ نقصان کم منافع میں بند ہو سکتا ہے۔
  3. سائیڈ وے مرحلے کے دوران، بار بار داخلی موم بتیاں ضرورت سے زیادہ تجارت کا باعث بن سکتی ہیں۔ انسدادی اقدامات:
  • مارکیٹ کے اتار چڑھاؤ کے مطابق سٹاپ نقصان کے فاصلے کو متحرک طور پر ایڈجسٹ کریں۔
  • رجحان کی تصدیق کے اشارے شامل کریں۔
  • کم معیار کی تجارت کو فلٹر کرنے کے لیے کم از کم منافع کا ہدف مقرر کریں۔

حکمت عملی کی اصلاح کی سمت

  1. سٹاپ نقصان کے فاصلے کو متحرک طور پر ایڈجسٹ کرنے کے لیے اتار چڑھاؤ کے اشارے (جیسے ATR) متعارف کروائیں
  2. حجم کے تجزیہ کے طول و عرض میں اضافہ کریں اور سگنل کی وشوسنییتا کو بہتر بنائیں
  3. تاریخی کارکردگی کی بنیاد پر تجارتی اوقات کو خود بخود بہتر بنانے کے لیے تاریخ کے انتخاب کے بہتر الگورتھم تیار کریں۔
  4. کمزور رجحانات میں ٹریڈنگ سے بچنے کے لیے ٹرینڈ طاقت کا فلٹر شامل کیا گیا۔
  5. پیٹرن کی شناخت کی درستگی کو بہتر بنانے کے لیے اندرونی K-لائن ریکگنیشن الگورتھم کو بہتر بنائیں

خلاصہ کریں۔

یہ حکمت عملی متعدد جہتوں سے تجزیہ کے طریقوں کو ملا کر ایک نسبتاً مکمل تجارتی نظام بناتی ہے۔ حکمت عملی کا بنیادی فائدہ اس کی لچکدار پیرامیٹر سیٹنگز اور ذہین سٹاپ لاس میکانزم میں ہے، جو اسے مختلف مارکیٹ کے ماحول کے مطابق ڈھالنے کے قابل بناتا ہے۔ مسلسل اصلاح اور بہتری کے ذریعے، حکمت عملی سے مارکیٹ کے مختلف حالات میں مستحکم کارکردگی کو برقرار رکھنے کی توقع ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zweiprozent

strategy('Buy Low over 18 SMA Strategy', overlay=true, default_qty_value=1)
xing = input(false, title='crossing 18 sma?')
sib = input(false, title='trade inside Bars?')
shortinside = input(false, title='trade inside range bars?')
offset = input(title='offset', defval=0.001)
belowlow = input(title='stop below low minus', defval=0.001)
alsobelow = input(false, title='Trade only above 18 sma?')
tradeabove = input(false, title='Trade with stop above order?')
trailingtwo = input(false, title='exit with two days low trailing?')


insideBar() =>  //and high <= high[1] and low >= low[1] ? 1 : 0
    open <= close[1] and close >= open[1] and close <= close[1] or open >= close[1] and open <= open[1] and close <= open[1] and close >= close[1] ? 1 : 0

inside() =>
    high <= high[1] and low >= low[1] ? 1 : 0
enterIndex = 0.0
enterIndex := enterIndex[1]

inPosition = not na(strategy.position_size) and strategy.position_size > 0
if inPosition and na(enterIndex)
    enterIndex := bar_index
    enterIndex



//if strategy.position_size <= 0 

//    strategy.exit("Long", stop=low[0]-stop_loss,comment="stop loss")


//if not na(enterIndex) and bar_index - enterIndex + 0 >= 0 

//    strategy.exit("Long", stop=low[0]-belowlow,comment="exit")

//    enterIndex := na

T_Low = request.security(syminfo.tickerid, 'D', low[0])
D_High = request.security(syminfo.tickerid, 'D', high[1])
D_Low = request.security(syminfo.tickerid, 'D', low[1])
D_Close = request.security(syminfo.tickerid, 'D', close[1])
D_Open = request.security(syminfo.tickerid, 'D', open[1])

W_High2 = request.security(syminfo.tickerid, 'W', high[1])
W_High = request.security(syminfo.tickerid, 'W', high[0])
W_Low = request.security(syminfo.tickerid, 'W', low[0])
W_Low2 = request.security(syminfo.tickerid, 'W', low[1])
W_Close = request.security(syminfo.tickerid, 'W', close[1])
W_Open = request.security(syminfo.tickerid, 'W', open[1])

//longStopPrice  = strategy.position_avg_price * (1 - stopl)
// Go Long - if prev day low is broken and stop loss prev day low
entryprice = ta.sma(close, 18)

//(high[0]<=high[1]or close[0]<open[0]) and low[0]>vwma(close,30) and time>timestamp(2020,12,0,0,0)

showMon = input(true, title='trade tuesdays?')
showTue = input(true, title='trade wednesdayy?')
showWed = input(true, title='trade thursday?')
showThu = input(true, title='trade friday?')
showFri = input(true, title='trade saturday?')
showSat = input(true, title='trade sunday?')
showSun = input(true, title='trade monday?')

isMon() =>
    dayofweek(time('D')) == dayofweek.monday and showMon
isTue() =>
    dayofweek(time('D')) == dayofweek.tuesday and showTue
isWed() =>
    dayofweek(time('D')) == dayofweek.wednesday and showWed
isThu() =>
    dayofweek(time('D')) == dayofweek.thursday and showThu
isFri() =>
    dayofweek(time('D')) == dayofweek.friday and showFri
isSat() =>
    dayofweek(time('D')) == dayofweek.saturday and showSat
isSun() =>
    dayofweek(time('D')) == dayofweek.sunday and showSun


clprior = close[0]
entryline = ta.sma(close, 18)[1]
//(isMon() or isTue()or isTue()or  isWed() 
noathigh = high < high[1] or high[2] < high[3] or high[1] < high[2] or low[1] < ta.sma(close, 18)[0] and close > ta.sma(close, 18)[0]

if noathigh and time > timestamp(2020, 12, 0, 0, 0) and (alsobelow == false or high >= ta.sma(close, 18)[0]) and (isMon() or isTue() or isWed() or isThu() or isFri() or isSat() or isSun()) and (high >= high[1] or sib or low <= low[1])  //((sib == false and inside()==true) or inside()==false) and (insideBar()==true or shortinside==false)
    if tradeabove == false
        strategy.entry('Long', strategy.long, limit=low + offset * syminfo.mintick, comment='long')
    if tradeabove == true and (xing == false or clprior < entryline)  // and high<high[1] 
        strategy.entry('Long', strategy.long, stop=high + offset * syminfo.mintick, comment='long')


//if time>timestamp(2020,12,0,0,0) and isSat()  
//    strategy.entry("Long", strategy.long, limit=0, comment="long")


//strategy.exit("Long", stop=low-400*syminfo.mintick)

//strategy.exit("Long", stop=strategy.position_avg_price-10*syminfo.mintick,comment="exit")
//strategy.exit("Long", stop=low[1]-belowlow*syminfo.mintick, comment="stop")

if strategy.position_avg_price > 0 and trailingtwo == false and close > strategy.position_avg_price
    strategy.exit('Long', stop=strategy.position_avg_price, comment='stop')

if strategy.position_avg_price > 0 and trailingtwo == false and (low > strategy.position_avg_price or close < strategy.position_avg_price)
    strategy.exit('Long', stop=low[0] - belowlow * syminfo.mintick, comment='stop')

if strategy.position_avg_price > 0 and trailingtwo
    strategy.exit('Long', stop=ta.lowest(low, 2)[0] - belowlow * syminfo.mintick, comment='stop')