
ওপেনিং ব্রেকিং এবং ফেয়ার ভ্যালু গ্যাপের সংমিশ্রণ কৌশল হল একটি পরিমাণগত ট্রেডিং কৌশল যা ওপেনিং ব্রেকিং (ORB) এবং স্মার্ট ফান্ডের ধারণার (SMC) মধ্যে ফেয়ার ভ্যালু গ্যাপ (FVG) এর সংমিশ্রণ করে। এই কৌশলটি প্রথমে ট্রেডিংয়ের দিনের শুরুতে মূল্যের অঞ্চলটি সংজ্ঞায়িত করে (সাধারণত ওপেনিংয়ের 5 মিনিট পরে) এবং তারপরে ট্রেডিং সিগন্যাল হিসাবে ফেয়ার ভ্যালু গ্যাপের সাথে সংলগ্ন অবস্থার সন্ধান করে যখন দামটি এই অঞ্চলের সীমানা অতিক্রম করে। কৌশলটি নির্দিষ্ট সময়ের মধ্যে দিনের ব্যবসায়ের জন্য ডিজাইন করা হয়েছে, বিশেষত আমেরিকান বাজারের নিয়মিত ব্যবসায়ের সময়, এবং ঝুঁকি ব্যবস্থাপনা ব্যবস্থার মাধ্যমে প্রতিটি ব্যবসায়ের জন্য ঝুঁকি গ্যাপ নিয়ন্ত্রণ করে।
এই কৌশলটি মূলত দুটি মূল প্রযুক্তিগত বিশ্লেষণের ধারণার উপর ভিত্তি করে তৈরি করা হয়েছেঃ
ওপেন-রেঞ্জ ব্রেক (ORB)- কৌশলটি প্রথমে ট্রেডিংয়ের দিন খোলার পরে একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য নির্ধারণ করে (ডিফল্টভাবে 5 মিনিট) একটি দামের ব্যাপ্তি গঠন করে। এই ব্যাপ্তিটি বাজারের অংশগ্রহণকারীদের দ্বারা দিনের দামের গতিবিধির প্রাথমিক বিচার হিসাবে বিবেচিত হয় এবং এই ব্যাপ্তিটি অতিক্রম করা একটি স্বল্পমেয়াদী প্রবণতা গঠনের ইঙ্গিত দিতে পারে।
ফেয়ার ভ্যালু গ্যাপ (FVG)- স্মার্ট ফান্ডের ধারণার (এসএমসি) বিশ্লেষণ পদ্ধতি থেকে প্রাপ্ত, বর্তমান উচ্চতা পূর্বের পূর্ববর্তী উচ্চতার চেয়ে কম হলে একটি bullish FVG গঠিত হয়, এবং বর্তমান নিম্নতা পূর্ববর্তী পূর্ববর্তী উচ্চতার চেয়ে বেশি হলে একটি bearish FVG গঠিত হয়। এই ফাঁকগুলি এমন অঞ্চল হিসাবে বিবেচিত হয় যেখানে দামগুলি ভবিষ্যতে পুনরুদ্ধার হতে পারে, যা বাজারের কাঠামোর ভারসাম্যহীনতার প্রতিনিধিত্ব করে।
কৌশলগত ট্রেডিং সিগন্যাল নিম্নলিখিত শর্তাবলী দ্বারা তৈরি করা হয়ঃ
লেনদেনের সময়, কৌশলটি ঝুঁকি-ভিত্তিক পজিশন ম্যানেজমেন্ট পদ্ধতি ব্যবহার করে, প্রতিটি লেনদেনের নির্দিষ্ট অবস্থানের আকারটি স্টপ লস দূরত্বের উপর ভিত্তি করে গণনা করে যাতে প্রতিটি লেনদেনের ঝুঁকি থ্রেশহোল্ডটি একই থাকে। স্টপ লসটি একাধিক লেনদেনের পূর্ববর্তী সর্বনিম্ন বা খালি লেনদেনের পূর্ববর্তী সর্বোচ্চ উচ্চতায় সেট করা হয়, এবং লাভের লক্ষ্যটি পূর্বনির্ধারিত ঝুঁকি-ফেরতের অনুপাতের উপর ভিত্তি করে। (ডিফল্ট 2.0) । সমস্ত অ-পরিশোধিত লেনদেনগুলি স্বয়ংক্রিয়ভাবে লেনদেনের সময় শেষ হওয়ার পরে পজিশনটি পজিশন করে, যাতে রাতারাতি অবস্থান না থাকে।
প্রযুক্তিগত বিশ্লেষণের বিভিন্ন পদ্ধতির সমন্বয়- ORB এবং FVG উভয় প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সমন্বয়ের মাধ্যমে, কৌশলটি একটি একক সূচক দ্বারা উত্পন্ন হতে পারে এমন মিথ্যা সংকেতগুলিকে ফিল্টার করতে এবং ট্রেডিং সিগন্যালের গুণমান উন্নত করতে পারে।
সুস্পষ্ট লেনদেনের সময়সীমা- কৌশলটি ট্রেডিংয়ের সময়সীমাকে সুস্পষ্টভাবে সংজ্ঞায়িত করে (সিগন্যাল এবং ট্রেডিং পর্ব) যা ব্যবসায়ীদের বাজারে সর্বাধিক সক্রিয় এবং সর্বোচ্চ সংকেত মানের সময়গুলিতে ফোকাস করতে সহায়তা করে এবং কম সক্রিয়তার সময়গুলিতে অকার্যকর লেনদেন এড়ায়।
ঝুঁকি ভিত্তিক পজিশন ম্যানেজমেন্ট- কৌশলটি ঝুঁকি-ভিত্তিক অবস্থান গণনা পদ্ধতি ব্যবহার করে, যাতে প্রতিটি লেনদেনের ঝুঁকি অ্যাকাউন্টের মোট তহবিলের সমান অনুপাত নিশ্চিত করে (ডিফল্ট 1%) যা দীর্ঘমেয়াদী তহবিল পরিচালনা এবং ঝুঁকি নিয়ন্ত্রণের পক্ষে সহায়ক।
নমনীয় প্যারামিটার কনফিগারেশন- কৌশলটি বিভিন্ন প্যারামিটার সরবরাহ করে, যার মধ্যে রয়েছে ট্রেডিং সময়ের সেটিং, ওআরবি স্থায়িত্ব, সিগন্যাল সময়ের স্থায়িত্ব, ঝুঁকি অনুপাত এবং ঝুঁকি ফেরতের অনুপাত ইত্যাদি, যাতে ব্যবসায়ীরা বিভিন্ন বাজার এবং ব্যক্তিগত ঝুঁকি পছন্দ অনুসারে অপ্টিমাইজ করতে পারে।
ভিজ্যুয়াল সহায়তা- কৌশলগুলি ORB হরফ লাইন, ট্রেডিং সিগন্যাল চিহ্নিতকরণ, বিভিন্ন ট্রেডিং সময়ের জন্য পটভূমির উজ্জ্বলতা এবং রিয়েল-টাইম পরিসংখ্যানের টেবিল সহ প্রচুর ভিজ্যুয়ালাইজেশন উপাদান সরবরাহ করে যা ব্যবসায়ীদের কৌশল বাস্তবায়ন পর্যবেক্ষণ এবং বিশ্লেষণে সহায়তা করে।
মাল্টিপল ম্যানেজমেন্ট সমর্থন- কৌশলগত নকশা একই সময়ে একাধিক ট্রেডিং পজিশন রাখা সমর্থন করে ((পিরামিডিং প্যারামিটার নিয়ন্ত্রণের মাধ্যমে), একই ট্রেডিং দিনে একাধিক ট্রেডিং সুযোগ ক্যাপচার করার অনুমতি দেয়, তহবিলের ব্যবহারের দক্ষতা বাড়ায়।
নির্দিষ্ট বাজার নির্ভরতা- এই কৌশলটি মূলত মার্কিন স্টক মার্কেটের নিয়মিত ট্রেডিংয়ের সময়গুলির জন্য ডিজাইন করা হয়েছে, যা অন্যান্য বাজার বা ট্রেডিংয়ের সময়গুলির জন্য কার্যকর নাও হতে পারে। বিভিন্ন বাজারের খোলার বৈশিষ্ট্য এবং অস্থিরতার প্যাটার্নগুলি ব্যাপকভাবে পরিবর্তিত হয়, যার জন্য উপযুক্ত সমন্বয় প্যারামিটার প্রয়োজন।
পরামিতি সংবেদনশীলতা- কৌশলগত কর্মক্ষমতা একাধিক গুরুত্বপূর্ণ প্যারামিটারের জন্য সংবেদনশীল, যেমন ORB স্থায়িত্ব, সংকেত সময়কাল এবং ঝুঁকি-ফেরতের অনুপাত ইত্যাদি। ভুল প্যারামিটার সেটগুলি অত্যধিক লেনদেন বা গুরুত্বপূর্ণ লেনদেনের সুযোগগুলি মিস করতে পারে।
বাজার অবস্থার উপর নির্ভরশীল- উচ্চ-অস্থির বা নিম্ন-অস্থির বাজার পরিবেশে, কৌশলগত কর্মক্ষমতা অসম্পূর্ণ হতে পারে। বিশেষত নিম্ন-অস্থির বাজারে, ORB ব্যাপ্তি খুব সংকীর্ণ হতে পারে, যার ফলে প্রায়শই মিথ্যা ব্রেকিং সংকেতগুলি ট্রিগার করা হয়।
স্টপ লজিস্টিক ঝুঁকি- স্ট্র্যাটেজিটি পূর্ববর্তী স্ট্রিংয়ের উচ্চ / নিম্ন পয়েন্টকে স্টপ পজিশন হিসাবে ব্যবহার করে, যা দ্রুত বাজারে স্টপ পজিশনকে খুব বড় করে তোলে, যার ফলে রিস্ক-রিটার্নের অনুপাত হ্রাস পায় বা খুব ছোট পজিশন আকারের ফলস্বরূপ।
ঐতিহাসিক মূল্যের উপর নির্ভরশীল- কৌশলগতভাবে অনুমান করা হয়েছে যে এফভিজি অঞ্চল এবং ওআরবি বিভাজন পূর্বাভাসযোগ্য, তবে বাজার দক্ষতা বৃদ্ধি বা ট্রেডিং পরিবেশের পরিবর্তনগুলি এই মডেলগুলির কার্যকারিতা হ্রাস করতে পারে।
প্রযুক্তিগত ঝুঁকি- প্রকৃত লেনদেনের সময়, স্লাইড পয়েন্ট, অর্ডার বাস্তবায়নে বিলম্ব ইত্যাদির মতো সমস্যার সম্মুখীন হতে পারে, যা প্রকৃত লেনদেনের ফলাফলের সাথে প্রতিক্রিয়া ফলাফলের সামঞ্জস্যকে প্রভাবিত করে।
ডায়নামিক ORB সময়কাল- বাজার অস্থিরতার উপর ভিত্তি করে ORB এর সময়কাল স্বয়ংক্রিয়ভাবে সামঞ্জস্য করার বিষয়টি বিবেচনা করা যেতে পারে, যেমন উচ্চ অস্থিরতার বাজারের পরিবেশে মিথ্যা বিরতি এড়াতে আরও দীর্ঘ ORB সময় ব্যবহার করা, কম অস্থিরতার পরিবেশে আরও বেশি ব্যবসায়ের সুযোগ ধরার জন্য ORB সময়টি সংক্ষিপ্ত করা।
ফিল্টার যোগ করুন- অতিরিক্ত ফিল্টারিং শর্তগুলি প্রবর্তন করে সংকেতের গুণমান উন্নত করা, যেমন সামগ্রিক বাজার প্রবণতার দিকনির্দেশের সাথে মিলিত হওয়া ((শুধুমাত্র উত্থান প্রবণতা, পতন প্রবণতা মধ্যে শূন্য), বা ট্রানজাকশন নিশ্চিতকরণ যুক্ত করা ((শুধুমাত্র যখন একটি ব্রেকডাউন একটি ট্রানজাকশন বৃদ্ধির সাথে যুক্ত হয় তখন ট্রেড করুন)) ।
অপ্টিমাইজ করা স্টপ লস অবস্থান- ATR বা উর্ধ্বমুখীতার উপর ভিত্তি করে ডায়নামিক স্টপ লস সেটিং ব্যবহার করার কথা বিবেচনা করুন, যা পূর্ববর্তী উচ্চ ও নিম্ন পয়েন্টের উপর ভিত্তি করে স্থির স্টপ পদ্ধতির পরিবর্তে আরও যুক্তিসঙ্গত ঝুঁকি নিয়ন্ত্রণ সরবরাহ করতে পারে।
আংশিক মুনাফা যোগ করা- টুকরো টুকরো লাভের কৌশল বাস্তবায়ন করুন, যেমন 1:1 ঝুঁকি-ফেরতের অনুপাত পৌঁছানোর পরে পজিশনের একটি অংশকে সমতল করুন এবং অবশিষ্ট অংশটি ট্র্যাকিং স্টপ লস বা আরও বেশি লাভের লক্ষ্য নির্ধারণ করুন, মুনাফা লক করার এবং ট্রেন্ড ট্র্যাকিংয়ের প্রয়োজনীয়তার ভারসাম্য বজায় রাখার জন্য।
সময় ফিল্টার- সময় ফিল্টার যোগ করুন এবং পরিচিত নিম্নমানের লেনদেনের সময়গুলি এড়িয়ে চলুন, যেমন মধ্যাহ্নভোজের সময় কম ওঠানামা বা গুরুত্বপূর্ণ অর্থনৈতিক তথ্য প্রকাশের আগে এবং পরে উচ্চ ওঠানামা।
অভিযোজনযোগ্যতা প্যারামিটার যোগ করুন- স্বনির্ধারিত প্যারামিটারগুলি চালু করা হয়েছে যাতে কৌশলটি সাম্প্রতিক বাজার কার্যকারিতার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে প্যারামিটারগুলিকে সামঞ্জস্য করতে পারে, যেমন ঝুঁকির রিটার্নের অনুপাতকে গতিশীলভাবে সামঞ্জস্য করা বা সাম্প্রতিক বিজয়ী হারের উপর ভিত্তি করে ঝুঁকির শতাংশকে সামঞ্জস্য করা।
ওপেন ব্রেকিং এবং ফেয়ার ভ্যালু গ্যাপের সমন্বিত কৌশলটি একটি সুনির্দিষ্টভাবে পরিকল্পিত intraday ট্রেডিং সিস্টেম যা ORB এবং FVG উভয় প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সমন্বয় করে উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগগুলি সন্ধান করে। এই কৌশলটি সুনির্দিষ্ট ট্রেডিং সময়ের মধ্যে পরিচালিত হয়, ঝুঁকি-ভিত্তিক অবস্থান পরিচালনার পদ্ধতি ব্যবহার করে এবং ট্রেডিং সিদ্ধান্তে সহায়তা করার জন্য প্রচুর ভিজ্যুয়ালাইজেশন এবং পরিসংখ্যানগত সরঞ্জাম সরবরাহ করে।
কৌশলটির প্রধান সুবিধা হল তার স্পষ্ট ট্রেডিং লজিক, নমনীয় প্যারামিটার সেট এবং একটি বিস্তৃত ঝুঁকি ব্যবস্থাপনা। তবে, কৌশলগুলি বাজার নির্ভরতা, প্যারামিটার সংবেদনশীলতা এবং বাজার অবস্থার উপর নির্ভরশীলতার মতো ঝুঁকির মুখোমুখি হয়। কৌশলটির স্থিতিশীলতা বাড়ানোর জন্য, গতিশীল প্যারামিটারগুলি সামঞ্জস্য করা, ফিল্টার শর্তাবলী যুক্ত করা, স্টপ লস পদ্ধতিটি অনুকূলিতকরণ এবং বিভাগীয় মুনাফা ব্যবস্থা বাস্তবায়নের মতো অপ্টিমাইজেশন দিকগুলি বিবেচনা করার পরামর্শ দেওয়া হয়।
এটি লক্ষ করা উচিত যে এই কৌশলটি সমস্ত বাজার পরিস্থিতিতে এবং সমস্ত ব্যবসায়ের জাতের জন্য প্রযোজ্য নয়, ব্যবসায়ীদের কার্যকর প্রয়োগের আগে পর্যাপ্ত ব্যাক-এন্ড এবং ফরোয়ার্ড টেস্টিং করা উচিত যাতে কৌশলটি তাদের ঝুঁকি পছন্দ এবং ব্যবসায়ের লক্ষ্যগুলির সাথে সামঞ্জস্যপূর্ণ হয়। ক্রমাগত অপ্টিমাইজেশন এবং বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নেওয়া, এই কৌশলটি ডেইলি ট্রেডারদের সরঞ্জাম বাক্সে কার্যকর হাতিয়ার হওয়ার সম্ভাবনা রয়েছে।
/*backtest
start: 2025-06-18 00:00:00
end: 2025-06-25 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// Based on https://www.youtube.com/watch?v=mzFXoK2pbNE
//@version=5
strategy("[Myth Busting] [ORB] Casper SMC - 16 Jun", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, pyramiding = 10)
// Input settings
show_orb = input.bool(true, "Show 5m Opening Range")
show_signals = input.bool(true, "Show FVG Intersection Signals")
show_stats = input.bool(true, "Show Statistics Table")
risk_per_trade = input.float(1.0, "Risk Per Trade (%)", minval=0.1, maxval=10.0, step=0.1)
use_stop_loss = input.bool(true, "Use Stop Loss")
use_take_profit = input.bool(true, "Use Take Profit")
risk_reward_ratio = input.float(2.0, "Risk:Reward Ratio", minval=1.0, step=0.1)
// Session time inputs
session_start_hour = input.int(9, "Session Start Hour", minval=0, maxval=23, group="Session Settings")
session_start_minute = input.int(30, "Session Start Minute", minval=0, maxval=59, group="Session Settings")
session_end_hour = input.int(16, "Session End Hour", minval=0, maxval=23, group="Session Settings")
session_end_minute = input.int(0, "Session End Minute", minval=0, maxval=59, group="Session Settings")
session_timezone = input.string("America/New_York", "Session Timezone", group="Session Settings")
orb_duration_minutes = input.int(5, "ORB Duration (Minutes)", minval=1, maxval=60, group="Session Settings")
signal_end_offset = input.int(90, "Signal Period Duration (Minutes)", minval=30, maxval=300, group="Session Settings")
// Style settings
orb_high_color = input.color(color.new(color.green, 50), "ORB High Color")
orb_low_color = input.color(color.new(color.red, 50), "ORB Low Color")
bullish_signal_color = input.color(color.green, "Bullish Signal Color")
bearish_signal_color = input.color(color.red, "Bearish Signal Color")
// Variables to store ORB levels
var float orb_high = na
var float orb_low = na
var int orb_start_time = na
var int orb_end_time = na
var bool orb_set = false
// Position tracking
var int position_counter = 0
var int active_positions = 0
// Function to get current time in specified timezone
get_session_time() =>
current_hour = hour(time, session_timezone)
current_minute = minute(time, session_timezone)
current_hour * 60 + current_minute
// Calculate session times in minutes
session_start_minutes = session_start_hour * 60 + session_start_minute
session_end_minutes = session_end_hour * 60 + session_end_minute
orb_end_minutes = session_start_minutes + orb_duration_minutes
signal_end_minutes = session_start_minutes + signal_end_offset
// Check if we're in the ORB period
is_orb_period() =>
current_time = get_session_time()
current_time >= session_start_minutes and current_time < orb_end_minutes
// Check if we're in the signal period
is_signal_period() =>
current_time = get_session_time()
current_time >= orb_end_minutes and current_time < signal_end_minutes
// Check if we're in the overall trading session
is_trading_session() =>
current_time = get_session_time()
current_time >= session_start_minutes and current_time < session_end_minutes
// Reset ORB at the start of each trading session
new_session = is_trading_session() and not is_trading_session()[1]
if new_session or ta.change(dayofweek)
orb_high := na
orb_low := na
orb_start_time := na
orb_end_time := na
orb_set := false
position_counter := 0
// Capture ORB levels during the ORB period
if is_orb_period()
if na(orb_high) or na(orb_low)
orb_high := high
orb_low := low
orb_start_time := time
else
orb_high := math.max(orb_high, high)
orb_low := math.min(orb_low, low)
orb_end_time := time
// Mark ORB as set after the period ends
if not is_orb_period() and not na(orb_high) and not orb_set
orb_set := true
// Fair Value Gap detection
bullish_fvg = high[2] < low and not na(orb_high)
bearish_fvg = low[2] > high and not na(orb_low)
// Check for FVG intersection with ORB boundaries during signal period
bullish_intersection = false
bearish_intersection = false
// Count active positions
active_positions := strategy.opentrades
if is_signal_period() and orb_set
// Bullish FVG intersecting upper boundary
if bullish_fvg
if open[1] <= orb_high and close[1] >= orb_high
bullish_intersection := true
// Bearish FVG intersecting lower boundary
if bearish_fvg
if open[1] >= orb_low and close[1] <= orb_low
bearish_intersection := true
// Calculate position size based on risk per trade
calculate_position_size(entry, stop, is_long) =>
risk_amount = strategy.equity * (risk_per_trade / 100)
price_diff = is_long ? entry - stop : stop - entry
position_size = risk_amount / price_diff
position_size
// Strategy execution - Modified for multiple positions
if bullish_intersection
position_counter += 1
entry_price = close
stop_loss_price = low[1]
risk = entry_price - stop_loss_price
take_profit_price = entry_price + (risk * risk_reward_ratio)
// Calculate position size
qty = calculate_position_size(entry_price, stop_loss_price, true)
// Create unique entry ID
entry_id = "Long_" + str.tostring(position_counter)
exit_id = "LongExit_" + str.tostring(position_counter)
// Enter long position
strategy.entry(entry_id, strategy.long, qty=qty)
// Set stop loss and take profit
if use_stop_loss
strategy.exit(exit_id, entry_id, stop=stop_loss_price, limit=use_take_profit ? take_profit_price : na)
if bearish_intersection
position_counter += 1
entry_price = close
stop_loss_price = high[1]
risk = stop_loss_price - entry_price
take_profit_price = entry_price - (risk * risk_reward_ratio)
// Calculate position size
qty = calculate_position_size(entry_price, stop_loss_price, false)
// Create unique entry ID
entry_id = "Short_" + str.tostring(position_counter)
exit_id = "ShortExit_" + str.tostring(position_counter)
// Enter short position
strategy.entry(entry_id, strategy.short, qty=qty)
// Set stop loss and take profit
if use_stop_loss
strategy.exit(exit_id, entry_id, stop=stop_loss_price, limit=use_take_profit ? take_profit_price : na)
// Close all positions at end of trading session
if not is_trading_session() and strategy.position_size != 0
strategy.close_all("End of Trading Session")
// Plot ORB levels
plot(show_orb and orb_set ? orb_high : na, "ORB High", color=orb_high_color, linewidth=2, style=plot.style_line)
plot(show_orb and orb_set ? orb_low : na, "ORB Low", color=orb_low_color, linewidth=2, style=plot.style_line)
// Plot intersection signals
plotshape(series=show_signals and bullish_intersection, title="Bullish FVG Intersection", style=shape.triangleup, location=location.belowbar, color=bullish_signal_color, size=size.normal)
plotshape(series=show_signals and bearish_intersection, title="Bearish FVG Intersection", style=shape.triangledown, location=location.abovebar, color=bearish_signal_color, size=size.normal)
// Background highlights for different session periods
bgcolor(is_orb_period() ? color.new(color.yellow, 90) : na, title="ORB Period")
bgcolor(is_signal_period() and orb_set ? color.new(color.blue, 95) : na, title="Signal Period")
bgcolor(is_trading_session() and not is_signal_period() and not is_orb_period() ? color.new(color.gray, 98) : na, title="Trading Session")
// Plot session boundaries
plot(is_trading_session() ? high : na, "Session High", color=color.new(color.orange, 80), linewidth=1)
plot(is_trading_session() ? low : na, "Session Low", color=color.new(color.orange, 80), linewidth=1)