उन्नत ट्रेडिंग पैटर्न पहचान और गतिशील जोखिम प्रबंधन रणनीतियाँ

EMA ATR FIBONACCI ENGULFING volatility VOLUME RISK-REWARD
निर्माण तिथि: 2025-06-19 13:57:50 अंत में संशोधित करें: 2025-06-19 13:57:50
कॉपी: 4 क्लिक्स: 287
2
ध्यान केंद्रित करना
319
समर्थक

उन्नत ट्रेडिंग पैटर्न पहचान और गतिशील जोखिम प्रबंधन रणनीतियाँ उन्नत ट्रेडिंग पैटर्न पहचान और गतिशील जोखिम प्रबंधन रणनीतियाँ

रणनीति अवलोकन

उन्नत ट्रेडिंग पैटर्न पहचान और गतिशील जोखिम प्रबंधन रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो सटीक अवशोषण पैटर्न पहचान तकनीक और गतिशील जोखिम प्रबंधन प्रणाली को जोड़ती है। इस रणनीति का मूल यह है कि बाजार में अवशोषण पैटर्न को उन्नत गणितीय सत्यापन विधियों के माध्यम से सटीक रूप से पहचाना जाए, और 50 चक्रों की गतिशील औसत (ईएमए) को एक प्रवृत्ति फ़िल्टर के रूप में जोड़ा जाए, ताकि यह सुनिश्चित किया जा सके कि व्यापार की दिशा प्रमुख बाजार की प्रवृत्ति से मेल खाती है। रणनीति चार्ट पैटर्न, लेनदेन की मात्रा की पुष्टि और अस्थिरता फ़िल्टरिंग जैसे बहु-तकनीकी संकेतकों के गहन विश्लेषण के माध्यम से उच्च संभावना वाले व्यापार संकेतों को छानती है, जबकि गतिशील रोकथाम और लाभप्रदता लक्ष्यों के आधार पर फिनाले पोनोचिच के स्तर को लागू करती है।

रणनीति सिद्धांत

इस रणनीति का संचालन कई प्रमुख घटकों के सहयोग से किया जाता हैः

  1. रुझान पहचान प्रणाली50 चक्र ईएमए का उपयोग मुख्य प्रवृत्ति संकेतक के रूप में करें। ईएमए के ऊपर की कीमतें उछाल प्रवृत्ति के रूप में पहचानी जाती हैं, जो अधिक करने के लिए उपयुक्त हैं; ईएमए के नीचे की कीमतें नीचे की प्रवृत्ति के रूप में पहचानी जाती हैं, जो खाली करने के लिए उपयुक्त हैं। यह सुनिश्चित करता है कि व्यापार हमेशा बाजार की प्रमुख दिशा के अनुरूप हो।

  2. उच्च स्तर की स्वैग पहचान: रणनीति उन्नत संस्करण के अवशोषण के रूपों का पता लगाती है, जिसमें वर्तमान किल पूरी तरह से “अवशोषित” होती है, और गणितीय सत्यापन के माध्यम से आकृति की गुणवत्ता सुनिश्चित करती है। सिस्टम विश्लेषण करता हैः

    • वर्तमान पिंड की तुलना में पिछले पिंड का अनुपात ((न्यूनतम निगलने की दर)
    • ऊपर-नीचे छाया रेखा का अनुपात (अधिकतम छाया रेखा अनुपात)
    • औसत वास्तविक रेंज (ATR) के साथ वर्तमान टैंक के समग्र आकार का संबंध
  3. मल्टीफ़िल्टरिंग

    • लेन-देन फ़िल्टरिंगः यह सुनिश्चित करना कि लेन-देन की मात्रा औसत से अधिक है
    • अस्थिरता फ़िल्टरिंगः एटीआर के माध्यम से बाजार की अस्थिरता को सत्यापित करने के लिए उपयुक्त ट्रेडिंग शर्तें
    • छायांकन गुणवत्ता नियंत्रणः सिग्नल गुणवत्ता बढ़ाने के लिए ऊपर और नीचे छायांकन आकार को सीमित करें
  4. गतिशील जोखिम प्रबंधन

    • स्टॉप लॉस गणनाः कई स्टॉप लॉस रणनीतियों का समर्थन करता है जो फिबोनाची स्तर, निश्चित राशि या एटीआर गुणांक पर आधारित हैं
    • मुनाफा लक्ष्यः निश्चित रिस्क-रिटर्न अनुपात या फाइबोनैचि स्तरों का उपयोग करके लक्ष्य सेट करें
    • वास्तविक व्यापारिक वातावरण में रणनीति की व्यवहार्यता सुनिश्चित करने के लिए स्वचालित रूप से लेनदेन शुल्क की गणना करना

रणनीतिक लाभ

कोड के गहन विश्लेषण के माध्यम से, इस रणनीति के निम्नलिखित प्रमुख फायदे हैं:

  1. प्रवेश का सही समय: रुझान, आकृति और बहु-पुष्टि संकेतकों के संयोजन के माध्यम से, रणनीति बाजार में उच्च गुणवत्ता वाले प्रवेश बिंदुओं की पहचान करने में सक्षम है, जो सांख्यिकीय लाभ के साथ हैं, जिससे एकल संकेतक द्वारा संभावित झूठे संकेतों से बचा जा सकता है।

  2. जोखिम प्रबंधन के लिए अनुकूलनस्थिर पैरामीटर के साथ पारंपरिक रणनीतियों के विपरीत, इस रणनीति के लिए जोखिम प्रबंधन प्रणाली वर्तमान बाजार स्थितियों के अनुसार गतिशील रूप से समायोजित होती है, और विभिन्न बाजार स्थितियों के लिए बेहतर रूप से अनुकूलित करने के लिए फाइबोनैचि स्तर या एटीआर मानों का उपयोग करके स्टॉप-लॉस और रिटर्न लक्ष्य की गणना करती है।

  3. पूर्ण दृश्य समर्थनरणनीतियाँः रणनीतियाँ व्यापक चार्ट मार्कर और सूचना पैनल प्रदान करती हैं, जिसमें प्रवेश संकेत, स्टॉप / लाभ स्तर, वर्तमान रुझान की स्थिति और वास्तविक समय पी एंड एल ट्रैकिंग शामिल है, जिससे व्यापारियों को बाजार की स्थिति और रणनीतिक प्रदर्शन की सहज समझ में मदद मिलती है।

  4. उच्च अनुकूलनरणनीतियाँ ईएमए लंबाई, अवशोषण अनुपात, रिस्क-रिटर्न अनुपात आदि सहित कई पैरामीटर सेटिंग्स प्रदान करती हैं, जिससे व्यापारियों को व्यक्तिगत जोखिम वरीयताओं और विभिन्न बाजार स्थितियों के आधार पर रणनीति प्रदर्शन को समायोजित करने की अनुमति मिलती है।

  5. समेकित लेनदेन लागत विचाररणनीति में अंतर्निहित ट्रेडिंग कमीशन की गणना, एक महत्वपूर्ण कारक जिसे कई ट्रेडिंग सिस्टम अक्सर अनदेखा करते हैं, यह सुनिश्चित करने के लिए कि परिणाम वास्तविक ट्रेडिंग वातावरण के करीब हैं।

रणनीतिक जोखिम

इस रणनीति के कई फायदे होने के बावजूद, इसके कुछ संभावित जोखिम और सीमाएं हैंः

  1. बाजार की स्थिति पर निर्भरता: रणनीति स्पष्ट रूप से ट्रेंडिंग बाजारों में सबसे अच्छा प्रदर्शन करती है, जबकि क्षैतिज संरेखण या उच्च अस्थिरता वाले निर्विवाद बाजारों में अधिक झूठे संकेत उत्पन्न हो सकते हैं। समाधान रणनीति का उपयोग करने से पहले उच्च समय सीमा की स्थिति का मूल्यांकन करना है, या अतिरिक्त बाजार संरचना फिल्टर जोड़ना है।

  2. पैरामीटर अनुकूलन जाल: अति-अनुकूलित पैरामीटर भविष्य के बाजार की परिस्थितियों में खराब प्रदर्शन के लिए वक्र अनुकूलन का कारण बन सकता है। पैरामीटर की प्रभावशीलता को सत्यापित करने के लिए आगे की ओर परीक्षण या विभिन्न बाजार स्थितियों में स्थिरता परीक्षण का उपयोग करने की सिफारिश की जाती है।

  3. ब्रेकआउट जोखिम को रोकना: चरम बाजार में उतार-चढ़ाव या कम तरलता की स्थिति में, वास्तविक हानियों का सामना करना पड़ सकता है, जो अनुमानित नुकसान से अधिक हो सकता है। इस जोखिम को हानियों के लिए बफर जोन बढ़ाकर या अधिक संरक्षित स्थिति आकार का उपयोग करके कम किया जा सकता है।

  4. तकनीकी सूचकांक में पिछड़ापनईएमए और अन्य तकनीकी संकेतक स्वाभाविक रूप से पिछड़े हैं और बाजार में तेजी से बदलाव के लिए प्रतिक्रियाशील नहीं हो सकते हैं। इस कमी को दूर करने के लिए उच्च समय सीमा विश्लेषण या प्रारंभिक चेतावनी संकेतकों को जोड़ने की सिफारिश की जाती है।

  5. लेनदेन की मात्रा और गुणवत्ता: रणनीति केवल लेनदेन की मात्रा के आकार को ध्यान में रखती है और लेनदेन की मात्रा संरचना और गुणवत्ता को ध्यान में नहीं रखती है, जो कुछ बाजार स्थितियों में भ्रामक हो सकती है। लेनदेन की मात्रा के विश्लेषण को बढ़ाने के लिए लेनदेन वितरण विश्लेषण या धन प्रवाह संकेतक की गहराई को जोड़ने पर विचार किया जा सकता है।

रणनीति अनुकूलन दिशा

कोड विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः

  1. बाजार की स्थिति अनुकूलन

    • प्रवृत्ति और खंड बाजारों में विभिन्न पैरामीटर सेट का उपयोग करके बाजार संरचना की पहचान करने के लिए
    • बाजार में उतार-चढ़ाव की दर सूचकांक (VIX) या अन्य बाजार भावना सूचकांकों को पेश करना, उच्च उतार-चढ़ाव के दौरान जोखिम पैरामीटर को स्वचालित रूप से समायोजित करना
    • कारणः यह रणनीति को विभिन्न बाजार स्थितियों के लिए स्मार्ट रूप से अनुकूलित करने और समग्र स्थिरता में सुधार करने की अनुमति देगा
  2. बहु-समय-सीमा विश्लेषण

    • उच्चतर समय-सीमा के लिए प्रवृत्ति की पुष्टि के लिए तंत्र
    • कम समय सीमा का उपयोग करके प्रवेश की सटीकता का अनुकूलन
    • कारणः बहु-समय-सीमा विश्लेषण ने रुझानों की पहचान की सटीकता में उल्लेखनीय वृद्धि की है, जिससे प्रतिकूल ट्रेडों में कमी आई है
  3. उच्च-स्तरीय लेनदेन की मात्रा का विश्लेषण

    • ट्रेडिंग वॉल्यूम भारित चलती औसत (वीडब्ल्यूएमए) को अतिरिक्त प्रवृत्ति की पुष्टि के रूप में पेश करना
    • कुल लेनदेन की तुलना में दबाव का विश्लेषण करें
    • कारणः अधिक परिष्कृत लेनदेन की मात्रा विश्लेषण बाजार में प्रतिभागियों के व्यवहार के बारे में अधिक गहराई से जानकारी प्रदान कर सकता है
  4. मशीन लर्निंग

    • सरल मशीन सीखने एल्गोरिदम का उपयोग करके स्वचालित रूप से अनुकूलित पैरामीटर
    • ऐतिहासिक आंकड़ों के आधार पर सबसे अच्छा अवशोषण पैटर्न की पहचान
    • कारणः मशीन लर्निंग सूक्ष्म पैटर्न और संबंधों की पहचान कर सकता है जो मनुष्य को खोजने में मुश्किल है
  5. जोखिम प्रबंधन में सुधार

    • खातों के शुद्ध मूल्य के आधार पर गतिशील स्थिति समायोजन
    • दिन/सप्ताह/महीना जोखिम सीमा जोड़ें
    • लाभ और हानि संतुलन (ब्रेकविन) फ़ंक्शन
    • क्योंः अधिक उन्नत जोखिम प्रबंधन दीर्घकालिक व्यापार सफलता की नींव है

संक्षेप

उन्नत ट्रेडिंग पैटर्न पहचान और गतिशील जोखिम प्रबंधन रणनीति एक अच्छी तरह से डिज़ाइन की गई ट्रेडिंग प्रणाली है, जो पारंपरिक अवशोषण पैटर्न तकनीकी विश्लेषण और आधुनिक मात्रात्मक तरीकों के संयोजन के माध्यम से एक व्यापक ट्रेडिंग फ्रेमवर्क बनाती है। इस रणनीति का मुख्य लाभ इसकी बहुआयामी सिग्नल पुष्टिकरण तंत्र और अनुकूली जोखिम प्रबंधन प्रणाली है, जो इसे विभिन्न बाजार स्थितियों में अपेक्षाकृत स्थिर प्रदर्शन करने में सक्षम बनाती है।

रणनीति ने 50 ईएमए ट्रेंड फ़िल्टरिंग, उन्नत स्वैप पैटर्न पहचान, ट्रेड वॉल्यूम और अस्थिरता की पुष्टि जैसे कई तंत्रों के माध्यम से प्रवेश संकेत की गुणवत्ता में उल्लेखनीय सुधार किया। साथ ही, फिबोनाची स्तर या एटीआर गुणांक द्वारा गणना किए गए गतिशील स्टॉप-लॉस और लाभ लक्ष्य, प्रत्येक व्यापार के लिए एक स्पष्ट जोखिम-लाभ संरचना प्रदान करते हैं।

बाजार की स्थिति पर निर्भरता और तकनीकी संकेतकों में पिछड़ापन जैसी अंतर्निहित सीमाओं के बावजूद, इस रणनीति में बाजार की स्थिति के अनुकूलन, बहु-समय फ्रेम विश्लेषण और मशीन सीखने को बढ़ाने जैसे सुझाए गए अनुकूलन दिशाओं के माध्यम से इसकी स्थिरता और अनुकूलनशीलता को और बढ़ाने की क्षमता है। अनुभवी व्यापारियों के लिए, यह एक पेशेवर-स्तरीय व्यापार प्रणाली है जो पूर्ण कार्यक्षमता प्रदान करती है, जबकि नौसिखियों के लिए, यह उन्नत व्यापारिक अवधारणाओं और जोखिम प्रबंधन सिद्धांतों को सीखने के लिए एक शैक्षिक उपकरण के रूप में कार्य करती है।

रणनीति स्रोत कोड
/*backtest
start: 2025-05-19 00:00:00
end: 2025-06-18 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("🎯 IKODO Engulfing Strategy with Dynamic RR & Commission", shorttitle="IKODO Engulfing Pro", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=0, calc_on_every_tick=false, calc_on_order_fills=false, commission_type=strategy.commission.percent, commission_value=0.04)

// ═══════════════════════════════════════════════════════════════════════════════
// 📊 ADVANCED INPUT PARAMETERS
// ═══════════════════════════════════════════════════════════════════════════════

// Commission Settings
enable_commission = input.bool(true, "Enable Commission", group="💰 Commission Settings")
commission_rate = input.float(0.04, "Commission Rate (%)", minval=0.0, maxval=1.0, step=0.01, group="💰 Commission Settings", tooltip="Binance Futures: 0.02% Maker, 0.04% Taker")
commission_type_input = input.string("Percentage", "Commission Type", options=["Percentage", "Fixed USD"], group="💰 Commission Settings")

// Risk Management Inputs
rr_ratio = input.float(2.0, "Risk Reward Ratio", minval=0.5, maxval=10.0, step=0.1, group="🎯 Risk Management")
use_fibonacci_tp = input.bool(true, "Use Fibonacci Levels for TP", group="🎯 Risk Management")
fib_level_tp = input.float(0.618, "Fibonacci Level for TP", minval=0.236, maxval=1.0, step=0.001, group="🎯 Risk Management")

// Stop Loss Settings
sl_type = input.string("Fibonacci", "Stop Loss Type", options=["Fibonacci", "Fixed USD", "ATR Multiple"], group="🛡️ Stop Loss Settings")
sl_fib_level = input.float(0.236, "Fibonacci Level for SL", minval=0.1, maxval=0.5, step=0.001, group="🛡️ Stop Loss Settings")
sl_fixed_usd = input.float(50.0, "Fixed Stop Loss (USD)", minval=1.0, maxval=1000.0, step=1.0, group="🛡️ Stop Loss Settings")
sl_atr_multiple = input.float(1.5, "ATR Multiple for SL", minval=0.5, maxval=5.0, step=0.1, group="🛡️ Stop Loss Settings")

// EMA Settings
ema_length = input.int(50, "EMA Length", minval=1, maxval=200, group="📈 Trend Filter")
ema_source = input.source(close, "EMA Source", group="📈 Trend Filter")

// Pattern Recognition Settings
min_engulf_ratio = input.float(0.1, "Minimum Engulfing Ratio", minval=0.01, maxval=1.0, step=0.01, group="🔍 Pattern Recognition")
max_wick_ratio = input.float(0.3, "Maximum Wick Ratio", minval=0.1, maxval=0.8, step=0.01, group="🔍 Pattern Recognition")

// Advanced Filters
volume_filter = input.bool(true, "Use Volume Filter", group="🔧 Advanced Filters")
volume_multiplier = input.float(1.2, "Volume Multiplier", minval=1.0, maxval=3.0, step=0.1, group="🔧 Advanced Filters")
atr_filter = input.bool(true, "Use ATR Volatility Filter", group="🔧 Advanced Filters")
atr_length = input.int(14, "ATR Length", minval=1, maxval=50, group="🔧 Advanced Filters")
min_atr_ratio = input.float(0.5, "Minimum ATR Ratio", minval=0.1, maxval=2.0, step=0.1, group="🔧 Advanced Filters")

// Visualization Settings
show_fibonacci_levels = input.bool(true, "Show Fibonacci Levels", group="🎨 Visualization")

// ═══════════════════════════════════════════════════════════════════════════════
// 🧮 QUANTITATIVE CALCULATIONS
// ═══════════════════════════════════════════════════════════════════════════════

// EMA Calculation
ema_50 = ta.ema(ema_source, ema_length)

// ATR for Volatility Assessment
atr = ta.atr(atr_length)

// Volume Analysis
avg_volume = ta.sma(volume, 20)
volume_condition = not volume_filter or volume > avg_volume * volume_multiplier

// Fibonacci calculation for swing levels
swing_high = ta.highest(high, 20)
swing_low = ta.lowest(low, 20)

// ═══════════════════════════════════════════════════════════════════════════════
// 🔍 ADVANCED PATTERN RECOGNITION
// ═══════════════════════════════════════════════════════════════════════════════

// Current and Previous Candle Properties
curr_body = math.abs(close - open)
prev_body = math.abs(close[1] - open[1])
curr_range = high - low
prev_range = high[1] - low[1]

// Candle Color Identification
curr_bullish = close > open
curr_bearish = close < open
prev_bullish = close[1] > open[1]
prev_bearish = close[1] < open[1]

// Enhanced Engulfing Pattern Detection
bullish_engulfing = curr_bullish and prev_bearish and close > high[1] and low < low[1] and curr_body > prev_body * min_engulf_ratio

bearish_engulfing = curr_bearish and prev_bullish and close < low[1] and high > high[1] and curr_body > prev_body * min_engulf_ratio

// Wick Analysis for Quality Filter
curr_upper_wick = curr_bullish ? high - close : high - open
curr_lower_wick = curr_bullish ? open - low : close - low
wick_filter_long = curr_upper_wick <= curr_range * max_wick_ratio
wick_filter_short = curr_lower_wick <= curr_range * max_wick_ratio

// ATR Volatility Filter
atr_filter_condition = not atr_filter or curr_range >= atr * min_atr_ratio

// ═══════════════════════════════════════════════════════════════════════════════
// 📈 TREND ANALYSIS & ENTRY CONDITIONS
// ═══════════════════════════════════════════════════════════════════════════════

// Trend Conditions
uptrend = close > ema_50
downtrend = close < ema_50

// Complete Entry Conditions
long_condition = uptrend and bullish_engulfing and wick_filter_long and volume_condition and atr_filter_condition

short_condition = downtrend and bearish_engulfing and wick_filter_short and volume_condition and atr_filter_condition

// ═══════════════════════════════════════════════════════════════════════════════
// 🎯 ADVANCED STOP LOSS CALCULATION
// ═══════════════════════════════════════════════════════════════════════════════

// Function to calculate stop loss based on type
calculate_stop_loss(entry_price, is_long, sl_type, swing_high, swing_low, atr, sl_fib_level, sl_fixed_usd, sl_atr_multiple) =>
    var float stop_loss = na
    
    if sl_type == "Fibonacci"
        if is_long
            fib_range = swing_high - swing_low
            stop_loss := swing_low + (fib_range * sl_fib_level)
        else
            fib_range = swing_high - swing_low
            stop_loss := swing_high - (fib_range * sl_fib_level)
    
    else if sl_type == "Fixed USD"
        if is_long
            stop_loss := entry_price - sl_fixed_usd
        else
            stop_loss := entry_price + sl_fixed_usd
    
    else if sl_type == "ATR Multiple"
        if is_long
            stop_loss := entry_price - (atr * sl_atr_multiple)
        else
            stop_loss := entry_price + (atr * sl_atr_multiple)
    
    stop_loss

// Function to calculate take profit
calculate_take_profit(entry_price, stop_loss, is_long, use_fibonacci_tp, swing_high, swing_low, fib_level_tp, rr_ratio) =>
    var float take_profit = na
    
    if use_fibonacci_tp
        if is_long
            fib_range = swing_high - swing_low
            take_profit := swing_low + (fib_range * fib_level_tp)
        else
            fib_range = swing_high - swing_low
            take_profit := swing_high - (fib_range * fib_level_tp)
    else
        // Traditional RR-based TP
        if is_long
            risk = entry_price - stop_loss
            take_profit := entry_price + (risk * rr_ratio)
        else
            risk = stop_loss - entry_price
            take_profit := entry_price - (risk * rr_ratio)
    
    take_profit

// ═══════════════════════════════════════════════════════════════════════════════
// 🎯 DYNAMIC RISK MANAGEMENT SYSTEM
// ═══════════════════════════════════════════════════════════════════════════════

// Dynamic Stop Loss and Take Profit Calculation
var float entry_price = na
var float stop_loss = na
var float take_profit = na
var float commission_cost = na

if long_condition and strategy.position_size == 0
    entry_price := close
    stop_loss := calculate_stop_loss(entry_price, true, sl_type, swing_high, swing_low, atr, sl_fib_level, sl_fixed_usd, sl_atr_multiple)
    take_profit := calculate_take_profit(entry_price, stop_loss, true, use_fibonacci_tp, swing_high, swing_low, fib_level_tp, rr_ratio)
    
    // Calculate commission cost
    commission_cost := enable_commission and commission_type_input == "Fixed USD" ? sl_fixed_usd * 2 : 0

if short_condition and strategy.position_size == 0
    entry_price := close
    stop_loss := calculate_stop_loss(entry_price, false, sl_type, swing_high, swing_low, atr, sl_fib_level, sl_fixed_usd, sl_atr_multiple)
    take_profit := calculate_take_profit(entry_price, stop_loss, false, use_fibonacci_tp, swing_high, swing_low, fib_level_tp, rr_ratio)
    
    // Calculate commission cost
    commission_cost := enable_commission and commission_type_input == "Fixed USD" ? sl_fixed_usd * 2 : 0

// ═══════════════════════════════════════════════════════════════════════════════
// 🚀 STRATEGY EXECUTION WITH COMMISSION
// ═══════════════════════════════════════════════════════════════════════════════

// Entry Orders
if long_condition
    strategy.entry("Long", strategy.long, comment="🟢 Elite Long Entry")

if short_condition
    strategy.entry("Short", strategy.short, comment="🔴 Elite Short Entry")

// Exit Orders
if strategy.position_size > 0
    strategy.exit("Long Exit", "Long", stop=stop_loss, limit=take_profit, comment="🎯 Long Exit")

if strategy.position_size < 0
    strategy.exit("Short Exit", "Short", stop=stop_loss, limit=take_profit, comment="🎯 Short Exit")

// ═══════════════════════════════════════════════════════════════════════════════
// 📊 ADVANCED VISUALIZATION - GLOBAL SCOPE
// ═══════════════════════════════════════════════════════════════════════════════

// EMA Plot
plot(ema_50, "EMA 50", color=color.new(color.blue, 0), linewidth=2)

// Entry Signals
plotshape(long_condition, "Long Signal", shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.normal)
plotshape(short_condition, "Short Signal", shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.normal)

// Support/Resistance Levels
plot(strategy.position_size != 0 ? stop_loss : na, "Stop Loss", color.new(color.red, 0), linewidth=2, style=plot.style_linebr)
plot(strategy.position_size != 0 ? take_profit : na, "Take Profit", color.new(color.green, 0), linewidth=2, style=plot.style_linebr)

// Entry Price Line
plot(strategy.position_size != 0 ? entry_price : na, "Entry Price", color.new(color.yellow, 0), linewidth=1, style=plot.style_linebr)

// Fibonacci Levels Visualization - MOVED TO GLOBAL SCOPE
show_fib_condition = show_fibonacci_levels and (sl_type == "Fibonacci" or use_fibonacci_tp)
plot(show_fib_condition ? swing_high : na, "Swing High", color.new(color.gray, 50), linewidth=1, style=plot.style_circles)
plot(show_fib_condition ? swing_low : na, "Swing Low", color.new(color.gray, 50), linewidth=1, style=plot.style_circles)

// Additional Fibonacci Levels
fib_range = swing_high - swing_low
fib_236 = swing_low + (fib_range * 0.236)
fib_382 = swing_low + (fib_range * 0.382)
fib_618 = swing_low + (fib_range * 0.618)
fib_786 = swing_low + (fib_range * 0.786)

plot(show_fib_condition ? fib_236 : na, "Fib 23.6%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)
plot(show_fib_condition ? fib_382 : na, "Fib 38.2%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)
plot(show_fib_condition ? fib_618 : na, "Fib 61.8%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)
plot(show_fib_condition ? fib_786 : na, "Fib 78.6%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)

// ═══════════════════════════════════════════════════════════════════════════════
// 📈 ENHANCED PERFORMANCE METRICS DISPLAY
// ═══════════════════════════════════════════════════════════════════════════════

// Enhanced Information Table
var table info_table = table.new(position.top_right, 3, 12, bgcolor=color.new(color.white, 85), border_width=1)

if barstate.islast
    table.cell(info_table, 0, 0, "📊 ELITE STRATEGY PRO", text_color=color.black, text_size=size.small)
    
    // Risk Management Info
    table.cell(info_table, 0, 1, "Risk-Reward Ratio:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 1, str.tostring(rr_ratio, "#.##"), text_color=color.blue, text_size=size.tiny)
    
    // Commission Info
    table.cell(info_table, 0, 2, "Commission:", text_color=color.black, text_size=size.tiny)
    commission_text = enable_commission ? (commission_type_input == "Percentage" ? str.tostring(commission_rate, "#.##") + "%" : "$" + str.tostring(sl_fixed_usd, "#.##")) : "Disabled"
    table.cell(info_table, 1, 2, commission_text, text_color=enable_commission ? color.red : color.gray, text_size=size.tiny)
    
    // Stop Loss Type
    table.cell(info_table, 0, 3, "Stop Loss Type:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 3, sl_type, text_color=color.purple, text_size=size.tiny)
    
    // EMA Period
    table.cell(info_table, 0, 4, "EMA Period:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 4, str.tostring(ema_length), text_color=color.blue, text_size=size.tiny)
    
    // Current Trend
    table.cell(info_table, 0, 5, "Current Trend:", text_color=color.black, text_size=size.tiny)
    trend_text = uptrend ? "🟢 BULLISH" : downtrend ? "🔴 BEARISH" : "⚪ NEUTRAL"
    trend_color = uptrend ? color.green : downtrend ? color.red : color.gray
    table.cell(info_table, 1, 5, trend_text, text_color=trend_color, text_size=size.tiny)
    
    // ATR
    table.cell(info_table, 0, 6, "ATR:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 6, str.tostring(atr, "#.####"), text_color=color.blue, text_size=size.tiny)
    
    // Fibonacci Range
    table.cell(info_table, 0, 7, "Fib Range:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 7, str.tostring(fib_range, "#.####"), text_color=color.orange, text_size=size.tiny)
    
    // Current Position Info
    if strategy.position_size != 0
        current_pnl = strategy.position_size > 0 ? (close - entry_price) / entry_price * 100 : (entry_price - close) / entry_price * 100
        table.cell(info_table, 0, 8, "Current P&L:", text_color=color.black, text_size=size.tiny)
        pnl_color = current_pnl > 0 ? color.green : color.red
        table.cell(info_table, 1, 8, str.tostring(current_pnl, "#.##") + "%", text_color=pnl_color, text_size=size.tiny)
        
        // Risk Amount
        risk_amount = strategy.position_size > 0 ? entry_price - stop_loss : stop_loss - entry_price
        table.cell(info_table, 0, 9, "Risk per Share:", text_color=color.black, text_size=size.tiny)
        table.cell(info_table, 1, 9, str.tostring(risk_amount, "#.####"), text_color=color.orange, text_size=size.tiny)
        
        // Reward Amount
        reward_amount = strategy.position_size > 0 ? take_profit - entry_price : entry_price - take_profit
        table.cell(info_table, 0, 10, "Reward per Share:", text_color=color.black, text_size=size.tiny)
        table.cell(info_table, 1, 10, str.tostring(reward_amount, "#.####"), text_color=color.green, text_size=size.tiny)

// ═══════════════════════════════════════════════════════════════════════════════
// 🔔 ENHANCED ALERT CONDITIONS
// ═══════════════════════════════════════════════════════════════════════════════

// Alert conditions
alertcondition(long_condition, title="🟢 Elite Long Entry Pro", message="Elite Engulfing Strategy PRO: LONG signal detected with commission calculation.")

alertcondition(short_condition, title="🔴 Elite Short Entry Pro", message="Elite Engulfing Strategy PRO: SHORT signal detected with commission calculation.")

// Dynamic alerts with detailed information
if long_condition
    alert_msg = "🟢 LONG SIGNAL: Elite Engulfing Pro | Price: " + str.tostring(close, "#.####") + " | RR: " + str.tostring(rr_ratio, "#.##") + " | SL Type: " + sl_type + " | Commission: " + (enable_commission ? str.tostring(commission_rate, "#.##") + "%" : "Disabled")
    alert(alert_msg, alert.freq_once_per_bar)

if short_condition
    alert_msg = "🔴 SHORT SIGNAL: Elite Engulfing Pro | Price: " + str.tostring(close, "#.####") + " | RR: " + str.tostring(rr_ratio, "#.##") + " | SL Type: " + sl_type + " | Commission: " + (enable_commission ? str.tostring(commission_rate, "#.##") + "%" : "Disabled")
    alert(alert_msg, alert.freq_once_per_bar)