Voss فلٹر اور رجحان اشارے پر مبنی مقداری تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-19 16:59:10
ٹیگز:

جائزہ

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

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

Voss پیش گوئی فلٹر

ووس فلٹر جان ایف ایہلرز کے مضمون ایک نظر مستقبل میں سے آیا ہے۔ اس کا حساب کتاب مندرجہ ذیل ہے:

_filt = 0.5 * _s3 * _x1 + _f1 * _s2 * _filt[1] - _s1 * _filt[2] 
_voss = _x2 * _filt - _sumC

جہاں _x1 پہلا آرڈر قیمت کا فرق ہے۔ _x2 ہموار کرنے والا عنصر ہے۔ _s1، _s2، _s3 فلٹر پیرامیٹرز ہیں۔ _f1 سائیکل پیرامیٹر ہے۔ _filt فلٹر آؤٹ پٹ ہے۔ _voss حتمی آؤٹ پٹ ہے۔

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

فوری رجحان لائن اشارے

رجحان لائن اشارے کا حساب اس طرح کیا جاتا ہے:

_it = (_a-((_a*_a)/4.0))*_src+0.5*_a*_a*_src[1]-(_a-0.75*_a*_a)*_src[2]+2*(1-_a)*nz(_it[1])+-(1-_a)*(1-_a)*nz(_it[2]) 

یہ ریئل ٹائم میں ایک ٹرینڈ لائن کا نقشہ بناتا ہے جو قیمت کی کارروائی سے قریب سے ملتا ہے، ٹرینڈ کی سمت اور طاقت کو درست طریقے سے طے کرتا ہے۔

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

ایک خرید سگنل پیدا کیا جاتا ہے جب Voss فلٹر کے نتیجے کے ذریعے گزر جاتا ہے.

ایک فروخت سگنل پیدا ہوتا ہے جب Voss فلٹر کے نتیجے کے ذریعے نیچے گزرتا ہے.

تجارتی سگنل صرف اس صورت میں قبول کیے جاتے ہیں جب رجحان لائن اشارے کی تصدیق کی جائے۔ اس سے رجحان مارکیٹوں میں ووس فلٹر سے غلط سگنل سے بچنے سے بچتا ہے۔

فوائد

  • Voss فلٹر سائیکلکلکل موڑ کو پکڑنے کے لئے ابتدائی پیش گوئی سگنل فراہم کرتا ہے
  • رجحان لائن اشارے درست طریقے سے رجحان کی سمت کا تعین کرتا ہے، غلط سگنل سے بچنے
  • پیرامیٹرز کو مختلف سائیکلوں اور مارکیٹ کے ماحول کے لئے بہتر بنایا جاسکتا ہے
  • خطرہ کو کنٹرول کرنے کے لئے رکاوٹوں کو شامل کیا جا سکتا ہے

خطرات اور تخفیف

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

خطرات کو کم کیا جا سکتا ہے:

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

بہتر مواقع

اسٹریٹیجی کو بہتر بنایا جاسکتا ہے:

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

نتیجہ

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


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// A Peek Into the Future
// John F. Ehlers
// TASC Aug 2019

// Created by e2e4mfck for tradingview.com
// Modified by © Bitduke

//@version=4
//strategy("Voss Strategy (Filter + IT)", overlay=false, calc_on_every_tick=false,pyramiding=0, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.075)

// voss filter

source = input(close, type = input.source)
period = input(20, type = input.integer)
predict = input(4, type = input.integer)
bandwidth = input(0.25, type = input.float)

// it trendline

src = input(hl2, title="Source IT")
a = input(0.07, title="Alpha", step=0.01) 
fr = input(false, title="Fill Trend Region")
ebc = input(false, title="Enable barcolors")
hr = input(false, title="Hide Ribbon")


voss_filter (_period, _predict, _bandwidth, _source) =>
	float _filt = 0, float _sumC = 0, float _voss = 0
	_PI		= 2 * asin(1)
	_order	= 3 * _predict
	_f1		= cos(2 * _PI / _period)
	_g1		= cos(_bandwidth * 2 * _PI / _period)
	_s1		= 1 / _g1 - sqrt(1 / (_g1 * _g1) - 1)
	_s2		= 1 + _s1
	_s3		= 1 - _s1
	_x1		= _source - _source[2]
	_x2		= (3 + _order) / 2

	for _i = 0 to (_order - 1)
		_sumC := _sumC + ((_i + 1) / _order) * _voss[_order - _i]

	if bar_index <= _order
		_filt := 0		
		_voss := 0		
	else			
		_filt := 0.5 * _s3 * _x1 + _f1 * _s2 * _filt[1] - _s1 * _filt[2]
		_voss := _x2 * _filt - _sumC

	[_voss, _filt]


[Voss, Filt] = voss_filter(period, predict, bandwidth, source)


instantaneous_trendline (_src, _a, _freq, _ebc, _hr) =>
    _it = 0.0
    _it := (_a-((_a*_a)/4.0))*_src+0.5*_a*_a*_src[1]-(_a-0.75*_a*_a)*_src[2]+2*(1-_a )*nz(_it[1], ((_src+2*_src[1]+_src[2])/4.0))-(1-_a)*(1-_a)*nz(_it[2], ((_src+2*_src[1]+_src[2])/4.0))
    _lag = 2.0*_it-nz(_it[2])
    
    [_it, _lag]

[it, lag] = instantaneous_trendline(src, a, fr, ebc, hr)

// - - - - -  - - - - - //

plot(Filt, title = "Filter", style = plot.style_line, color = color.red, linewidth = 2)
plot(Voss, title = "Voss", style = plot.style_line, color = color.blue,	linewidth = 2)
hline(0.0, title = "Zero", linestyle = hline.style_dashed, color = color.black,	linewidth = 1)
plot(hr? na:it, title="IT Trend", color= fr? color.gray : color.red, linewidth=1)
plot(hr? na:lag, title="IT Trigger", color=fr? color.gray : color.blue, linewidth=1)


// Strategy Logic
longCondition =  lag < it  and crossover(Voss,Filt) 
shortCondition = it > lag and crossover(Filt,Voss) 

strategy.entry("Voss_Short", strategy.short, when=shortCondition)
strategy.entry("Voss_Long", strategy.long, when=longCondition)


// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(2, "Backtest Stop Month")
testStopDay = input(29, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = true
// === /END

if not isPeriod
    strategy.cancel_all()
    strategy.close_all()


مزید