এই কৌশলটি লেজিবিয়ারের ভিডাব্লুএপি সূচক থেকে জেড-দূরত্বের উপর ভিত্তি করে। এটি মূল্য এবং ভিডাব্লুএপি এর মধ্যে জেড-দূরত্ব ব্যবহার করে ওভারকপ এবং ওভারসোল্ড শর্তগুলি, পাশাপাশি প্রবেশ এবং প্রস্থানগুলি নির্ধারণ করে। কৌশলটি কিছু গোলমাল ফিল্টার করার জন্য ইএমএ লাইন এবং জেড-দূরত্ব ক্রসিং 0 স্তরকে অন্তর্ভুক্ত করে।
মূল কার্যাবলী:
সমাধান:
কৌশলটি মূল্য-ভিডাব্লুএপি সম্পর্ক নির্ধারণের জন্য জেড-দূরত্ব ব্যবহার করে এবং প্রবণতার সুযোগগুলি ক্যাপচার করার লক্ষ্যে ইএমএকে ফিল্টার সংকেতগুলিতে যুক্ত করে। এটি প্রবণতা অনুসরণ করতে পিরামিডিংয়ের অনুমতি দেয় এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস রয়েছে। অপ্টিমাইজেশন এবং অন্যান্য সূচক যুক্ত করা স্থিতিশীলতা উন্নত করতে পারে। যাইহোক, অপ্টিমাইজেশনের সময় জেড-দূরত্বের পিছিয়ে থাকা বিষয়টি বিবেচনা করা উচিত। সামগ্রিকভাবে, এটি সহজ, পরিষ্কার যুক্তি সহ একটি প্রবণতা অনুসরণকারী কৌশল। যখন সম্পূর্ণরূপে অনুকূলিত হয়, এটি প্রবণতা বাণিজ্যের জন্য একটি দক্ষ সরঞ্জাম হতে পারে।
/*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