ڈبل وقفہ فلٹر مومنٹم ٹریڈنگ حکمت عملی


تخلیق کی تاریخ: 2024-04-01 10:54:47 آخر میں ترمیم کریں: 2024-04-01 10:54:47
کاپی: 3 کلکس کی تعداد: 590
1
پر توجہ دیں
1617
پیروکار

ڈبل وقفہ فلٹر مومنٹم ٹریڈنگ حکمت عملی

جائزہ

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

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

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

طاقت کا تجزیہ

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

خطرے کا تجزیہ

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

اصلاح کی سمت

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=5
strategy(title='2"Twin Range Filter', overlay=true)
strat_dir_input = input.string(title='İşlem Yönü', defval='Alis', options=['Alis', 'Satis', 'Tum'])
strat_dir_value = strat_dir_input == 'Alis' ? strategy.direction.long : strat_dir_input == 'Satis' ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)

////////////////////////////

// Backtest inputs
BaslangicAy = input.int(defval=1, title='İlk ay', minval=1, maxval=12)
BaslangicGun = input.int(defval=1, title='İlk Gün', minval=1, maxval=31)
BaslangicYil = input.int(defval=2023, title='İlk Yil', minval=2000)
SonAy = input.int(defval=1, title='Son Ay', minval=1, maxval=12)
SonGun = input.int(defval=1, title='Son Gün', minval=1, maxval=31)
SonYil = input.int(defval=9999, title='Son Yıl', minval=2000)

start = timestamp(BaslangicYil, BaslangicAy, BaslangicGun, 00, 00)  // backtest start window
finish = timestamp(SonYil, SonAy, SonGun, 23, 59)  // backtest finish window
window() => true

source = input(defval=close, title='Source')
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
per1 = input.int(defval=27, minval=1, title='Fast period')
mult1 = input.float(defval=1.6, minval=0.1, title='Fast range')
per2 = input.int(defval=55, minval=1, title='Slow period')
mult2 = input.float(defval=2, minval=0.1, title='Slow range')
smoothrng(x, t, m) =>
    wper = t * 2 - 1
    avrng = ta.ema(math.abs(x - x[1]), t)
    smoothrng = ta.ema(avrng, wper) * m
    smoothrng
smrng1 = smoothrng(source, per1, mult1)
smrng2 = smoothrng(source, per2, mult2)
smrng = (smrng1 + smrng2) / 2
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(source, smrng)
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])
STR = filt + smrng
STS = filt - smrng
FUB = 0.0
FUB := STR < nz(FUB[1]) or close[1] > nz(FUB[1]) ? STR : nz(FUB[1])
FLB = 0.0
FLB := STS > nz(FLB[1]) or close[1] < nz(FLB[1]) ? STS : nz(FLB[1])
TRF = 0.0
TRF := nz(TRF[1]) == FUB[1] and close <= FUB ? FUB : nz(TRF[1]) == FUB[1] and close >= FUB ? FLB : nz(TRF[1]) == FLB[1] and close >= FLB ? FLB : nz(TRF[1]) == FLB[1] and close <= FLB ? FUB : FUB
al = ta.crossover(close, TRF)
sat = ta.crossunder(close, TRF)
plotshape(showsignals and al, title='Long', text='BUY', style=shape.labelup, textcolor=color.white, size=size.tiny, location=location.belowbar, color=color.rgb(0, 19, 230))
plotshape(showsignals and sat, title='Short', text='SELL', style=shape.labeldown, textcolor=color.white, size=size.tiny, location=location.abovebar, color=color.rgb(0, 19, 230))
alertcondition(al, title='Long', message='Long')
alertcondition(sat, title='Short', message='Short')
Trfff = plot(TRF)
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
longFillColor = close > TRF ? color.green : na
shortFillColor = close < TRF ? color.red : na
fill(mPlot, Trfff, title='UpTrend Highligter', color=longFillColor, transp=90)
fill(mPlot, Trfff, title='DownTrend Highligter', color=shortFillColor, transp=90)

//////////////////////



renk1 = input(true, "Mum Renk Ayarları?")
mumrenk = input(true,title="Trend Bazlı Mum Rengi Değişimi?")
htaColor = renk1 ? (al ? color.rgb(224, 230, 57) : #E56337) : #c92626
barcolor(color = mumrenk ? (renk1 ? htaColor : na) : na)
if (al) and window()
    strategy.entry("Al", strategy.long)
if (sat) and window()
    strategy.entry("Sat", strategy.short)


per1(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
zarkesmgb = input.float(title='Zarar Kes Yüzdesi', defval=100, minval=0.01)
zarkeslos = per1(zarkesmgb)
q1 = input.int(title='Satış Lot Sayısı 1.Kısım %', defval=5, minval=1)
q2 = input.int(title='Satış Lot Sayısı 2.Kısım %', defval=8, minval=1)
q3 = input.int(title='Satış Lot Sayısı 3.Kısım %', defval=13, minval=1)
q4 = input.int(title='Satış Lot Sayısı 4.Kısım %', defval=21, minval=1)
tp1 = input.float(title='Kar Yüzdesi 1.Kısım', defval=13, minval=0.01)
tp2 = input.float(title='Kar Yüzdesi 2.Kısım', defval=21, minval=0.01)
tp3 = input.float(title='Kar Yüzdesi 3.Kısım', defval=29, minval=0.01)
tp4 = input.float(title='Kar Yüzdesi 4.Kısım', defval=34, minval=0.01)
strategy.exit('✨KS1', qty_percent=q1, profit=per1(tp1), loss=zarkeslos)
strategy.exit('✨KS2', qty_percent=q2, profit=per1(tp2), loss=zarkeslos)
strategy.exit('✨KS3', qty_percent=q3, profit=per1(tp3), loss=zarkeslos)
strategy.exit('✨KS4', qty_percent=q4, profit=per1(tp4), loss=zarkeslos)