
ভিডাব্লুএপি বিভাজন-বন্দর এবং অস্থিরতা-ফিল্টার ট্রেডিং কৌশল হল একটি অন্তর্দিবসের ট্রেডিং সিস্টেম, যা ক্রয়-ভারেজযুক্ত গড় মূল্য (ভিডাব্লুএপি) এবং স্ট্যান্ডার্ড ডিফারেনশিয়াল চ্যানেলের উপর ভিত্তি করে। এই কৌশলটি ভিডাব্লুএপিকে মূল্যের কেন্দ্রীয় রেফারেন্স পয়েন্ট হিসাবে ব্যবহার করে, আল ব্রুকসের এইচ 1 / এইচ 2 এবং এল 1 / এল 2 বিপরীত মোডের সাথে মিলিত করে এবং এটিআর এর অস্থিরতা-ফিল্টারের মাধ্যমে কম অস্থির পরিবেশকে ফিল্টার করে, একটি কাঠামোগত লেনদেনের সিদ্ধান্ত গ্রহণের কাঠামো তৈরি করে। কৌশলটি স্ট্যান্ডার্ড ডিফারেনশিয়াল চ্যানেলের পরে দামের বিভাজনের পরে ফিরে আসার সময় মাঠে প্রবেশ করে, একই সাথে সিগন্যাল স্তম্ভের মোডের উপর ভিত্তি করে স্টপ লস এবং বিভিন্ন ধরণের নমনীয় লাভের পদ্ধতি, যার মধ্যে রয়েছে রিটার্ন ভিডাব্লুএপি এবং
এই কৌশলটি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে তৈরি করা হয়েছেঃ
প্রতি ট্রেডিং দিনের জন্য VWAP গণনা স্থির করুন: প্রতিটি ট্রেডিং দিনের শুরুতে ভিডাব্লুএপি গণনা পুনরায় সেট করুন, যাতে দামের রেফারেন্স পয়েন্টগুলি সেই দিনের ট্রেডিং ক্রিয়াকলাপের সাথে নিবিড়ভাবে সম্পর্কিত থাকে। কৌশলটি স্ট্যান্ডার্ড ডিফারেনশিয়াল ব্যবহার করে ভিডাব্লুএপি-এর উপরে এবং নীচে একটি ওঠানামা তৈরি করে, যা ডিফল্টরূপে 2x স্ট্যান্ডার্ড ডিফারেনশিয়াল সেট করে।
প্রবেশদ্বার ট্রিগার সংকেত:
অস্থির ফিল্টার:
স্টপ লস সেটিং:
বিজয়ী হওয়ার কৌশল:
নিরাপদ প্রস্থান ব্যবস্থা:
কৌশলটি একটি সম্পূর্ণ সংকেত শক্তি গণনা প্রক্রিয়া বাস্তবায়ন করে যা প্রতিটি সংকেতের গুণমানের মূল্যায়ন করে উচ্চ এবং নিম্ন পয়েন্টের মধ্যে বন্ধের দামের তুলনামূলক অবস্থান গণনা করে। কেবলমাত্র যখন সংকেত শক্তি সর্বনিম্ন থ্রেশহোল্ড ((ডিফল্ট 0.7) পৌঁছে যায় তখনই প্রবেশের সংকেত কার্যকর বলে বিবেচিত হয়।
কোডের গভীর বিশ্লেষণের পরে, এই কৌশলটির উল্লেখযোগ্য সুবিধাগুলি হলঃ
বাজারের কাঠামোর উপর ভিত্তি করে প্রবেশ: কৌশলটি কেবল দামের অস্থিরতা অনুসরণ করে না, তবে বিপরীতমুখী অঞ্চলের কাছাকাছি দামের নির্দিষ্ট বিপরীতমুখী রূপগুলি সন্ধান করে, যার অর্থ হল যে ট্রেডিংটি পুনরুদ্ধারের গড়ের পরিসংখ্যানগত সুবিধা অনুসারে পরিচালিত হয়।
মাল্টি-ফিল্টার: অস্থিরতা ফিল্টার, সংকেত শক্তির প্রয়োজনীয়তা এবং নির্দিষ্ট দামের আকৃতির মাধ্যমে, একাধিক স্তরের ট্রেডিং সংকেতগুলি ফিল্টার করা, যা বিভ্রান্তিকর সংকেতগুলিকে উল্লেখযোগ্যভাবে হ্রাস করে।
নমনীয় ঝুঁকি ব্যবস্থাপনাকৌশলটি বিভিন্ন ধরণের ঝুঁকি নিয়ন্ত্রণের সরঞ্জাম সরবরাহ করে, যার মধ্যে রয়েছে সংকেত স্তম্ভের উপর ভিত্তি করে ঘনিষ্ঠ স্টপ লস, সামঞ্জস্যযোগ্য লাভের লক্ষ্য এবং সুরক্ষিত প্রস্থান ব্যবস্থা, যা ব্যবসায়ীদের বিভিন্ন বাজার পরিস্থিতির সাথে সামঞ্জস্য রেখে ঝুঁকি প্যারামিটারগুলিকে সামঞ্জস্য করতে দেয়।
স্বতন্ত্র মাল্টিপ্লেয়ার কনফিগারেশন: কৌশলটি ব্যবসায়ীদের স্বতন্ত্রভাবে মাল্টি-হেড এবং শূন্য-হেড ব্যবসায়ের প্রবেশ এবং প্রস্থান শর্তাদি কনফিগার করার অনুমতি দেয়, যা দিকনির্দেশিত পছন্দসই বাজারে অপ্টিমাইজড পারফরম্যান্সের জন্য অত্যন্ত মূল্যবান।
ভিজ্যুয়াল সহায়তাকৌশলটিতে ভিডাব্লুএপি, বিপর্যয় ব্যান্ড প্রদর্শন এবং নিম্ন ওঠানামা এলাকার উজ্জ্বলতা সহ প্রচুর ভিজ্যুয়ালাইজেশন বিকল্প রয়েছে, যা ব্যবসায়ীদের বাজারের অবস্থা এবং সম্ভাব্য সংকেতগুলি আরও স্বজ্ঞাতভাবে বুঝতে সহায়তা করে।
সেশনটি VWAP এ সংযুক্ত: প্রতি ট্রেডিং দিবসে VWAP পুনরায় গণনা করা হয় যাতে নিশ্চিত করা যায় যে মূল্যের রেফারেন্স পয়েন্টগুলি সর্বদা বর্তমান বাজার ক্রিয়াকলাপের সাথে সম্পর্কিত থাকে এবং পুরানো রেফারেন্স পয়েন্ট ব্যবহারের সমস্যা এড়ানো যায়।
সংকেত মানের উপর জোর দেওয়াসিগন্যালের তীব্রতা গণনা করে, কৌশলটি উচ্চমানের বিপরীতমুখী সংকেতের দিকে নজর দেয়, কেবলমাত্র মূল্য এবং বিচ্যুতি বন্ডের যান্ত্রিক ক্রস নয়।
এই কৌশলটি ভালভাবে পরিকল্পিত হলেও, এর মধ্যে কিছু সম্ভাব্য ঝুঁকি রয়েছেঃ
ট্রেন্ড মার্কেটে বিপরীতমুখী ঝুঁকি: একটি কৌশল হিসাবে, যা গড় মানের রিটার্নের উপর ভিত্তি করে, একটি শক্তিশালী প্রবণতা বাজারে প্রায়শই বিপরীতমুখী সংকেত ট্রিগার করা যেতে পারে, যার ফলে ক্রমাগত স্টপ ক্ষতি হয়। সমাধানঃ একটি শক্তিশালী প্রবণতা পরিবেশে, বিপরীতমুখী ট্রেডিং নিষ্ক্রিয় করা বা ফিল্টারিং শর্ত বাড়ানো যেতে পারে।
পরামিতি সংবেদনশীলতাকৌশলগত কার্যকারিতা বেশ কয়েকটি মূল প্যারামিটারের উপর নির্ভরশীল, যেমন স্ট্যান্ডার্ড ডিফারেনশিয়ালের গুণক, স্টপ লস আকার এবং সিগন্যাল শক্তি থ্রেশহোল্ড। সমাধান পদ্ধতিঃ একটি বিস্তৃত প্যারামিটার অপ্টিমাইজেশন এবং সংবেদনশীলতা বিশ্লেষণ পরিচালনা করুন এবং বিভিন্ন বাজারের অবস্থার মধ্যে একটি শক্তিশালী প্যারামিটার সেট সন্ধান করুন।
সময়ের অভাব
স্থির ক্ষতির ঝুঁকিসমাধানঃ এটিআর-ভিত্তিক ডায়নামিক স্টপ ব্যবহারের কথা বিবেচনা করুন যাতে স্টপগুলি বর্তমান বাজারের অস্থিরতার সাথে খাপ খায়।
০১.২.২.২।কৌশলঃ যদিও ভিডাব্লুএপি ব্যবহার করা হয়, তবে কম লেনদেনের পরিবেশে সরাসরি ফিল্টারিং করা হয় না, যার ফলে তরলতার অভাবের ক্ষেত্রে অবিশ্বস্ত সংকেত তৈরি হতে পারে। সমাধানঃ লেনদেনের পরিমাণ হ্রাসের শর্ত যুক্ত করুন, কেবলমাত্র পর্যাপ্ত তরলতার পরিবেশে লেনদেন নিশ্চিত করুন।
নিরাপদে বেরিয়ে আসার সময়: নির্দিষ্ট সংখ্যক বিপরীত স্তম্ভগুলি অল্প সময়ের জন্য নিরাপদ প্রস্থানকে ট্রিগার করতে পারে, বা যখন এটি সত্যই প্রয়োজন হয় তখন দ্রুত প্রতিক্রিয়া জানাতে পারে না। সমাধানঃ দামের ওঠানামা এবং স্তম্ভের সংখ্যার সাথে মিলিত গতিশীল নিরাপদ প্রস্থান ব্যবস্থা বিবেচনা করুন।
কোড বিশ্লেষণের উপর ভিত্তি করে, নিম্নলিখিত সম্ভাব্য অপ্টিমাইজেশান দিকগুলি রয়েছেঃ
গতিশীল বিচ্যুতি সহ গুণক: বর্তমান কৌশলটি প্রবেশের ট্রিগার শর্ত হিসাবে একটি নির্দিষ্ট দ্বিগুণ স্ট্যান্ডার্ড ডিভার্জেন্স ব্যবহার করে। বাজারের অস্থিরতার গতিশীলতার সাথে সামঞ্জস্য রেখে এই গুণকটি সামঞ্জস্য করার বিষয়ে বিবেচনা করা যেতে পারে, উচ্চ অস্থিরতার বাজারে বৃহত্তর গুণক এবং নিম্ন অস্থিরতার বাজারে ছোট গুণক ব্যবহার করে, বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নিতে পারে।
সময় ফিল্টার যোগ করুননির্দিষ্ট সময়সীমার জন্য লেনদেন ফিল্টার করুন, বাজার খোলার, বন্ধের এবং মধ্যাহ্নভোজনের মতো অস্থিরতার সময়গুলি এড়িয়ে চলুন বা নির্দিষ্ট কার্যকর লেনদেনের সময়গুলিতে মনোনিবেশ করুন।
সমন্বিত বাজার গঠন বিশ্লেষণট্রেডিংঃ ট্রেন্ড বিশ্লেষণের জন্য উচ্চতর সময় ফ্রেম যোগ করুন, শুধুমাত্র বৃহত্তর ট্রেন্ডের সাথে সামঞ্জস্যপূর্ণ দিকের ট্রেড করুন, অথবা প্রবণতা বিরোধী সংকেতগুলিতে কঠোর ফিল্টারিং শর্ত ব্যবহার করুন।
নিরাপদ প্রস্থান ব্যবস্থাকে উন্নত করা: বর্তমান নিরাপদ প্রস্থান একটি নির্দিষ্ট সংখ্যক ভিত্তিতে বিপরীত পলম গঠন করে। প্রস্থানটি মূল্যের গতির পরিমাণের সাথে যুক্ত বিবেচনা করা যেতে পারে, যেমন যখন দামের প্রত্যাহারটি প্রবেশের পরে সর্বাধিক লাভজনক গতির নির্দিষ্ট শতাংশের বেশি হয়।
যোগদানের পরিমাণ নিশ্চিতকরণ: প্রবেশের সিগন্যাল গঠনের সময়, লেনদেনের পরিমাণ নিশ্চিত করার শর্ত যুক্ত করুন, নিশ্চিত করুন যে সিগন্যালটি পর্যাপ্ত বাজারের অংশগ্রহণের সাথে যুক্ত রয়েছে, সিগন্যালের নির্ভরযোগ্যতা বাড়ান।
ডায়নামিক স্টপ লস ম্যানেজমেন্ট: স্থির পয়েন্ট স্টপ লসকে ATR-ভিত্তিক গতিশীল স্টপ লসের সাথে প্রতিস্থাপন করুন, অথবা একটি মোবাইল স্টপ লস ফাংশন বাস্তবায়ন করুন, যা প্রাপ্ত মুনাফা রক্ষা করে।
যোগ করুন লভ্যাংশ ফিল্টার করুন: প্রবেশের আগে সম্ভাব্য লক্ষ্য এবং স্টপ লস অনুপাতের হিসাব করুন, শুধুমাত্র সেই ট্রেডগুলিই সম্পাদন করুন যার যথেষ্ট লাভজনক-ক্ষতিজনক অনুপাত রয়েছে।
মৌসুমী ও ক্যালেন্ডার প্রভাবের সমন্বয়: নির্দিষ্ট বাজারগুলির মৌসুমী প্যাটার্ন এবং ক্যালেন্ডার প্রভাব বিশ্লেষণ এবং ব্যবহার করে, পরিসংখ্যানগতভাবে আরও সুবিধাজনক সময়ে লেনদেন বাড়িয়ে তোলে, বা অস্বাভাবিক সময়ে লেনদেন হ্রাস করে।
এই অপ্টিমাইজেশানগুলি কৌশলগুলির স্থিতিশীলতা এবং লাভজনকতা বৃদ্ধি করতে পারে, বিশেষত বিভিন্ন বাজারের পরিস্থিতিতে অভিযোজনযোগ্যতা।
ভিডাব্লুএপি বিভাজন অঞ্চল এবং অস্থিরতা ফিল্টারিং ট্রেডিং কৌশলটি একটি সুনির্দিষ্টভাবে পরিকল্পিত intraday ট্রেডিং সিস্টেম যা প্রযুক্তিগত বিশ্লেষণের কয়েকটি মূল ধারণাকে একত্রিত করে। এটি ভিডাব্লুএপিকে মূল্যের কেন্দ্রীয় রেফারেন্স পয়েন্ট হিসাবে ব্যবহার করে, বিভাজন অঞ্চলগুলিকে স্ট্যান্ডার্ড ডিফারেনশিয়ালের মাধ্যমে গণনা করে এবং যখন এই অঞ্চলগুলি থেকে দামগুলি বিপরীত হয় তখন ব্যবসায়ের সুযোগগুলিকে ধরা যায়। কৌশলটির মূল সুবিধাটি হ’ল এর বহু স্তরযুক্ত ফিল্টারিং প্রক্রিয়া এবং নমনীয় ঝুঁকি ব্যবস্থাপনা সিস্টেম যা এটিকে বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নিতে সক্ষম করে।
যদিও কিছু সম্ভাব্য ঝুঁকি রয়েছে, যেমন শক্তিশালী প্রবণতার বাজারে বিপরীত ঝুঁকি এবং প্যারামিটার সংবেদনশীলতা, তবে এগুলি আরও অপ্টিমাইজেশনের মাধ্যমে প্রশমিত করা যেতে পারে। অপ্টিমাইজেশনের দিকনির্দেশগুলি গতিশীলভাবে বিচ্যুতি ব্রেডের গুণকগুলিকে সামঞ্জস্য করে, সময় ফিল্টার যুক্ত করে, উচ্চতর সময় ফ্রেম বিশ্লেষণকে একীভূত করে এবং ক্ষতির ব্যবস্থাপনায় উন্নতি করে।
সামগ্রিকভাবে, এটি একটি মৌলিক দৃঢ় কৌশলগত কাঠামো যা অভিজ্ঞ ব্যবসায়ীদের জন্য আরও কাস্টমাইজড এবং উন্নত করার জন্য উপযুক্ত। নির্দিষ্ট বাজার এবং ট্রেডিং শৈলীর জন্য অপ্টিমাইজ করা, এটি একটি নির্ভরযোগ্য intraday ট্রেডিং সরঞ্জাম হওয়ার সম্ভাবনা রয়েছে, বিশেষ করে বাজারের পরিবেশে যেখানে অস্থিরতা এবং সমমানের রিটার্নের প্রবণতা রয়েছে।
/*backtest
start: 2025-03-30 00:00:00
end: 2025-03-31 20:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("VWAP Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=2000)
// === Inputs ===
src = input.source(hlc3, "Source")
stopPoints = input.float(20.0, "Stop Buffer (Points from Signal Bar High/Low)", step=0.25)
exitModeLong = input.string("VWAP", "Long Exit Rule", options=["VWAP", "Deviation Band", "None"])
exitModeShort = input.string("VWAP", "Short Exit Rule", options=["VWAP", "Deviation Band", "None"])
targetLongDeviation = input.float(2.0, "Long Target Deviation", step=0.1)
targetShortDeviation = input.float(2.0, "Short Target Deviation", step=0.1)
enableSafetyExit = input.bool(true, "Enable Safety Exit")
numOpposingBars = input.int(3, "Opposing Bars for Safety Exit", minval=1)
allowLongs = input.bool(true, "Allow Long Trades")
allowShorts = input.bool(true, "Allow Short Trades")
minStrength = input.float(0.7, "Minimum Signal Strength (0-1)", step=0.05)
showVWAP = input.bool(true, "Show VWAP")
showBands = input.bool(true, "Show Entry Bands")
showLowVolZones = input.bool(true, "Highlight Low Vol Zones")
// === VWAP Session Logic ===
var float sumSrc = na
var float sumVol = na
var float sumSrcSqVol = na
newSession = ta.change(time("D"))
if newSession or na(sumSrc)
sumSrc := 0.0
sumVol := 0.0
sumSrcSqVol := 0.0
sumSrc += src * volume
sumVol += volume
sumSrcSqVol += math.pow(src, 2) * volume
vwap = sumSrc / sumVol
variance = (sumSrcSqVol / sumVol) - math.pow(vwap, 2)
stdev = math.sqrt(variance)
// === Deviation Bands ===
bandEntryMult = 2.0
entryUpper = vwap + stdev * bandEntryMult
entryLower = vwap - stdev * bandEntryMult
targetUpperLong = vwap + stdev * targetLongDeviation
targetLowerShort = vwap - stdev * targetShortDeviation
// === ATR-Based Volatility Filter ===
atrVal = ta.atr(14)
isVolTooLow = stdev * 2 < atrVal * 3
bgcolor(showLowVolZones and isVolTooLow ? color.new(color.orange, 85) : na, title="Low Volatility Zone")
// === Signal Strength Calculations ===
barRange = high - low
bullStrength = barRange > 0 ? (close - low) / barRange : 0
bearStrength = barRange > 0 ? (high - close) / barRange : 0
// === Entry Triggers with Strength Filter ===
isH1H2 = open < entryLower and close > entryLower and bullStrength >= minStrength
isL1L2 = open > entryUpper and close < entryUpper and bearStrength >= minStrength
plotshape(isH1H2, title="H1/H2", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.tiny)
plotshape(isL1L2, title="L1/L2", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Signal Bar Stop Tracking ===
var float signalLow = na
var float signalHigh = na
// === Entry Logic ===
longCondition = allowLongs and isH1H2 and strategy.position_size == 0 and not isVolTooLow
shortCondition = allowShorts and isL1L2 and strategy.position_size == 0 and not isVolTooLow
if longCondition
strategy.entry("Long", strategy.long)
signalLow := low
if shortCondition
strategy.entry("Short", strategy.short)
signalHigh := high
// === Reset Signal Bar Info
if strategy.position_size == 0
signalLow := na
signalHigh := na
// === Apply Signal-Bar-Based Stop
if strategy.opentrades > 0
if strategy.position_size > 0 and not na(signalLow)
strategy.exit("Long SL", from_entry="Long", stop=signalLow - stopPoints)
if strategy.position_size < 0 and not na(signalHigh)
strategy.exit("Short SL", from_entry="Short", stop=signalHigh + stopPoints)
// === Target Exits (Independent per side)
exitLongVWAP = strategy.position_size > 0 and exitModeLong == "VWAP" and high >= vwap
exitLongDev = strategy.position_size > 0 and exitModeLong == "Deviation Band" and high >= targetUpperLong
exitShortVWAP = strategy.position_size < 0 and exitModeShort == "VWAP" and low <= vwap
exitShortDev = strategy.position_size < 0 and exitModeShort == "Deviation Band" and low <= targetLowerShort
if exitModeLong != "None" and (exitLongVWAP or exitLongDev)
strategy.close("Long", comment="Target Exit")
if exitModeShort != "None" and (exitShortVWAP or exitShortDev)
strategy.close("Short", comment="Target Exit")
// === Safety Exit
bullishBar(i) => close[i] > open[i]
bearishBar(i) => close[i] < open[i]
bullCount = 0
bearCount = 0
for i = 0 to numOpposingBars - 1
bullCount += bullishBar(i) ? 1 : 0
bearCount += bearishBar(i) ? 1 : 0
exitSafetyLong = enableSafetyExit and strategy.position_size > 0 and bearCount == numOpposingBars
exitSafetyShort = enableSafetyExit and strategy.position_size < 0 and bullCount == numOpposingBars
if exitSafetyLong
strategy.close("Long", comment="Safety Exit")
if exitSafetyShort
strategy.close("Short", comment="Safety Exit")
// === Plotting ===
plot(showVWAP ? vwap : na, color=color.blue, title="VWAP")
pUpper = plot(showBands ? entryUpper : na, color=color.green, title="Upper Entry Band")
pLower = plot(showBands ? entryLower : na, color=color.red, title="Lower Entry Band")
fill(pUpper, pLower, color=color.new(color.gray, 85))