ریئل ٹائم ٹرینڈ لائن ٹریڈنگ پیوٹ پوائنٹس اور ڈھلوان پر مبنی ہے۔

ATR ADX MA
تخلیق کی تاریخ: 2024-04-26 15:34:28 آخر میں ترمیم کریں: 2024-04-26 15:34:28
کاپی: 2 کلکس کی تعداد: 859
1
پر توجہ دیں
1617
پیروکار

ریئل ٹائم ٹرینڈ لائن ٹریڈنگ پیوٹ پوائنٹس اور ڈھلوان پر مبنی ہے۔

جائزہ

یہ حکمت عملی قیمتوں کے اتار چڑھاؤ کے اعلی اور کم مقامات کی شناخت کے لئے بیس پوائنٹس (PivotHigh اور PivotLow) کا استعمال کرتی ہے اور اس کی بنیاد پر اوپر اور نیچے کی طرف رجحان لائنیں کھینچتی ہیں۔ رجحان لائنوں کا تناسب ATR (Average True Range) ، معیاری فرق یا لکیری رجعت جیسے طریقوں سے حاصل کیا جاتا ہے اور اس میں ایک تناسب فیکٹر کے ذریعہ ایڈجسٹ کیا جاتا ہے۔ جب قیمت رجحان لائن کو توڑتی ہے تو یہ حکمت عملی خریدنے یا بیچنے کا اشارہ دیتی ہے۔

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

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

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(" only Ajay ", overlay=true)

//------------------------------------------------------------------------------
//Settings
//------------------------------------------------------------------------------{
length = input.int(14, 'Swing Detection Lookback')
mult = input.float(1., 'Slope', minval = 0, step = .1)
calcMethod = input.string('Atr', 'Slope Calculation Method', options = ['Atr','Stdev','Linreg'])
backpaint = input(true, tooltip = 'Backpainting offset displayed elements in the past. Disable backpainting to see real time information returned by the indicator.')

//Style
upCss = input.color(color.teal, 'Up Trendline Color', group = 'Style')
dnCss = input.color(color.red, 'Down Trendline Color', group = 'Style')
showExt = input(true, 'Show Extended Lines')

//------------------------------------------------------------------------------}
//Calculations
//------------------------------------------------------------------------------{
var upper = 0.
var lower = 0.
var slope_ph = 0.
var slope_pl = 0.

var offset = backpaint ? length : 0

n = bar_index
src = close

ph = ta.pivothigh(length, length)
pl = ta.pivotlow(length, length)

//Slope Calculation Method
slope = switch calcMethod
    'Atr'    => ta.atr(length) / length * mult
    'Stdev'  => ta.stdev(src,length) / length * mult
    'Linreg' => math.abs(ta.sma(src * n, length) - ta.sma(src, length) * ta.sma(n, length)) / ta.variance(n, length) / 2 * mult

//Get slopes and calculate trendlines
slope_ph := ph ? slope : slope_ph
slope_pl := pl ? slope : slope_pl

upper := ph ? ph : upper - slope_ph
lower := pl ? pl : lower + slope_pl

var upos = 0
var dnos = 0
upos := ph ? 0 : close > upper - slope_ph * length ? 1 : upos
dnos := pl ? 0 : close < lower + slope_pl * length ? 1 : dnos

//------------------------------------------------------------------------------}
//Extended Lines
//------------------------------------------------------------------------------{
// var uptl  = line.new(na,na,na,na, color = upCss, style = line.style_dashed, extend = extend.right)
// var dntl  = line.new(na,na,na,na, color = dnCss, style = line.style_dashed, extend = extend.right)

// if ph and showExt
//     uptl.set_xy1(n-offset, backpaint ? ph : upper - slope_ph * length)
//     uptl.set_xy2(n-offset+1, backpaint ? ph - slope : upper - slope_ph * (length+1))

// if pl and showExt
//     dntl.set_xy1(n-offset, backpaint ? pl : lower + slope_pl * length)
//     dntl.set_xy2(n-offset+1, backpaint ? pl + slope : lower + slope_pl * (length+1))

//------------------------------------------------------------------------------}
//Plots
//------------------------------------------------------------------------------{
plot(backpaint ? upper : upper - slope_ph * length, 'Upper', color = ph ? na : upCss, offset = -offset)
plot(backpaint ? lower : lower + slope_pl * length, 'Lower', color = pl ? na : dnCss, offset = -offset)

//Breakouts
upBreakout = upos > upos[1]
dnBreakout = dnos > dnos[1]

if (upBreakout)
    strategy.entry("Up Breakout", strategy.long)

if (dnBreakout)
    strategy.entry("Down Breakout", strategy.short)

//------------------------------------------------------------------------------}
//Alerts
//------------------------------------------------------------------------------{
alertcondition(upos > upos[1], 'Upward Breakout', 'Price broke the down-trendline upward')
alertcondition(dnos > dnos[1], 'Downward Breakout', 'Price broke the up-trendline downward')

//------------------------------------------------------------------------------}