وسائل لوڈ ہو رہے ہیں... لوڈنگ...

قیمتوں کی اتار چڑھاؤ کی اوسط واپسی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-11 16:03:36
ٹیگز:

جائزہ

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

اصول

حکمت عملی میں دو اہم اشارے استعمال کیے گئے ہیں:

  1. ویکس فکس اشارے: قیمت کی غیر معمولی اتار چڑھاؤ کا تعین کرنے کے لئے ایک خاص مدت کے دوران قیمت کے معیاری انحراف کا حساب لگاتا ہے۔ مخصوص حساب کتاب یہ ہے:
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl) 
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev 
upperBand = midLine + sDev

جہاں wvf قیمت کی اتار چڑھاؤ ہے ، sDev معیاری انحراف ہے ، midLine اوسط لائن ہے ، lowerBand اور upperBand نیچے اور اوپری حد کی لائن ہیں۔ جب قیمت اوپری حد کی لائن سے تجاوز کرتی ہے تو ، اسے غیر معمولی اتار چڑھاؤ سمجھا جاتا ہے۔

  1. آر ایس آئی اشارے: قیمت کی تبدیلی کے وقت کا تعین کرنے کے لئے قیمت کے رشتہ دار طاقت انڈیکس کا حساب لگاتا ہے۔ حساب کتاب یہ ہے:
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7) 
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

جب آر ایس آئی کسی حد سے نیچے ہوتا ہے تو ، یہ oversold کی حیثیت اور ممکنہ چھلانگ کی نشاندہی کرتا ہے۔ جب آر ایس آئی حد سے تجاوز کرتا ہے تو ، یہ overbought کی حیثیت اور ممکنہ پل بیک کی نشاندہی کرتا ہے۔

داخلہ اور باہر نکلنا

انٹری اور آؤٹ پٹ منطق یہ ہے:

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

مختصر اندراج: جب قیمت اوپری حد سے تجاوز کرتی ہے یا اتار چڑھاؤ حد سے تجاوز کرتا ہے ، اور آر ایس آئی ایک قدر سے تجاوز کرتا ہے تو ، مختصر ہوجائیں۔

باہر نکلنا: جب شمعدان کے جسم کی سمت پوزیشن کی سمت کے برعکس ہے تو ، قریب کی پوزیشن۔

فوائد

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

خطرات

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

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

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

نتیجہ

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


/*backtest
start: 2022-10-04 00:00:00
end: 2023-10-10 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's VixFix + RSI Strategy v1.0", shorttitle = "VixFix + RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
limit = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI Limit")

pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0, minval = 1, maxval = 5, title = "Bollinger Band Standard Devaition Up")
lb = input(50, title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?")
sd = input(false, title="Show Standard Deviation Line?")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Vix Fix
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl

col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray

//RSI
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = (wvf >= upperBand or wvf >= rangeHigh) and fastrsi < limit and close < open
dn = (wvf >= upperBand or wvf >= rangeHigh) and fastrsi > (100 - limit) and close > open
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 3

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

مزید