ہموار اتار چڑھاؤ بینڈ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-29 16:22:14
ٹیگز:

img

جائزہ

یہ حکمت عملی قیمت کی اتار چڑھاؤ کی بنیاد پر قیمت کے بینڈ پیدا کرتی ہے ، اور جب قیمت بینڈ کو توڑتی ہے تو تجارتی سگنل تیار کرتی ہے۔

حکمت عملی منطق

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

خاص طور پر ، ہموار اتار چڑھاؤ smrng کو smoothhrng فنکشن کے ذریعہ حساب کیا جاتا ہے۔ اس کے بعد قیمت کے بینڈوں کے اوپری بینڈ hband اور نچلے بینڈ lband کا حساب smrng کی بنیاد پر کیا جاتا ہے۔ اس کی بنیاد پر لانگ شرط longCondition اور شارٹ شرط shortCondition مرتب کی جاتی ہے۔ جب longCondition پوری ہوجاتی ہے تو ، خرید کا سگنل تیار کیا جاتا ہے۔ جب شارٹ شرط پوری ہوجاتی ہے تو ، فروخت کا سگنل تیار کیا جاتا ہے۔

فوائد کا تجزیہ

اس حکمت عملی کے فوائد یہ ہیں:

  1. تجارتی سگنل بنانے کے لئے قیمت کی اتار چڑھاؤ کا استعمال مارکیٹ میں ہونے والی تبدیلیوں کو مؤثر طریقے سے ٹریک کرسکتا ہے۔

  2. ایکسپونینشل چلتی اوسط کے ساتھ اتار چڑھاؤ کو ہموار کرنا شور کو فلٹر کرسکتا ہے اور زیادہ قابل اعتماد تجارتی سگنل پیدا کرسکتا ہے۔

  3. بینڈ کی حد کو اتار چڑھاؤ کے ضارب کے ذریعے ایڈجسٹ کیا جاسکتا ہے ، جس سے حکمت عملی زیادہ لچکدار ہوتی ہے۔

  4. اس کے ساتھ ساتھ بریکآؤٹ فیصلے کے ساتھ مل کر، جب رجحان کی تبدیلی واقع ہوتی ہے تو یہ بروقت تجارتی مواقع کو پکڑ سکتا ہے.

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

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

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

  3. بریک آؤٹ سگنلز میں وقت کی تاخیر ہوتی ہے ، جس کی وجہ سے قبل از وقت داخلے یا دیر سے داخلے کا سبب بن سکتا ہے۔ تصدیق کے لئے دوسرے اشارے متعارف کرائے جاسکتے ہیں۔

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

حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:

  1. اتار چڑھاؤ کا حساب لگانے کے لئے سب سے مناسب مدت تلاش کرنے کے لئے مختلف قیمت ڈیٹا سائیکلوں کا تجربہ کرنا۔

  2. مختلف حرکت پذیر اوسط الگورتھم کی کوشش کر رہے ہیں جیسے وزن شدہ حرکت پذیر اوسط.

  3. بریکآؤٹ سگنل کی تصدیق کے لیے تجارتی حجم یا دیگر اشارے متعارف کرانا۔

  4. ہر تجارت میں نقصانات کو کنٹرول کرنے کے لئے سٹاپ نقصان یا ٹریلنگ سٹاپ کی ترتیب.

  5. زیادہ سے زیادہ بینڈ رینج کا تعین کرنے کے لئے اتار چڑھاؤ ضابطہ ضرب کو بہتر بنانا.

خلاصہ

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


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("1SmSm1 Strategy", shorttitle="1SmSm1", overlay=true)

// Source
src = input(defval=close, title="Source")

// Sampling Period
per = input(defval=100, minval=1, title="Sampling Period")

// Range Multiplier
mult = input(defval=3.0, minval=0.1, title="Range Multiplier")

// Smooth Average Range
smoothrng(x, t, m) =>
    wper = (t * 2) - 1
    avrng = ema(abs(x - x[1]), t)
    smoothrng = ema(avrng, wper) * m
    smoothrng

smrng = smoothrng(src, per, mult)

// Range Filter
rngfilt(x, r) =>
    rngfilt = x
    rngfilt := x > nz(rngfilt[1]) ? ((x - r) < nz(rngfilt[1]) ? nz(rngfilt[1]) : (x - r)) : ((x + r) > nz(rngfilt[1]) ? nz(rngfilt[1]) : (x + r))
    rngfilt

filt = rngfilt(src, smrng)

// Filter Direction
upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])

downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])

// Target Bands
hband = filt + smrng
lband = filt - smrng

// Breakouts
longCondition = (src > filt) and (src > src[1]) and (upward > 0)
shortCondition = (src < filt) and (src < src[1]) and (downward > 0)

strategy.entry("Buy", strategy.long, when = longCondition)
strategy.entry("Sell", strategy.short, when = shortCondition)

// Plotting
plot(filt, color=upward > 0 ? color.lime : downward > 0 ? color.red : color.orange, linewidth=3, title="Range Filter")
hbandplot = plot(hband, color=color.aqua, transp=100, title="High Target")
lbandplot = plot(lband, color=color.fuchsia, transp=100, title="Low Target")

// Fills
fill(hbandplot, lbandplot, color=color.aqua, title="Target Range")

// Bar Color
barcolor(longCondition ? color.green : shortCondition ? color.red : na)

// Alerts
alertcondition(longCondition, title="Buy Alert", message="BUY")
alertcondition(shortCondition, title="Sell Alert", message="SELL")

مزید