
সরবরাহ-চাহিদা-ব্যাপ্তি-ফিল্টারিং-ভিত্তিক-ব্যাপ্তি-চাহিদা-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্তি-ব্যাপ্ত
এই কৌশলটির কেন্দ্রীয় নীতিটি বিভক্ত তত্ত্ব এবং অর্ডার ব্লক ধারণার উপর ভিত্তি করে। প্রথমত, কৌশলটি নির্দিষ্ট সময়ের মধ্যে মূল্য বিভক্ত পয়েন্টগুলি গণনা করে সম্ভাব্য সরবরাহ-চাহিদা ব্যবধানগুলি সনাক্ত করে। উপরের বিভক্ত পয়েন্টগুলি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ পয়েন্টের মূল্য স্তর হিসাবে সংজ্ঞায়িত করা হয় এবং নিম্ন বিভক্ত পয়েন্টগুলি নির্দিষ্ট সময়ের মধ্যে সর্বনিম্ন পয়েন্টের মূল্য স্তর হিসাবে সংজ্ঞায়িত করা হয়। সংকেতের গুণমান উন্নত করার জন্য, কৌশলটি একটি লেনদেনের ফিল্টারিং প্রক্রিয়া প্রবর্তন করে, যার জন্য বিভক্ত পয়েন্টের লেনদেনের পরিমাণ অবশ্যই 20 পিরিয়ডের সাধারণ চলমান গড় লেনদেনের নির্দিষ্ট সংখ্যার চেয়ে বেশি হতে হবে।
যখন কার্যকর আপফ্রেজ পয়েন্ট চিহ্নিত করা হয়, তখন কৌশলটি এই পয়েন্টটিকে প্রতিরোধের অঞ্চল হিসাবে চিহ্নিত করে এবং দামের উত্থানের জন্য অপেক্ষা করে। যখন দাম আপফ্রেজ পয়েন্টটি ভেঙে যায়, তখন কৌশলটি সরবরাহ-চাহিদা সম্পর্ক পরিবর্তিত বলে বিবেচনা করে, মূল প্রতিরোধের অঞ্চলটি সমর্থন অঞ্চলে রূপান্তরিত হয়, এবং এই সময়ে একাধিক অপারেশন করা হয়। বিপরীতে, যখন কার্যকর ডাউনফ্রেজ পয়েন্ট চিহ্নিত করা হয়, তখন কৌশলটি এই পয়েন্টটিকে সমর্থন অঞ্চল হিসাবে চিহ্নিত করে, যখন দাম নীচে ভেঙে যায়, মূল সমর্থন অঞ্চলটি প্রতিরোধের অঞ্চলে রূপান্তরিত হয় এবং খালি অপারেশন করা হয়।
নীতিটি ব্যবহারকারীদের দুটি ধরণের ব্রেকথ্রু নিশ্চিতকরণ পদ্ধতি বেছে নিতে দেয়ঃ লাইটচার্জ প্লাস সত্তা ব্রেকথ্রু এবং খাঁটি সত্তা ব্রেকথ্রু। লাইটচার্জ প্লাস সত্তা ব্রেকথ্রু মোডটি সর্বোচ্চ এবং সর্বনিম্ন মূল্যকে ব্রেকথ্রু নিশ্চিতকরণ মানদণ্ড হিসাবে ব্যবহার করে, যখন খাঁটি সত্তা ব্রেকথ্রু মোডটি ক্রয়-বিক্রয় মূল্যকে নিশ্চিতকরণ মানদণ্ড হিসাবে ব্যবহার করে। লেনদেনের পরিমাণ ফিল্টারিং প্রক্রিয়াটি বর্তমান লেনদেনের পরিমাণ এবং historicalতিহাসিক গড় লেনদেনের পরিমাণের গুণিত সম্পর্কের সাথে তুলনা করে লেনদেনের কার্যকারিতা যাচাই করে।
এই কৌশলটির বেশ কয়েকটি উল্লেখযোগ্য সুবিধা রয়েছে। প্রথমত, লেনদেনের পরিমাণ ফিল্টারিং প্রক্রিয়াটি সংকেতের নির্ভরযোগ্যতা উল্লেখযোগ্যভাবে বাড়িয়ে তোলে। প্রচলিত বিভাজন ব্রেকআপ কৌশলগুলি মিথ্যা ব্রেকআপ সংকেত তৈরি করতে সহজ, তবে লেনদেনের পরিমাণ নিশ্চিতকরণের মাধ্যমে দুর্বল ব্রেকআপগুলিকে কার্যকরভাবে ফিল্টার করা যায়, যাতে নিশ্চিত হয় যে কেবলমাত্র পর্যাপ্ত বাজারের অংশগ্রহণের সাথে লেনদেনের সংকেত তৈরি হয়।
দ্বিতীয়ত, এই কৌশলটি অর্ডার ব্লক তত্ত্বের উপর ভিত্তি করে তৈরি করা হয়েছে, যার একটি শক্ত বাজার লজিকাল ভিত্তি রয়েছে। অর্ডার ব্লকগুলি নির্দিষ্ট মূল্যে বড় তহবিলের ঘন ঘন ক্রয়-বিক্রয়কে প্রতিনিধিত্ব করে, এবং এই অঞ্চলগুলি প্রায়শই গুরুত্বপূর্ণ সমর্থন এবং প্রতিরোধের স্তর গঠন করে। যখন দামগুলি এই মূল অঞ্চলগুলিকে ভেঙে দেয়, তখন সাধারণত বাজারের কাঠামোর একটি গুরুত্বপূর্ণ পরিবর্তন ঘটে, যা ব্যবসায়ীদের উচ্চ সম্ভাব্যতার প্রবেশের সুযোগ দেয়।
তৃতীয়ত, কৌশলগুলি ভাল অভিযোজনযোগ্যতা এবং কনফিগারযোগ্যতা রয়েছে। ব্যবহারকারীরা বিভিন্ন বাজার পরিস্থিতি এবং ব্যক্তিগত পছন্দ অনুসারে বিভাজন চক্র, লেনদেনের পরিমাণের গুণক এবং অন্যান্য প্যারামিটারগুলি সামঞ্জস্য করতে পারেন। ব্রেকথ্রু টাইপ নির্বাচনগুলি কৌশলগুলির জন্য অতিরিক্ত নমনীয়তা প্রদান করে, যা ব্যবসায়ীদের বাজার বৈশিষ্ট্যগুলির উপর ভিত্তি করে সবচেয়ে উপযুক্ত নিশ্চিতকরণ পদ্ধতি বেছে নিতে দেয়।
শেষ অবধি, কৌশলটির যুক্তিটি পরিষ্কার এবং সংক্ষিপ্ত, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়। সুস্পষ্ট বিভাজন সনাক্তকরণ, ট্রানজিট ফিল্টারিং এবং ব্রেকথ্রু কনফার্মেশন প্রক্রিয়ার মাধ্যমে কৌশলটি জটিল প্রযুক্তিগত সূচকের সমন্বয় এড়ায় এবং অত্যধিক অপ্টিমাইজেশনের ঝুঁকি হ্রাস করে।
যদিও এই কৌশলটির অনেকগুলি সুবিধা রয়েছে, তবে কিছু সম্ভাব্য ঝুঁকিও রয়েছে যা সম্পর্কে সতর্ক হওয়া দরকার। প্রথমত, কৌশলটি লেনদেনের পরিমাণের উপর নির্ভরশীল। লেনদেনের পরিমাণের ডেটা ভুল বা বাজার চলাচল দুর্বল হলে লেনদেনের পরিমাণ ফিল্টারিং প্রক্রিয়াটি ভুল বিচার করতে পারে, যার ফলে কার্যকর লেনদেনের সুযোগ মিস করা বা মিথ্যা সংকেত তৈরি করা যায়।
দ্বিতীয়ত, কৌশলটির পিছনে থাকার সমস্যা রয়েছে। কৌশলটির প্রবেশের সময়টি সর্বোত্তম প্রবেশের পয়েন্টের চেয়ে পিছনে থাকতে পারে কারণ বিভাজন পয়েন্টের নিশ্চিতকরণ এবং বিপর্যয়ের জন্য অপেক্ষা করা প্রয়োজন। এই পিছনে থাকা দ্রুত পরিবর্তিত বাজারের পরিবেশে কৌশলটির লাভজনকতার উপর প্রভাব ফেলতে পারে।
তৃতীয়ত, কৌশলটির একটি সুস্পষ্ট স্টপ লস এবং স্টপ স্টপ মেশিনের অভাব রয়েছে। যদিও কৌশলটি প্রবেশের সময়কে চিহ্নিত করতে সক্ষম, তবে এর সাথে সম্পর্কিত ঝুঁকি ব্যবস্থাপনার ব্যবস্থা নেই। বাজারের তীব্র ওঠানামা বা ব্রেকআউট ব্যর্থতার ক্ষেত্রে, ব্যবসায়ীরা বড় ক্ষতির ঝুঁকির মুখোমুখি হতে পারে।
এই ঝুঁকিগুলি হ্রাস করার জন্য, এটি পরামর্শ দেওয়া হয় যে ব্যবসায়ীরা অন্যান্য প্রযুক্তিগত বিশ্লেষণ সরঞ্জামগুলির সাথে সংযুক্তভাবে সংকেত নিশ্চিতকরণ, যুক্তিসঙ্গত স্টপ লস স্টপ লেভেল সেট করে এবং বাজারের অবস্থার গতিশীলতার সাথে কৌশলগত প্যারামিটারগুলিকে সামঞ্জস্য করে। একই সাথে, বিভিন্ন বাজারের পরিবেশে কৌশলগুলির যথাযথ প্রতিক্রিয়া এবং যাচাইয়ের পরামর্শ দেওয়া হয়।
এই কৌশলটির বেশ কয়েকটি অপ্টিমাইজেশান দিক রয়েছে। প্রথমত, একটি গতিশীল লেনদেনের পরিমাণের থ্রেশহোল্ডিং ব্যবস্থা চালু করা যেতে পারে। বর্তমান কৌশলটি একটি নির্দিষ্ট লেনদেনের গুণককে ফিল্টারিংয়ের শর্ত হিসাবে ব্যবহার করে, তবে বাজারের লেনদেনের বৈশিষ্ট্যগুলি সময়ের সাথে পরিবর্তিত হয়। স্বনির্ধারিত লেনদেনের থ্রেশহোল্ডিংয়ের প্রবর্তনের মাধ্যমে, বাজারটির প্রকৃত পরিস্থিতির উপর ভিত্তি করে ফিল্টারিংয়ের মানটি গতিশীলভাবে সামঞ্জস্য করা যেতে পারে, কৌশলটির অভিযোজনযোগ্যতা বাড়ানো যায়।
দ্বিতীয়ত, একটি উন্নত ঝুঁকি ব্যবস্থাপনা মডিউল যুক্ত করার পরামর্শ দেওয়া হচ্ছে। স্টপ-ড্রপ লেভেলগুলি ওঠানামা, সমর্থন প্রতিরোধের স্তর বা নির্দিষ্ট অনুপাতের ভিত্তিতে সেট করা যেতে পারে। একই সাথে, একটি পজিশন ম্যানেজমেন্ট ব্যবস্থা চালু করার কথা বিবেচনা করা যেতে পারে, যা সংকেতের শক্তি এবং বাজারের অস্থিরতার ভিত্তিতে লেনদেনের আকারকে সামঞ্জস্য করে।
তৃতীয়ত, একাধিক টাইম ফ্রেম বিশ্লেষণ প্রবর্তন করা বিবেচনা করা যেতে পারে। বর্তমান কৌশলটি কেবলমাত্র একটি একক টাইম ফ্রেমে কাজ করে, কৌশলটির সাফল্যের হারকে উন্নত করতে পারে উচ্চতর টাইম ফ্রেমের প্রবণতা বিশ্লেষণের সাথে মিলিত করে। উদাহরণস্বরূপ, ট্রেডিং সিগন্যালগুলি কেবলমাত্র উচ্চতর টাইম ফ্রেমের প্রবণতার দিকনির্দেশের সাথে সামঞ্জস্যপূর্ণ হলেই কার্যকর করা হয়।
চতুর্থত, বিভাজন সনাক্তকরণ অ্যালগরিদমগুলিকে অপ্টিমাইজ করা যায়। বর্তমান বিভাজন সনাক্তকরণটি তুলনামূলকভাবে সহজ, আরও জটিল বিভাজন সনাক্তকরণ পদ্ধতি যেমন মূল্য আচরণ প্যাটার্নের উপর ভিত্তি করে বা অন্যান্য প্রযুক্তিগত সূচকগুলির সাথে মিলিত বিভাজন সনাক্তকরণ বিবেচনা করা যেতে পারে।
অবশেষে, একটি সংকেত ফিল্টারিং প্রক্রিয়া যুক্ত করার পরামর্শ দেওয়া হচ্ছে। আপনি অতিরিক্ত প্রযুক্তিগত সূচক (যেমন RSI, MACD ইত্যাদি) প্রবর্তন করে ট্রেডিং সংকেতগুলি ফিল্টার করতে পারেন বা বাজার সংবেদনশীলতার সূচকগুলির উপর ভিত্তি করে কৌশলটির সংবেদনশীলতা সামঞ্জস্য করতে পারেন।
সরবরাহ ও চাহিদা জোনের মধ্যে অর্ডার ব্লক ভেঙে ফেলার কৌশল, যা ক্রয় পরিমাণের উপর ভিত্তি করে ফিল্টার করা হয়, হ’ল একটি বিস্তৃত পরিমাণগত ট্রেডিং কৌশল যা বিভাজন তত্ত্ব, ক্রয় পরিমাণ বিশ্লেষণ এবং অর্ডার ব্লক ধারণার সাথে মিলিত। এই কৌশলটি মূল মূল্য বিভাজন পয়েন্টগুলি সনাক্ত করে, সংমিশ্রিত পরিমাণের নিশ্চিতকরণ প্রক্রিয়াটি সংযুক্ত করে, যখন দামগুলি গুরুত্বপূর্ণ সরবরাহ ও চাহিদা জোনের মধ্যে ভেঙে যায় তখন লেনদেনের ক্রিয়াকলাপ সম্পাদন করে।
কৌশলটির প্রধান সুবিধাগুলি হ’ল এর শক্ত তাত্ত্বিক ভিত্তি, ভাল সংকেত মান এবং উচ্চতর কনফিগারযোগ্যতা। লেনদেনের পরিমাণ ফিল্টারিং প্রক্রিয়াটি কার্যকরভাবে সংকেতের নির্ভরযোগ্যতা বাড়ায়, এবং অর্ডার ব্লক তত্ত্ব কৌশলটির জন্য একটি পরিষ্কার বাজার লজিক সমর্থন সরবরাহ করে। তবে, কৌশলটিতে কিছু সম্ভাব্য ঝুঁকিও রয়েছে, যেমন লেনদেনের পরিমাণের ডেটার উপর নির্ভরতা, সংকেত পিছিয়ে থাকা এবং ঝুঁকি পরিচালনার ব্যবস্থার অভাব ইত্যাদি।
এই কৌশলটির কার্যকারিতা এবং স্থায়িত্ব আরও উন্নত করা যেতে পারে, যেমন গতিশীল লেনদেনের পরিমাণের হ্রাস, ঝুঁকি ব্যবস্থাপনা মডিউল, মাল্টি-টাইম ফ্রেম বিশ্লেষণ এবং সংকেত ফিল্টারিং প্রক্রিয়াগুলির মতো অপ্টিমাইজেশানগুলি প্রবর্তন করা। পরিমাণগত ব্যবসায়ীদের জন্য, কৌশলটি একটি কার্যকর বাজার কাঠামোর বিশ্লেষণ সরঞ্জাম সরবরাহ করে যা উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগগুলি সনাক্ত করতে সহায়তা করে।
/*backtest
start: 2024-07-07 00:00:00
end: 2025-07-05 10:18:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Supply and Demand - Order Block Strategy with Volume Filter", overlay=true)
// ═══════════════════════════════════════════════════════════════════════════════════
// 📊 INPUT SETTINGS
// ═══════════════════════════════════════════════════════════════════════════════════
breakType = input.string("Wick+Body", title="Fractal Break Type:", options=["Wick+Body", "Body"])
n = input.int(title="Periods", defval=5, minval=3, tooltip="Number of periods for fractal lookback")
// 🔊 Volume Filter
enableVolumeFilter = input.bool(true, "Enable Volume Filter", group="Volume Filter")
volumeMultiplier = input.float(1.5, "Volume Multiplier", minval=1.0, maxval=3.0, step=0.1, group="Volume Filter", tooltip="Fractal must have volume > average volume * this multiplier")
// ═══════════════════════════════════════════════════════════════════════════════════
// 📈 TECHNICAL INDICATORS
// ═══════════════════════════════════════════════════════════════════════════════════
avgVolume = ta.sma(volume, 20)
// ═══════════════════════════════════════════════════════════════════════════════════
// 📦 FRACTAL CALCULATION WITH VOLUME FILTER
// ═══════════════════════════════════════════════════════════════════════════════════
// Original fractal calculation
upFractal = high[n] == ta.highest(high, n)
downFractal = low[n] == ta.lowest(low, n)
// 🔊 Enhanced fractal with volume confirmation
upFractalValid = upFractal and (not enableVolumeFilter or volume[n] > avgVolume * volumeMultiplier)
downFractalValid = downFractal and (not enableVolumeFilter or volume[n] > avgVolume * volumeMultiplier)
var float topValue = na
var float bottomValue = na
var topBreakBlock = false
var bottomBreakBlock = false
topBreakCheckSource = breakType == "Wick+Body" ? high : close
bottomBreakCheckSource = breakType == "Wick+Body" ? low : close
// New up fractal - only if volume criteria met
if upFractalValid
topBreakBlock := false
topValue := high[n]
// New down fractal - only if volume criteria met
if downFractalValid
bottomBreakBlock := false
bottomValue := low[n]
// ═══════════════════════════════════════════════════════════════════════════════════
// 🚀 ENTRY LOGIC
// ═══════════════════════════════════════════════════════════════════════════════════
// Top break
if ta.crossover(topBreakCheckSource, topValue) and not topBreakBlock
topBreakBlock := true
if strategy.position_size <= 0
strategy.entry("Long", strategy.long)
// Bottom break
if ta.crossunder(bottomBreakCheckSource, bottomValue) and not bottomBreakBlock
bottomBreakBlock := true
if strategy.position_size >= 0
strategy.entry("Short", strategy.short)
// ═══════════════════════════════════════════════════════════════════════════════════
// 🎨 PLOTS
// ═══════════════════════════════════════════════════════════════════════════════════
plotshape(downFractalValid, style=shape.triangleup, location=location.belowbar, offset=-n, color=color.new(color.gray,80), size = size.tiny)
plotshape(upFractalValid, style=shape.triangledown, location=location.abovebar, offset=-n, color=color.new(color.gray,80), size = size.tiny)