وسائل لوڈ ہو رہے ہیں... لوڈنگ...

انٹرا ڈے پیٹرن کی شناخت کے ساتھ ایس ایم اے پر مبنی ذہین ٹریلنگ اسٹاپ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2025-01-17 16:04:09
ٹیگز:ایس ایم اےایم اے 18اے ٹی آر

 SMA-Based Intelligent Trailing Stop Strategy with Intraday Pattern Recognition

جائزہ

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

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

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

حکمت عملی کے فوائد

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

حکمت عملی کے خطرات

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

اصلاح کی ہدایات

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

خلاصہ

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


/*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')




متعلقہ

مزید