یہ حکمت عملی LazyBear کے Z فاصلہ VWAP اشارے پر مبنی ہے ، جس میں قیمتوں اور VWAP کے Z فاصلے کا حساب کتاب کرکے اوورلوڈ اور اوور سیل کا تعین کیا جاتا ہے ، اور اس میں داخل ہونے کی پیش کش کی جاتی ہے۔ اس حکمت عملی میں ای ایم اے کی اوسط لائن اور Z فاصلہ واپسی 0 محور کا فیصلہ شامل کیا گیا ہے ، جس سے کچھ شور سگنل فلٹر کیے جاسکتے ہیں۔
اہم افعال:
حل:
اس حکمت عملی کا استعمال Z فاصلے کا تعین کرنے کی قیمت اور VWAP کے تعلقات کے ساتھ کیا جاتا ہے ، EMA فلٹرنگ شور سگنل کے ساتھ مل کر ، رجحان کے مواقع کو پکڑنے کے لئے۔ حکمت عملی کو روکنے کے خطرے کو روکنے کے ساتھ ساتھ رجحان کا سراغ لگانے کی اجازت دیتا ہے۔ پیرامیٹرز کو بہتر بنانے اور دیگر اشارے شامل کرنے سے حکمت عملی کی استحکام کو بہتر بنایا جاسکتا ہے۔ تاہم ، Z فاصلے کے اشارے میں تاخیر کا مسئلہ ہے ، جس کو بہتر بنانے کے دوران غور کرنے کی ضرورت ہے۔ مجموعی طور پر ، یہ حکمت عملی رجحان کو سادہ اور واضح منطق کے ساتھ پکڑتی ہے ، اور کافی حد تک بہتر ہونے کے بعد یہ ایک موثر رجحان سے باخبر رہنے کی حکمت عملی بن سکتی ہے۔
/*backtest
start: 2022-11-03 00:00:00
end: 2023-11-09 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/
// © mohanee
//@version=4
//This is based on Z distance from VWAP by Lazybear
strategy(title="ZVWAP[LB] strategy", overlay=false,pyramiding=2, default_qty_type=strategy.fixed, default_qty_value=3, initial_capital=10000, currency=currency.USD)
length=input(13,"length")
calc_zvwap(pds, source1) =>
mean = sum(volume*source1,pds)/sum(volume,pds)
vwapsd = sqrt(sma(pow(source1-mean, 2), pds) )
(close-mean)/vwapsd
upperTop=2.5 //input(2.5)
upperBottom=2.0 //input(2.0)
lowerTop=-0.5 //input(-0.5)
lowerBottom=-2.0 //input(-2.0)
buyLine=input(-0.5, title="OverSold Line",minval=-2, maxval=3)
sellLine=input(2.0, title="OverBought Line",minval=-2, maxval=3)
fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)
stopLoss =input(5, title="Stop Loss",minval=1)
hline(0, title="Middle Line", linestyle=hline.style_dotted, color=color.green)
ul1=plot(upperTop, "OB High")
ul2=plot(upperBottom, "OB Low")
fill(ul1,ul2, color=color.red)
ll1=plot(lowerTop, "OS High")
ll2=plot(lowerBottom, "OS Low")
fill(ll1,ll2, color=color.green)
zvwapVal=calc_zvwap(length,close)
plot(zvwapVal,title="ZVWAP",color=color.purple, linewidth=2)
longEmaVal=ema(close,slowEma)
shortEmaVal=ema(close,fastEma)
vwapVal=vwap(hlc3)
zvwapDipped=false
for i = 1 to 10
zvwapDipped := zvwapDipped or zvwapVal[i]<=buyLine
longCondition= shortEmaVal > longEmaVal and zvwapDipped and crossover(zvwapVal,0)
barcolor(longCondition ? color.yellow: na)
strategy.entry(id="ZVWAPLE", long=true, when= longCondition and strategy.position_size<1)
//Add
strategy.entry(id="ZVWAPLE", comment="Add", long=true, when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(zvwapVal,0))
//calculate stop Loss
stopLossVal = strategy.position_avg_price - (strategy.position_avg_price*stopLoss*0.01)
strategy.close(id="ZVWAPLE",comment="SL Exit", when=close<stopLossVal) //close all on stop loss
strategy.close(id="ZVWAPLE",comment="TPExitAll", qty=strategy.position_size , when= crossunder(zvwapVal,sellLine)) //close all zvwapVal>sellLine