
यह रणनीति LazyBear के Z दूरी VWAP सूचकांक पर आधारित है, यह निर्धारित करने के लिए कि क्या कीमतों को VWAP की Z दूरी के साथ ओवरबॉट किया गया है या नहीं, और प्रवेश के लिए। रणनीति ईएमए औसत रेखा और Z दूरी रिटर्न 0 अक्ष के निर्णय को जोड़ती है, जो कुछ शोर संकेतों को फ़िल्टर कर सकती है।
कुंजी फ़ंक्शनः
समाधान:
इस रणनीति का उपयोग Z दूरी निर्धारित करने के लिए कीमतों और VWAP के संबंध, ईएमए फिल्टर शोर संकेतों के साथ संयोजन में, एक प्रवृत्ति अवसर को पकड़ने के लिए. रणनीति के लिए अनुमति देता है, जबकि रोक नुकसान नियंत्रण के जोखिम की स्थापना. पैरामीटर अनुकूलन और अन्य संकेतकों को जोड़ने के माध्यम से रणनीति की स्थिरता को बढ़ा सकते हैं. लेकिन 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