
رینج فلٹر خرید و فروخت سگنل فلٹرنگ حکمت عملی (Range Filter Buy Sell Signals Strategy) ایک بہت ہی عملی اور مقداری تجارتی حکمت عملی ہے۔ یہ قیمتوں کے اتار چڑھاؤ کی رینج کا استعمال خرید و فروخت کے سگنلوں کو فلٹر کرنے کے لئے کرتی ہے ، جس سے کم اتار چڑھاؤ والے بازاروں میں جعلی سگنل کم ہوجاتے ہیں ، اور اعلی اتار چڑھاؤ والے بازاروں میں سگنل کی کوالٹی میں اضافہ ہوتا ہے۔ اس حکمت عملی کا نام حکمت عملی کے بنیادی افعال کا درست طریقے سے خلاصہ کرتا ہے۔
یہ حکمت عملی سب سے پہلے ایک مخصوص دور میں اثاثہ کی قیمتوں میں اتار چڑھاؤ کی حد کا حساب لگاتی ہے۔ خاص طور پر ، یہ قیمتوں میں اتار چڑھاؤ کی شدت کا تعین کرنے کے لئے ایک مخصوص دور میں اعلی ترین قیمتوں اور کم ترین قیمتوں کے درمیان فرق کا حساب لگاتا ہے۔
اس کے بعد ، یہ خریدنے اور بیچنے کے سگنل تیار کرتا ہے۔ تاہم ، تمام سگنل انٹری کو متحرک نہیں کرتے ہیں ، بلکہ قیمت کی اتار چڑھاؤ کی حد فلٹرنگ کی شرائط کو پورا کرنے کی ضرورت ہے۔ مثال کے طور پر ، خریدنے کا سگنل صرف اس وقت جاری کیا جاتا ہے جب قیمت اتار چڑھاؤ کی حد کو توڑ دیتی ہے۔
اس طرح ، یہ حکمت عملی کم اتار چڑھاؤ والے بازار کے ماحول میں زیادہ تر جھوٹے اشاروں کو فلٹر کرنے میں کامیاب ہے ، اور غیر ضروری داخلے سے بچنے میں کامیاب ہے۔ جبکہ اعلی اتار چڑھاؤ کے وقت ، یہ زیادہ سے زیادہ سمتوں کی نقل و حرکت کو پکڑ سکتا ہے اور اس سے فائدہ اٹھا سکتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ سگنل کی فلٹرنگ کی طاقت کو متحرک طور پر ایڈجسٹ کرسکتا ہے۔ کم اتار چڑھاؤ کے دوران ، یہ صرف اعلی معیار کے سگنل کا انتخاب کرتا ہے۔ اور اعلی اتار چڑھاؤ کے دوران ، یہ مارکیٹ میں پیش کردہ مزید مواقع سے فائدہ اٹھاتا ہے۔
یہ حکمت عملی فکسڈ پیرامیٹرز کے فلٹرز کے مقابلے میں زیادہ ذہین اور لچکدار ہے۔ مارکیٹ کی حالت سے قطع نظر ، یہ بہتر رسک ریٹرن فراہم کرتی ہے۔
اس کے علاوہ ، یہ حکمت عملی رجحان کی سمت کا فیصلہ کرنے کے ساتھ مل کر ، ایک ہی آپریشن کی شرائط کے مقابلے میں ، زیادہ قابل اعتماد تجارتی سگنل فراہم کرتی ہے۔ اس کے ساتھ ہی ، اس میں نقصان کو روکنے کی روک تھام کی خصوصیت بھی ہے ، جو انفرادی تجارت کے خطرے کو مؤثر طریقے سے کنٹرول کرتی ہے۔
اس حکمت عملی کا بنیادی خطرہ اتار چڑھاؤ کی حد کے پیرامیٹرز کی ترتیب میں ہے۔ اگر حد بہت بڑی یا بہت چھوٹی ہے تو ، اس سے سگنل کے معیار اور منافع کے مواقع پر منفی اثر پڑتا ہے۔
اس کے علاوہ ، مارکیٹوں میں جہاں قیمتوں میں قلیل مدتی اتار چڑھاؤ کا رجحان زیادہ ہوتا ہے ، اس حکمت عملی کے منافع کے مواقع نسبتا less کم ہوتے ہیں۔ مختلف دورانیاتی نظاموں کا مجموعہ اس مسئلے کو کم کرنے میں مدد کرسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
خود کار طریقے سے اپنی مرضی کے مطابق پیرامیٹرز الگورتھم کا استعمال کرتے ہوئے فلو رینج پیرامیٹرز کو بہتر بنانے کے لئے، اسے زیادہ ذہین اور متحرک بنانے کے لئے.
بڑے سائیکل کے رجحانات پر مبنی فلٹرنگ کے قواعد میں اضافہ کریں ، اور اتار چڑھاؤ کے بازاروں میں پھنسنے سے بچیں۔
اس حکمت عملی کو مختلف ادوار کے ساتھ جوڑ کر ایک نظام تشکیل دیا گیا ہے جو مجموعی طور پر استحکام کو بہتر بناتا ہے۔
مشین لرننگ الگورتھم شامل کریں تاکہ پیرامیٹرز کی ترتیب اور فلٹرنگ قواعد کو بہتر بنایا جاسکے۔
قیمت کے اتار چڑھاو کی حد پر مبنی خرید و فروخت سگنل فلٹرنگ حکمت عملی ایک بہت ہی عملی اور موثر مقدار کی تجارت کی حکمت عملی ہے۔ یہ فلٹرنگ کی شدت کو متحرک طور پر ایڈجسٹ کرسکتا ہے اور مارکیٹ کے مختلف ماحول میں بہتر رسک ریٹرن فراہم کرسکتا ہے۔ اس کے ساتھ ہی ، اس حکمت عملی میں بہت زیادہ اصلاح کی گنجائش ہے ، خاص طور پر پیرامیٹرز کی اصلاح اور قواعد کی اصلاح کے لحاظ سے۔ مجموعی طور پر ، یہ حکمت عملی ایک بہت اچھا بنیادی حل پیش کرتی ہے جو مقدار کے تاجروں کو مستحکم اضافی منافع کی تلاش میں ہے۔
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
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/
// Credits to the original Script - Range Filter DonovanWall https://www.tradingview.com/script/lut7sBgG-Range-Filter-DW/
// This version is the old version of the Range Filter with less settings to tinker with
//@version=5
strategy(title='Range Filter - B&S Signals', shorttitle='[Doan]_RF-B&S Signals', overlay=true)
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Functions
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
longLossPerc = input.float(title='Long Stop Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
shortLossPerc = input.float(title='Short Stop Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
longTakePerc = input.float(title='Long Take(%)', minval=0.0, step=0.1, defval=1) * 0.01
shortTakePerc = input.float(title='Short Take (%)', minval=0.0, step=0.1, defval=1) * 0.01
emaLength = input.int(200, title="EMA Length")
// Determine stop loss price
//Range Size Function
rng_size(x, qty, n) =>
wper = n * 2 - 1
avrng = ta.ema(math.abs(x - x[1]), n)
AC = ta.ema(avrng, wper) * qty
rng_size = AC
//Range Filter Function
rng_filt(x, rng_, n) =>
r = rng_
var rfilt = array.new_float(2, x)
array.set(rfilt, 1, array.get(rfilt, 0))
if x - r > array.get(rfilt, 1)
array.set(rfilt, 0, x - r)
if x + r < array.get(rfilt, 1)
array.set(rfilt, 0, x + r)
rng_filt1 = array.get(rfilt, 0)
hi_band = rng_filt1 + r
lo_band = rng_filt1 - r
rng_filt = rng_filt1
[hi_band, lo_band, rng_filt]
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Inputs
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Range Source
rng_src = input(defval=close, title='Swing Source')
//Range Period
rng_per = input.int(defval=20, minval=1, title='Swing Period')
//Range Size Inputs
rng_qty = input.float(defval=3.5, minval=0.0000001, title='Swing Multiplier')
//Bar Colors
use_barcolor = input(defval=false, title='Bar Colors On/Off')
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Definitions
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Range Filter Values
[h_band, l_band, filt] = rng_filt(rng_src, rng_size(rng_src, rng_qty, rng_per), rng_per)
//Direction Conditions
var fdir = 0.0
fdir := filt > filt[1] ? 1 : filt < filt[1] ? -1 : fdir
upward = fdir == 1 ? 1 : 0
downward = fdir == -1 ? 1 : 0
//Trading Condition
longCond = rng_src > filt and rng_src > rng_src[1] and upward > 0 or rng_src > filt and rng_src < rng_src[1] and upward > 0
shortCond = rng_src < filt and rng_src < rng_src[1] and downward > 0 or rng_src < filt and rng_src > rng_src[1] and downward > 0
CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]
longCondition = longCond and CondIni[1] == -1
shortCondition = shortCond and CondIni[1] == 1
//Colors
filt_color = upward ? #05ff9b : downward ? #ff0583 : #cccccc
bar_color = upward and rng_src > filt ? rng_src > rng_src[1] ? #05ff9b : #00b36b : downward and rng_src < filt ? rng_src < rng_src[1] ? #ff0583 : #b8005d : #cccccc
ema = ta.ema(close, emaLength)
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Outputs
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)
longTakePrice = strategy.position_avg_price * (1 + longTakePerc)
shortTakePrice = strategy.position_avg_price * (1 - shortTakePerc)
//Filter Plot
filt_plot = plot(filt, color=filt_color, linewidth=3, title='Filter', transp=67)
//Band Plots
h_band_plot = plot(h_band, color=color.new(#05ff9b, 100), title='High Band')
l_band_plot = plot(l_band, color=color.new(#ff0583, 100), title='Low Band')
//Band Fills
fill(h_band_plot, filt_plot, color=color.new(#00b36b, 92), title='High Band Fill')
fill(l_band_plot, filt_plot, color=color.new(#b8005d, 92), title='Low Band Fill')
//Bar Color
barcolor(use_barcolor ? bar_color : na)
// Entry
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
plot(ema)
//Plot Buy and Sell Labels
plotshape(longCondition, title='Buy Signal', text='BUY', textcolor=color.white, style=shape.labelup, size=size.normal, location=location.belowbar, color=color.new(color.green, 0))
plotshape(shortCondition, title='Sell Signal', text='SELL', textcolor=color.white, style=shape.labeldown, size=size.normal, location=location.abovebar, color=color.new(color.red, 0))
//Alerts
alertcondition(longCondition, title='Buy Alert', message='BUY')
alertcondition(shortCondition, title='Sell Alert', message='SELL')