ভিডব্লিউএপি থেকে জেড-দূরত্বের উপর ভিত্তি করে ZVWAP কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১১-১০ ১২ঃ২২ঃ১৯
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি লেজিবিয়ারের ভিডাব্লুএপি সূচক থেকে জেড-দূরত্বের উপর ভিত্তি করে। এটি মূল্য এবং ভিডাব্লুএপি এর মধ্যে জেড-দূরত্ব ব্যবহার করে ওভারকপ এবং ওভারসোল্ড শর্তগুলি, পাশাপাশি প্রবেশ এবং প্রস্থানগুলি নির্ধারণ করে। কৌশলটি কিছু গোলমাল ফিল্টার করার জন্য ইএমএ লাইন এবং জেড-দূরত্ব ক্রসিং 0 স্তরকে অন্তর্ভুক্ত করে।

কৌশলগত যুক্তি

  1. VWAP মান গণনা করুন
  2. মূল্য এবং VWAP এর মধ্যে Z- দূরত্ব গণনা করুন
  3. সেট ওভারকুপেড লাইন (২.৫) এবং ওভারসোল্ড লাইন (-০.৫)
  4. যখন দ্রুত EMA > ধীর EMA, Z-দূরত্ব < oversold লাইন এবং Z-দূরত্ব 0 এর উপরে অতিক্রম করে তখন দীর্ঘ যান
  5. যখন Z-Distance > overbought line হয় তখন পজিশন বন্ধ করুন
  6. স্টপ লস লজিক অন্তর্ভুক্ত করুন

মূল কার্যাবলী:

  • calc_zvwap: মূল্য এবং VWAP এর মধ্যে Z- দূরত্ব গণনা করুন
  • ভিডাব্লুএপি মানঃ ভিডাব্লুএপি ((এইচএলসি3)
  • ফাস্ট ইএমএ: ইএমএ (কনিষ্ঠ, দ্রুত ইএমএ)
  • ধীর EMA: ema ((close, slowEma)

সুবিধা বিশ্লেষণ

  1. Z-distance স্বজ্ঞাতভাবে overbought/oversold মাত্রা দেখায়
  2. ইএমএ মিথ্যা ব্রেকআউটগুলি ফিল্টার করে
  3. প্রবণতা থেকে রাজস্ব অর্জনের জন্য পিরামিডিংয়ের অনুমতি দেয়
  4. ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস লজিক আছে

ঝুঁকি বিশ্লেষণ

  1. লাইন, ইএমএ সময়ের মত পরামিতি সঠিকভাবে সেট করা হয় তা নিশ্চিত করতে হবে
  2. Z-দূরত্ব সূচক বিলম্ব, মূল বাঁক পয়েন্ট মিস করতে পারেন
  3. যদি প্রবণতা বিপরীত হয় তবে পিরামিডিং ক্ষতি বাড়িয়ে তুলতে পারে
  4. স্টপ লসকে যুক্তিসঙ্গতভাবে সেট করতে হবে

সমাধান:

  1. ব্যাকটেস্টিং এর মাধ্যমে প্যারামিটার অপ্টিমাইজ করুন
  2. ফিল্টার সংকেতগুলিতে অন্যান্য সূচক যুক্ত করুন
  3. পিরামিড তৈরির জন্য উপযুক্ত শর্ত তৈরি করুন
  4. গতিশীল স্টপ লস ব্যবহার করুন

অপ্টিমাইজেশান নির্দেশাবলী

  1. EMA সময়কাল অপ্টিমাইজ করুন
  2. বিভিন্ন অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় মানদণ্ড পরীক্ষা করুন
  3. গোলমাল ফিল্টার করার জন্য অন্যান্য সূচক যোগ করুন
  4. বিভিন্ন স্টপ লস কৌশল পরীক্ষা করুন
  5. এন্ট্রি, পিরামিডিং এবং স্টপ লস লজিক অপ্টিমাইজ করুন

সংক্ষিপ্তসার

কৌশলটি মূল্য-ভিডাব্লুএপি সম্পর্ক নির্ধারণের জন্য জেড-দূরত্ব ব্যবহার করে এবং প্রবণতার সুযোগগুলি ক্যাপচার করার লক্ষ্যে ইএমএকে ফিল্টার সংকেতগুলিতে যুক্ত করে। এটি প্রবণতা অনুসরণ করতে পিরামিডিংয়ের অনুমতি দেয় এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস রয়েছে। অপ্টিমাইজেশন এবং অন্যান্য সূচক যুক্ত করা স্থিতিশীলতা উন্নত করতে পারে। যাইহোক, অপ্টিমাইজেশনের সময় জেড-দূরত্বের পিছিয়ে থাকা বিষয়টি বিবেচনা করা উচিত। সামগ্রিকভাবে, এটি সহজ, পরিষ্কার যুক্তি সহ একটি প্রবণতা অনুসরণকারী কৌশল। যখন সম্পূর্ণরূপে অনুকূলিত হয়, এটি প্রবণতা বাণিজ্যের জন্য একটি দক্ষ সরঞ্জাম হতে পারে।


/*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

আরো