
اس حکمت عملی کا مرکزی خیال یہ ہے کہ مارکیٹ کے نچلے پوائنٹس کو درست طریقے سے پکڑنے کے لئے وکس کی مرمت کے اشارے اور اس کی لکیری واپسی کو جوڑنا ہے۔ اس حکمت عملی کا نام ہے مرجان مرمت لکیری واپسی کے نچلے پوائنٹس کی حکمت عملی۔
مندرجہ بالا عمل ، لکیری رجعت کا استعمال کرتے ہوئے ، وکس کو درست کرنے والے اشارے کے اشارے کی درستگی اور بروقتیت کو بہتر بناتا ہے ، جس سے کچھ جعلی سگنل فلٹر ہوجاتے ہیں ، جس سے کم نقطہ کو درست طریقے سے پکڑا جاسکتا ہے۔
اس حکمت عملی کا استعمال کرتے ہوئے کم نقطہ نظر کا تعین کرنے کے لئے وکس ریفریجریشن اشارے کا استعمال کرتے ہوئے ، لکیری رجعت متعارف کرانے سے سگنل کے معیار میں اضافہ ہوتا ہے ، جس سے مارکیٹ میں کم نقطہ نظر کو مؤثر طریقے سے پکڑنا ممکن ہوجاتا ہے۔ حکمت عملی آسان ہے ، عملی ہے ، نتائج مثالی ہیں ، اور جعلی سگنل کو مکمل طور پر فلٹر کرنے میں ناکامی کا بنیادی خطرہ ہے۔ ہمیں ابھی بھی پیرامیٹرز کی ترتیبات کو بہتر بنانے کی ضرورت ہے ، اور حکمت عملی کو مزید بہتر بنانے کے لئے سگنل کی تصدیق کے لئے دوسرے ذرائع متعارف کرانے پر غور کرنا ہے۔ مجموعی طور پر ، اس حکمت عملی نے مارکیٹ میں کم نقطہ نظر کا تعین کرنے کے لئے ایک نیا موثر راستہ فراہم کیا ہے ، جس میں مزید تحقیق کے قابل ہے۔
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © HeWhoMustNotBeNamed
//@version=4
strategy("VixFixLinReg-Strategy", shorttitle="VixFixLinReg - Strategy",
overlay=false, initial_capital = 100000,
default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1,
commission_value = 0.01)
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?")
i_startTime = input(defval = timestamp("01 Jan 2010 00:00 +0000"), title = "Start Time", type = input.time)
i_endTime = input(defval = timestamp("01 Jan 2099 00:00 +0000"), title = "End Time", type = input.time)
inDateRange = true
considerVIXFixClose = input(false)
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
atrLen = input(22)
atrMult = input(5)
initialStopBar = input(5)
waitForCloseBeforeStop = input(true)
f_getStop(atrLen, atrMult)=>
stop = strategy.position_size > 0 ? close - (atrMult * atr(atrLen)) : lowest(initialStopBar)
stop := strategy.position_size > 0 ? max(stop,nz(stop[1], stop)) : lowest(initialStopBar)
stop
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 ? color.lime : color.gray
val = linreg(wvf, pd, 0)
absVal = abs(val)
linRegColor = val>val[1]? (val > 0 ? color.green : color.orange): (val > 0 ? color.lime : color.red)
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=plot.style_line, linewidth=4, color=color.orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=plot.style_line, linewidth=4, color=color.orange)
plot(wvf, title="Williams Vix Fix", style=plot.style_histogram, linewidth = 4, color=col)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=plot.style_line, linewidth = 3, color=color.aqua)
plot(-absVal, title="Linear Regression", style=plot.style_histogram, linewidth=4, color=linRegColor)
vixFixState = (col == color.lime) ? 1: 0
vixFixState := strategy.position_size == 0? max(vixFixState, nz(vixFixState[1],0)) : vixFixState
longCondition = (vixFixState == 1 and linRegColor == color.lime) and inDateRange
exitLongCondition = (linRegColor == color.orange or linRegColor == color.red) and considerVIXFixClose
stop = f_getStop(atrLen, atrMult)
label_x = time+(60*60*24*1000*20)
myLabel = label.new(x=label_x, y=0, text="Stop : "+tostring(stop), xloc=xloc.bar_time, style=label.style_none, textcolor=color.black, size=size.normal)
label.delete(myLabel[1])
strategy.entry("Long", strategy.long, when=longCondition, oca_name="oca_buy")
strategy.close("Long", when=exitLongCondition or (close < stop and waitForCloseBeforeStop and linRegColor == color.green))
strategy.exit("ExitLong", "Long", stop = stop, when=not waitForCloseBeforeStop and linRegColor == color.green)