
ओपन बॉर्डर ब्रेकिंग और फेयर वैल्यू गैप संयोजन रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो ओपन बॉर्डर ब्रेकिंग (ORB) और स्मार्ट फंड अवधारणाओं (SMC) में फेयर वैल्यू गैप (FVG) को जोड़ती है। यह रणनीति पहले ट्रेडिंग दिन की शुरुआत में मूल्य क्षेत्र को परिभाषित करती है (आमतौर पर 5 मिनट के लिए) और फिर उस स्थिति की तलाश करती है जब कीमत इस क्षेत्र की सीमा को तोड़ती है और फेयर वैल्यू गैप के साथ टकरा जाती है। ट्रेडिंग सिग्नल। रणनीति को एक विशिष्ट समय अवधि के भीतर दिन के कारोबार के लिए डिज़ाइन किया गया है, विशेष रूप से अमेरिकी बाजार में नियमित ट्रेडिंग समय, और जोखिम प्रबंधन तंत्र के माध्यम से प्रत्येक ट्रेड के लिए जोखिम को नियंत्रित करता है।
इस रणनीति के मूल सिद्धांत दो महत्वपूर्ण तकनीकी विश्लेषण अवधारणाओं पर आधारित हैंः
ओआरबी (ORB)- रणनीति पहले एक मूल्य क्षेत्र बनाने के लिए ट्रेडिंग दिन के उद्घाटन के बाद एक विशिष्ट समय अवधि के भीतर उच्चतम और निम्नतम कीमतों को निर्धारित करती है (डिफ़ॉल्ट रूप से 5 मिनट) । इस क्षेत्र को बाजार के प्रतिभागियों द्वारा दिन के मूल्य आंदोलन के प्रारंभिक निर्णय के रूप में माना जाता है, और इस क्षेत्र को तोड़ना एक अल्पकालिक प्रवृत्ति के गठन का संकेत हो सकता है।
निष्पक्ष मूल्य गैप (FVG)- स्मार्ट फंड्स अवधारणा से विश्लेषणात्मक दृष्टिकोण (एसएमसी) में, वर्तमान ऊंचाई पूर्ववर्ती ऊंचाई से कम होने पर पूर्वाग्रह एफवीजी का गठन करती है, और वर्तमान ऊंचाई पूर्ववर्ती ऊंचाई से अधिक होने पर पूर्वाग्रह एफवीजी का गठन करती है। इन अंतरालों को उन क्षेत्रों के रूप में माना जाता है जहां कीमतें भविष्य में वापस आ सकती हैं, जो बाजार संरचना में असंतुलन का प्रतिनिधित्व करती हैं।
रणनीति के लिए ट्रेडिंग सिग्नल निम्नलिखित स्थितियों से उत्पन्न होते हैंः
ट्रेडों के निष्पादन के दौरान, रणनीति जोखिम-आधारित स्थिति प्रबंधन दृष्टिकोण का उपयोग करती है, जो प्रत्येक ट्रेड के लिए विशिष्ट स्थिति आकार की गणना स्टॉप लॉस दूरी के आधार पर करती है, ताकि यह सुनिश्चित किया जा सके कि प्रत्येक ट्रेड के लिए जोखिम की सीमा समान है। स्टॉप लॉस को कई ट्रेडों के लिए पिछले पतन के निचले बिंदु पर सेट किया गया है या एक शून्य ट्रेड के लिए पिछले पतन के उच्च बिंदु पर सेट किया गया है, जबकि लाभ प्राप्त करने का लक्ष्य पूर्व-निर्धारित जोखिम-प्रतिफल अनुपात पर आधारित है। (डिफ़ॉल्ट 2.0) । सभी अपर्याप्त ट्रेडों को ट्रेडिंग अवधि के अंत में स्वचालित रूप से पतन किया जाता है, जिससे यह सुनिश्चित होता है कि कोई भी रात भर की स्थिति नहीं है।
तकनीकी विश्लेषण के विभिन्न तरीकों का संयोजन- ORB और FVG दोनों तकनीकी विश्लेषण विधियों के एकीकरण के माध्यम से, रणनीति एक एकल सूचक द्वारा उत्पन्न होने वाले झूठे संकेतों को फ़िल्टर करने में सक्षम है, जिससे ट्रेडिंग संकेतों की गुणवत्ता में सुधार होता है।
स्पष्ट लेन-देन समय सीमा- रणनीति स्पष्ट रूप से व्यापार के समय सीमा को परिभाषित करती है (सिग्नल और ट्रेडिंग अवधि) जो व्यापारियों को उन समयों पर ध्यान केंद्रित करने में मदद करती है जब बाजार सबसे अधिक सक्रिय होता है और संकेत की गुणवत्ता सबसे अधिक होती है, और कम सक्रियता के समय में अमान्य व्यापार से बचा जाता है।
जोखिम आधारित पोजीशन प्रबंधन- रणनीति जोखिम-आधारित पोजीशन गणना विधि का उपयोग करती है ताकि यह सुनिश्चित किया जा सके कि प्रत्येक ट्रेड के लिए जोखिम खाते की कुल पूंजी का एक समान अनुपात है (डिफ़ॉल्ट 1%) जो दीर्घकालिक धन प्रबंधन और जोखिम नियंत्रण के लिए अनुकूल है।
लचीला पैरामीटर विन्यास- रणनीति कई समायोज्य पैरामीटर प्रदान करती है, जिसमें ट्रेडिंग समय सेटिंग, ओआरबी अवधि, सिग्नल अवधि अवधि, जोखिम अनुपात और जोखिम रिटर्न अनुपात आदि शामिल हैं, जिससे व्यापारियों को विभिन्न बाजारों और व्यक्तिगत जोखिम वरीयताओं के अनुसार अनुकूलित किया जा सकता है।
दृश्य सहायता- रणनीति में ORB क्षितिज रेखा, ट्रेडिंग सिग्नल मार्कर, विभिन्न ट्रेडिंग समय के लिए पृष्ठभूमि की चमक और वास्तविक समय के आंकड़ों की एक सारणी सहित कई दृश्य तत्व हैं, जो व्यापारियों को रणनीति के कार्यान्वयन की निगरानी और विश्लेषण करने में मदद करते हैं।
बहु-स्तरीय प्रबंधन का समर्थन करें- रणनीतिक डिजाइन एक ही समय में कई व्यापारिक पदों को पकड़ने का समर्थन करता है ((पीरामिडिंग पैरामीटर नियंत्रण के माध्यम से), एक ही व्यापारिक दिन के भीतर कई व्यापारिक अवसरों को पकड़ने की अनुमति देता है, जिससे धन का उपयोग करने की दक्षता बढ़ जाती है।
विशिष्ट बाजार निर्भरता- यह रणनीति मुख्य रूप से अमेरिकी शेयर बाजार में नियमित व्यापार के समय के लिए डिज़ाइन की गई है, जो अन्य बाजारों या व्यापार के समय में खराब हो सकती है। विभिन्न बाजारों में खुलने की विशेषताएं और अस्थिरता पैटर्न में काफी भिन्नता है, जिसके लिए पैरामीटर को अनुकूलित करने की आवश्यकता है।
पैरामीटर संवेदनशीलता- रणनीति प्रदर्शन कई महत्वपूर्ण मापदंडों के लिए संवेदनशील है, जैसे कि ओआरबी अवधि, सिग्नल अवधि की लंबाई और रिस्क-रिटर्न अनुपात। अनुचित पैरामीटर सेटिंग्स के कारण ओवर-ट्रेडिंग या महत्वपूर्ण ट्रेडिंग अवसरों को याद किया जा सकता है।
बाजार की स्थिति पर निर्भरता- उच्च अस्थिरता या कम अस्थिरता वाले बाजार के वातावरण में, रणनीति का प्रदर्शन असंगत हो सकता है। विशेष रूप से कम अस्थिरता वाले बाजारों में, ओआरबी की सीमाएं बहुत संकीर्ण हो सकती हैं, जिससे अक्सर झूठे ब्रेकआउट सिग्नल ट्रिगर होते हैं।
स्टॉप पोजीशन जोखिम- रणनीति में एक पूर्ववर्ती स्ट्रिंग के उच्च/निचले बिंदु का उपयोग किया जाता है, जो एक स्टॉप-लॉस पोजीशन के रूप में होता है, जो तेजी से बाजारों में स्टॉप-लॉस पोजीशन को बहुत बड़ा बना सकता है, जिससे रिस्क-रिटर्न अनुपात कम हो जाता है या स्थिति का आकार बहुत छोटा हो जाता है।
ऐतिहासिक मूल्य पैटर्न पर निर्भर- रणनीतिक परिकल्पना एफवीजी क्षेत्र और ओआरबी में तोड़फोड़ के लिए पूर्वानुमानात्मक है, लेकिन बाजार दक्षता में सुधार या ट्रेडिंग वातावरण में परिवर्तन इन मॉडलों की प्रभावशीलता को कम कर सकता है।
तकनीकी निष्पादन जोखिम- वास्तविक लेनदेन में, स्लिप पॉइंट्स, ऑर्डर निष्पादन में देरी जैसी समस्याएं हो सकती हैं, जो वास्तविक लेनदेन के परिणामों और फीडबैक परिणामों की संगतता को प्रभावित करती हैं।
गतिशील ORB अवधि- बाजार की अस्थिरता के आधार पर ORB की अवधि को स्वचालित रूप से समायोजित करने पर विचार किया जा सकता है, जैसे कि उच्च अस्थिरता वाले बाजार की स्थिति में झूठे ब्रेकआउट से बचने के लिए लंबे ORB समय का उपयोग करना, और कम अस्थिरता वाले वातावरण में ORB समय को कम करना अधिक व्यापारिक अवसरों को पकड़ने के लिए।
फ़िल्टर शर्तें जोड़ें- अतिरिक्त फ़िल्टरिंग शर्तों को पेश करने से सिग्नल की गुणवत्ता में सुधार होता है, जैसे कि समग्र बाजार की प्रवृत्ति की दिशा के साथ संयोजन ((केवल ऊपर की प्रवृत्ति में अधिक करें, नीचे की प्रवृत्ति में शून्य करें), या लेनदेन की पुष्टि जोड़ें ((केवल जब लेनदेन की मात्रा में वृद्धि होती है तो व्यापार करें)) ।
स्टॉप लॉस स्थिति का अनुकूलन करें- एटीआर या अस्थिरता के आधार पर गतिशील स्टॉप लॉस सेटिंग्स का उपयोग करने पर विचार करें, जो वर्तमान में फिक्स्ड स्टॉप लॉस के विकल्प के रूप में है, जो कि पिछले फ्लैग हाई-लॉस पर आधारित है, जो अधिक उचित जोखिम नियंत्रण प्रदान कर सकता है।
लाभ के लिए आंशिक तंत्र जोड़ना- चरणबद्ध लाभप्रदता रणनीतियों को लागू करना, जैसे कि 1:1 रिस्क-रिटर्न अनुपात तक पहुंचने पर कुछ पदों को खत्म करना, शेष को स्टॉपलॉस या अधिक दूर के लाभप्रदता लक्ष्यों को ट्रैक करने के लिए सेट करना, लाभ को लॉक करने और ट्रेंड को ट्रैक करने की आवश्यकता को संतुलित करना।
समय फ़िल्टर- समय फ़िल्टर को शामिल करें, जो ज्ञात कम गुणवत्ता वाले लेनदेन के समय से बचता है, जैसे कि दोपहर के भोजन के समय कम अस्थिरता या महत्वपूर्ण आर्थिक आंकड़ों के प्रकाशन से पहले और बाद में उच्च अस्थिरता।
अनुकूली पैरामीटर जोड़ें- अनुकूलन पैरामीटर को शामिल किया गया है ताकि रणनीति को हाल के बाजार प्रदर्शन के आधार पर स्वचालित रूप से पैरामीटर को समायोजित करने की अनुमति दी जा सके, जैसे कि गतिशील रूप से जोखिम-प्रतिफल अनुपात को समायोजित करना या हाल ही में जीतने की दर के आधार पर जोखिम प्रतिशत को समायोजित करना।
ओपन बैंड ब्रेकिंग और फेयर वैल्यू गैप के संयोजन की रणनीति एक अच्छी तरह से डिजाइन की गई दिन के कारोबार प्रणाली है जो ओआरबी और एफवीजी दोनों तकनीकी विश्लेषण विधियों के संयोजन के माध्यम से उच्च संभावना वाले व्यापार के अवसरों की तलाश करती है। यह रणनीति स्पष्ट रूप से परिभाषित व्यापार के समय के भीतर चलती है, जोखिम-आधारित स्थिति प्रबंधन दृष्टिकोण का उपयोग करती है, और व्यापारिक निर्णयों में सहायता के लिए दृश्यता और सांख्यिकीय उपकरणों की एक विस्तृत श्रृंखला प्रदान करती है।
रणनीतियों के मुख्य लाभ स्पष्ट व्यापार तर्क, लचीला पैरामीटर सेटिंग और व्यापक जोखिम प्रबंधन तंत्र में निहित हैं। हालांकि, रणनीतियों को बाजार निर्भरता, पैरामीटर संवेदनशीलता और बाजार की स्थिति निर्भरता जैसे जोखिमों का भी सामना करना पड़ता है। रणनीति की स्थिरता बढ़ाने के लिए, यह अनुशंसा की जाती है कि गतिशील पैरामीटर समायोजन, फ़िल्टरिंग शर्तों को बढ़ाने, स्टॉप-लॉस विधियों को अनुकूलित करने और चरणबद्ध लाभप्रदता तंत्र को लागू करने जैसे अनुकूलन दिशाओं पर विचार किया जाए।
यह ध्यान दिया जाना चाहिए कि यह रणनीति सभी बाजार स्थितियों और सभी व्यापारिक किस्मों के लिए उपयुक्त नहीं है, और व्यापारियों को यह सुनिश्चित करने के लिए कि रणनीति उनके जोखिम वरीयताओं और व्यापारिक लक्ष्यों के अनुरूप है, वास्तविक उपयोग से पहले पर्याप्त बैक-एंड-फॉरवर्ड परीक्षण करना चाहिए। निरंतर अनुकूलन और बाजार में बदलाव के लिए अनुकूलन के माध्यम से, इस रणनीति में दिन के व्यापारियों के टूलकिट में एक प्रभावी उपकरण बनने की क्षमता है।
/*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)