
اعلی درجے کی متحرک رجحانات کی حد کو فلٹر کرنے والی تجارتی حکمت عملی ایک رجحانات کا سراغ لگانے والا نظام ہے جس میں قیمت کی متحرک اتار چڑھاؤ کی حد پر مبنی ہے۔ اس کا بنیادی نظریہ مارکیٹ میں رجحانات کی تبدیلی کو مؤثر طریقے سے پہچاننے اور تجارتی سگنل پیدا کرنے کے لئے ڈبل ٹائم فریموں کے ہموار حدود کا حساب لگانے کے لئے ، قیمتوں کے فلٹرنگ کے ل adaptive خود کار طریقے سے میکانیزم کی تعمیر کرنا ہے۔ یہ حکمت عملی تیزی سے اور سست وقت کی مدت کے اشاریہ کی متحرک اوسطوں کا استعمال کرتے ہوئے قیمتوں میں اتار چڑھاؤ کی حد کا حساب لگاتی ہے ، اور ایک منفرد رینج فلٹرنگ الگورتھم کے ذریعہ رجحانات کی حد کی حدود پیدا کرتی ہے۔ جب قیمت ان حدود کو توڑتی ہے تو ، نظام خود بخود خریدنے یا فروخت کرنے کا اشارہ پیدا کرتا ہے ، جس سے تاجروں کو رجحانات کے سستے مقامات کو پکڑنے میں مدد ملتی ہے ، اور مارکیٹ میں شور کو دور کرنے میں مدد ملتی ہے۔
اس حکمت عملی کا بنیادی اصول یہ ہے کہ قیمتوں میں اتار چڑھاؤ کی ہموار حدود کا حساب کتاب کرکے متحرک رجحان فلٹر قائم کیا جائے۔ اس کے لئے اقدامات یہ ہیں:
ڈبل اسکوپ حسابحکمت عملی: قیمتوں کے اتار چڑھاو کی حد کا حساب لگانے کے لئے دو ٹائم پیریڈ استعمال کریں (فاسٹ اور سست) ۔ پہلے قیمتوں میں مطلق تبدیلی کا حساب لگائیں ، پھر انڈیکس منتقل اوسط (ای ایم اے) کا اطلاق کریں ، اور آخر میں اپنی مرضی کے مطابق ضرب کے ذریعہ حد کی حد کو ایڈجسٹ کریں۔
رینج فلٹر کا اطلاقمنظور شدہ:apply_range_filterاس فنکشن کے حساب سے ہموار رینج قیمت پر لاگو ہوتی ہے جو اس بات کو یقینی بناتی ہے کہ نئی فلٹرنگ قیمت پچھلی فلٹرنگ قیمت سے زیادہ دور نہیں ہوگی ، اس طرح غلط سگنل کو کم کیا جائے گا۔
رجحانات کی شناختحکمت عملی: قیمتوں میں مسلسل اضافے یا کمی کی تعداد کو ٹریک کریں تاکہ رجحانات کی شدت اور مستقل مزاجی کی پیمائش کی جاسکے
ڈومین کی حدود کی تعمیر: حکمت عملی فلٹر قیمت اور اوسط ہموار رینج کے مطابق اوپر اور نیچے کی حدود کا حساب لگاتی ہے۔ یہ حدود تاریخی قیمت کے رویے کی بنیاد پر متحرک طور پر ایڈجسٹ ہوتی ہیں ، جس سے رجحان کی حد فلٹر بنتی ہے۔
سگنل کی پیداوارجب قیمت بند ہوتی ہے تو رجحان کی حد کے فلٹر کو عبور کرتے وقت خریدنے کے سگنل پیدا ہوتے ہیں۔ جب قیمت نیچے ہوتی ہے تو بیچنے کے سگنل پیدا ہوتے ہیں۔ یہ سگنل براہ راست تجارتی حکمت عملی پر عمل درآمد کے لئے داخلے اور باہر نکلنے کے فیصلوں کے لئے استعمال ہوتے ہیں۔
کوڈ کے نفاذ سے ، حکمت عملی نے رجحان کی حد کے فلٹر کی قیمتوں کا تعین کرنے کے لئے کثیر پرتوں کے ساتھ مشروط منطق کا استعمال کیا ، جس سے فلٹر مختلف مارکیٹ کے حالات کے مطابق ڈھال سکتا ہے ، جس سے سگنل کی وشوسنییتا میں اضافہ ہوتا ہے۔ رجحان کی حد کا فلٹر بنیادی طور پر ایک خود کار طریقے سے متحرک حمایت اور مزاحمت کی لائن ہے ، جو مارکیٹ میں اتار چڑھاؤ کے مطابق خود بخود اس کی حساسیت کو ایڈجسٹ کرسکتا ہے۔
اس حکمت عملی کے کوڈ کے نفاذ کا گہرائی سے تجزیہ کیا گیا ہے ، جس کے نتیجے میں درج ذیل نمایاں فوائد سامنے آئے ہیں:
لچکدار: حکمت عملی دوہری ٹائم فریم ((فاسٹ اور سست سائیکلنگ) کے ذریعہ گنتی کی جاتی ہے ، جس سے فلٹر خود بخود مختلف مارکیٹ کے حالات میں اتار چڑھاؤ کی تبدیلیوں کو اپنانے کے قابل ہوجاتا ہے۔ یہ خود سے موافقت کی خصوصیت حکمت عملی کو مختلف مارکیٹ کے ماحول میں نسبتا stable مستحکم کارکردگی برقرار رکھنے کی اجازت دیتی ہے۔
شور فلٹرنگ کی صلاحیتہموار رینج حساب اور مشروط فلٹرنگ میکانزم کے ذریعہ ، حکمت عملی مؤثر طریقے سے مارکیٹ کے شور کے اثر کو تجارتی فیصلوں پر کم کرتی ہے ، اور غلط سگنل کی پیداوار کی تعدد کو کم کرتی ہے۔
رجحان کی شدت کی پیمائشحکمت عملی: قیمتوں میں مسلسل اضافے یا کمی کی تعداد کو ٹریک کرنے کے ذریعے ، تاجروں کو رجحان کی طاقت کا ایک مقداری اشارے فراہم کرتا ہے ، جو موجودہ رجحانات کی وشوسنییتا کا اندازہ کرنے میں مدد کرتا ہے۔
بصری بصیرت: حکمت عملی نے چارٹ پر خرید و فروخت کے اشارے کو نشان زد کیا اور مختلف رجحان والے علاقوں کو رنگوں سے بھر دیا ، جس سے تجارتی مواقع کی بصری شناخت میں بہتری آئی۔
پیرامیٹرز ایڈجسٹ: حکمت عملی میں متعدد ایڈجسٹ ایبل ان پٹ پیرامیٹرز (جیسے تیز / سست دورانیہ ، رینج ضرب وغیرہ) مہیا کیے جاتے ہیں ، جس سے تاجر حکمت عملی کی کارکردگی کو مختلف تجارتی اقسام اور وقت کے فریموں کے مطابق بہتر بناسکتے ہیں۔
ساختہ کوڈ ڈیزائنحکمت عملی: ماڈیولر ڈیزائن کا استعمال کرتے ہوئے ، اپنی مرضی کے مطابق افعال کے ذریعہ بنیادی حساب کتاب کے منطق کو لپیٹ کر ، کوڈ کو سمجھنے اور برقرار رکھنے میں آسان بناتا ہے ، جبکہ اس کے بعد توسیع اور اصلاح میں بھی آسانی ہوتی ہے۔
اگرچہ اس حکمت عملی کے بہت سے فوائد ہیں ، لیکن اس میں کچھ ممکنہ خطرات اور حدود بھی ہیں:
پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی ان پٹ پیرامیٹرز کے انتخاب پر بہت زیادہ انحصار کرتی ہے۔ مختلف ٹائم پیکیج اور ضرب کی ترتیبات سے ٹرانزیکشن کے بالکل مختلف نتائج برآمد ہوسکتے ہیں۔ تاجروں کو مناسب مارکیٹ کے لئے بہترین پیرامیٹرز کا مجموعہ تلاش کرنے کے لئے کافی ریٹرننگ اور اصلاح کی ضرورت ہے۔
تاخیر کا خطرہاسٹریٹجک ای ایم اے کا استعمال کرتے ہوئے ہموار ہینڈلنگ کی وجہ سے ، یہ ناگزیر طور پر کچھ تاخیر کا سبب بنتا ہے ، خاص طور پر جب مارکیٹ میں شدید اتار چڑھاؤ ہوتا ہے یا تیزی سے الٹ جاتا ہے ، جس سے انٹری یا آؤٹ سگنل میں تاخیر ہوسکتی ہے۔
جعلی دراندازی کا خطرہ: بینڈ کی صفائی یا کم اتار چڑھاؤ والی منڈیوں میں ، قیمتیں بار بار رجحان کی حد کے فلٹر کو عبور کرسکتی ہیں ، جس سے متعدد جھوٹے سگنل پیدا ہوتے ہیں ، جس سے بار بار تجارت ہوتی ہے اور تجارت کی لاگت میں اضافہ ہوتا ہے۔
نقصان کی روک تھام کا فقدان: موجودہ حکمت عملی کے نفاذ میں کوئی واضح اسٹاپ نقصان کا طریقہ کار نہیں ہے ، اور رجحان کے اچانک الٹ جانے کی صورت میں بڑے نقصان کا سامنا کرنا پڑ سکتا ہے۔ تاجروں کو مشورہ دیا جاتا ہے کہ وہ مناسب خطرے کے انتظام کے اقدامات کو پورا کریں۔
واحد سگنل ماخذ: حکمت عملی صرف قیمت اور رجحان کی حد کے فلٹر کے کراس پر انحصار کرتی ہے تاکہ سگنل پیدا کیا جاسکے۔ دیگر تصدیق کے اشارے کی معاون توثیق کی کمی ، سگنل کی ناقص وشوسنییتا کا سبب بن سکتی ہے۔
ان خطرات کو کم کرنے کے لئے ، تاجر اضافی فلٹرنگ شرائط کو شامل کرنے پر غور کرسکتے ہیں ، جیسے کہ دیگر تکنیکی اشارے (جیسے RSI ، MACD وغیرہ) کے ساتھ مل کر سگنل کی تصدیق ، سخت فنڈ مینجمنٹ اور اسٹاپ نقصان کی حکمت عملی پر عمل درآمد کرتے ہوئے۔
کوڈ کے نفاذ کا گہرائی سے تجزیہ کرتے ہوئے ، کچھ ممکنہ اصلاحات کی تجاویز پیش کی گئیں:
ایک سے زیادہ توثیق کا طریقہ کار: اضافی تکنیکی اشارے یا شرائط کو سگنل کی توثیق کے طور پر متعارف کروانا ، جیسے کہ تجارت کے حجم ، حرکیات کے اشارے یا مارکیٹ کے ڈھانچے کے تجزیے کے ساتھ مل کر ، سگنل کی وشوسنییتا کو بہتر بنانا۔ اس طرح جعلی سگنل کو کم کیا جاسکتا ہے ، اور صرف اس صورت میں تجارت کی جاتی ہے جب متعدد شرائط ایک ساتھ مل کر پوری ہوجائیں۔
متحرک پیرامیٹرز ایڈجسٹمنٹ: پیرامیٹرز کے لئے خودکار اصلاحی میکانزم کو لاگو کریں ، تاکہ حکمت عملی مارکیٹ کے حالات میں تبدیلی کے مطابق خود بخود تیز / سست سائیکل اور ضرب کی قدر کو ایڈجسٹ کرسکے۔ مثال کے طور پر ، مارکیٹ میں اتار چڑھاؤ کے اشارے (جیسے اے ٹی آر) کی بنیاد پر متحرک ایڈجسٹمنٹ رینج ضرب۔
خطرے کے انتظام میں اضافہ: اسٹاپ نقصان اور منافع بند کرنے کے طریقہ کار کو شامل کریں ، جیسے کہ اے ٹی آر پر مبنی متحرک اسٹاپ ، یا رجحان کی حد کے فلٹر کے الٹ کراس کو بطور ایکسٹینشن سگنل استعمال کریں۔ بہتر رسک مینجمنٹ سے حکمت عملی کے رسک ریٹرن کو نمایاں طور پر بہتر بنایا جاسکتا ہے۔
وقت کا فلٹر: ٹریڈنگ ونڈو فلٹرنگ میں اضافہ کریں ، مارکیٹ کے کھلنے ، بند ہونے یا اہم معاشی اعداد و شمار کے اجراء جیسے اعلی اتار چڑھاؤ کے اوقات سے گریز کریں ، اور غیر معمولی اتار چڑھاؤ سے پیدا ہونے والے جھوٹے اشاروں کو کم کریں۔
رجحان کی طاقت فلٹرنگ: پہلے سے ہی حساب شدہ اوپر / نیچے رجحان گنتی کا استعمال کرتے ہوئے ، کم سے کم رجحان کی طاقت کی حد مقرر کریں ، اور صرف اس وقت تجارتی سگنل بنائیں جب رجحان کافی مضبوط ہو ، اور کمزور رجحانات یا بازاروں میں جمع ہونے پر زیادہ تجارت سے بچیں۔
مشین لرننگ کی اصلاح: مشین لرننگ الگورتھم کو متعارف کرانے پر غور کریں ، ماڈل کو تاریخی اعداد و شمار کی تربیت کے ذریعہ پیرامیٹرز کے انتخاب کو بہتر بنائیں یا سگنل کی شناخت کی درستگی کو بہتر بنائیں۔ مثال کے طور پر ، سگنل کی وشوسنییتا کی پیش گوئی کرنے کے لئے بے ترتیب جنگل یا سپورٹ ویکٹر مشین کا استعمال کیا جاسکتا ہے۔
ان اصلاحات کے نفاذ سے حکمت عملی کی استحکام اور منافع میں نمایاں اضافہ ہوسکتا ہے ، جس سے وہ مختلف مارکیٹ کے حالات میں بہتر کارکردگی کا مظاہرہ کرسکتی ہے۔
اعلی درجے کی متحرک رجحانات کی حد کو فلٹر کرنے والی تجارتی حکمت عملی ایک رجحان ٹریکنگ سسٹم ہے جو قیمتوں کی متحرک حد پر مبنی ہے ، جس میں دوہری ٹائم فریم کے موافقت کی حد کا حساب کتاب کرکے رجحان کی شناخت کے لچکدار میکانزم کی تعمیر کی گئی ہے۔ اس حکمت عملی کا بنیادی فائدہ اس کی مضبوط موافقت اور شور فلٹرنگ کی صلاحیتوں میں ہے ، جو مختلف مارکیٹ کے حالات میں رجحان کی تبدیلی کو مؤثر طریقے سے پہچاننے اور تجارتی سگنل پیدا کرنے کے قابل ہے۔
حکمت عملی تیز رفتار اور سست رفتار وقت کی مدت کی ہموار حدود کے حساب سے ، ایک منفرد رینج فلٹرنگ الگورتھم کے ساتھ مل کر ، متحرک رجحان کی حدود قائم کرتی ہے۔ جب قیمتیں ان حدود سے تجاوز کرتی ہیں تو ، نظام خود بخود خرید یا فروخت کا اشارہ پیدا کرتا ہے ، جس سے تاجروں کو رجحان کے موڑ کی گرفت میں مدد ملتی ہے۔ اس کے علاوہ ، حکمت عملی کی چارٹ کی نمائش کی خصوصیت تاجروں کو مارکیٹ کے رجحانات اور ممکنہ تجارتی مواقع کی بصری شناخت کرنے کی اجازت دیتی ہے۔
اگرچہ اس حکمت عملی کے بہت سارے فوائد ہیں ، لیکن اس میں پیرامیٹرز کی حساسیت ، پسماندگی اور جعلی کامیابیوں جیسے خطرات بھی ہیں۔ متعدد تصدیق کے طریقہ کار ، متحرک پیرامیٹرز کی ایڈجسٹمنٹ ، اور خطرے کے انتظام کو بڑھانے جیسے اصلاحاتی اقدامات کو متعارف کرانے سے حکمت عملی کی استحکام اور منافع کو مزید بہتر بنایا جاسکتا ہے۔
مجموعی طور پر ، یہ ایک اچھی طرح سے ڈیزائن شدہ ، اچھی طرح سے قابل عمل مقدار کی تجارت کی حکمت عملی ہے ، جو تجربہ کار تاجروں کے لئے مناسب ہے کہ وہ کافی حد تک ریٹرننگ اور پیرامیٹرز کی اصلاح کے بعد عملی تجارت پر لاگو ہوں۔ رجحانات کی پیروی کرنے اور مارکیٹ میں تبدیلیوں کو متحرک طور پر اپنانے کے خواہاں تاجروں کے لئے یہ ایک قابل غور حکمت عملی کا انتخاب ہے۔
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("L3 Twin Range Filter Pro Strategy", overlay=true)
// 输入参数
price_source = input(defval=close, title='Price Source')
show_trade_signals = input(title='Show Buy/Sell Signals ?', defval=true)
fast_period = input.int(defval=9, minval=1, title='Fast period')
fast_range_multiplier = input.float(defval=1.6, minval=0.1, title='Fast range multiplier')
slow_period = input.int(defval=34, minval=1, title='Slow period')
slow_range_multiplier = input.float(defval=2, minval=0.1, title='Slow range multiplier')
// 自定义函数
calculate_smooth_range(price, period, multiplier) =>
window_period = period * 2 - 1
average_range = ta.ema(math.abs(price - price[1]), period)
smooth_range = ta.ema(average_range, window_period) * multiplier
smooth_range
apply_range_filter(price, range_value) =>
range_filtered_price = price
range_filtered_price := price > nz(range_filtered_price[1]) ? price - range_value < nz(range_filtered_price[1]) ? nz(range_filtered_price[1]) : price - range_value : price + range_value > nz(range_filtered_price[1]) ? nz(range_filtered_price[1]) : price + range_value
range_filtered_price
// 计算过程
fast_smooth_range = calculate_smooth_range(price_source, fast_period, fast_range_multiplier)
slow_smooth_range = calculate_smooth_range(price_source, slow_period, slow_range_multiplier)
average_smooth_range = (fast_smooth_range + slow_smooth_range) / 2
filtered_price = apply_range_filter(price_source, average_smooth_range)
upward_trend = 0.0
upward_trend := filtered_price > filtered_price[1] ? nz(upward_trend[1]) + 1 : filtered_price < filtered_price[1] ? 0 : nz(upward_trend[1])
downward_trend = 0.0
downward_trend := filtered_price < filtered_price[1] ? nz(downward_trend[1]) + 1 : filtered_price > filtered_price[1] ? 0 : nz(downward_trend[1])
upper_range_boundary = filtered_price + average_smooth_range
lower_range_boundary = filtered_price - average_smooth_range
upper_bound = 0.0
upper_bound := upper_range_boundary < nz(upper_bound[1]) or close[1] > nz(upper_bound[1]) ? upper_range_boundary : nz(upper_bound[1])
lower_bound = 0.0
lower_bound := lower_range_boundary > nz(lower_bound[1]) or close[1] < nz(lower_bound[1]) ? lower_range_boundary : nz(lower_bound[1])
trend_range_filter = 0.0
trend_range_filter := nz(trend_range_filter[1]) == upper_bound[1] and close <= upper_bound ? upper_bound : nz(trend_range_filter[1]) == upper_bound[1] and close >= upper_bound ? lower_bound : nz(trend_range_filter[1]) == lower_bound[1] and close >= lower_bound ? lower_bound : nz(trend_range_filter[1]) == lower_bound[1] and close <= lower_bound ? upper_bound : upper_bound
// 定义交易信号
buy_signal = ta.crossover(close, trend_range_filter)
sell_signal = ta.crossunder(close, trend_range_filter)
// 执行交易
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// 绘制标签
if (show_trade_signals and buy_signal)
label.new(bar_index, trend_range_filter, "BUY", color=color.new(color.green, 0), style=label.style_label_up)
if (show_trade_signals and sell_signal)
label.new(bar_index, trend_range_filter, "SELL", color=color.new(color.red, 0), style=label.style_label_down)
// 绘制图表元素
trend_range_filter_plot = plot(trend_range_filter, color=close > trend_range_filter ? color.new(color.lime, 10) : close < trend_range_filter ? color.new(color.red, 10) : na, title="Trend Range Filter")
price_plot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
up_trend_color = close > trend_range_filter ? color.new(color.lime, 80) : na
down_trend_color = close < trend_range_filter ? color.new(color.red, 80) : na
fill(price_plot, trend_range_filter_plot, title='UpTrend Highlighter', color=up_trend_color, transp=90)
fill(price_plot, trend_range_filter_plot, title='DownTrend Highlighter', color=down_trend_color, transp=90)