رینج فلٹر خریدیں فروخت سگنل کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-03-08 17:06:50
ٹیگز:

img

جائزہ

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

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

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

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

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

فوائد

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

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

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

خطرات

اس حکمت عملی کا بنیادی خطرہ اتار چڑھاؤ کی حد کے پیرامیٹرز کی ترتیب میں ہے۔ اگر مقررہ حد بہت بڑی یا بہت چھوٹی ہے تو ، اس سے سگنل کے معیار اور منافع کے مواقع پر منفی اثر پڑے گا۔

اس کے علاوہ ، اس حکمت عملی میں قلیل مدتی اتار چڑھاؤ کے مضبوط رجحانات والی منڈیوں میں منافع کے نسبتا fewer کم مواقع ہیں۔ مختلف سائیکل سسٹم کے امتزاج کا استعمال اس مسئلے کو کم کرنے میں مدد کرتا ہے۔

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

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

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

  2. مضبوطی کے جالوں سے بچنے کے لئے بڑے سائیکل رجحانات پر مبنی فلٹرنگ کے قواعد کو بڑھانا۔

  3. حکمت عملی کے مختلف دوروں کو ایک نظام بنانے اور مجموعی استحکام کو بہتر بنانے کے لئے یکجا کریں.

  4. پیرامیٹر کی ترتیبات اور فلٹرنگ قوانین کے اثر کو بہتر بنانے کے لئے مشین سیکھنے کے الگورتھم شامل کریں.

نتیجہ

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


/*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')





مزید