मल्टी-इंडिकेटर एकीकृत ट्रेंड फॉलोइंग ट्रेडिंग रणनीति

EMA RSI ADX OBV ATR 趋势跟踪 突破形态 背离 风险管理 交易时段 量价关系
निर्माण तिथि: 2025-04-10 15:37:00 अंत में संशोधित करें: 2025-04-10 15:37:00
कॉपी: 0 क्लिक्स: 326
2
ध्यान केंद्रित करना
319
समर्थक

मल्टी-इंडिकेटर एकीकृत ट्रेंड फॉलोइंग ट्रेडिंग रणनीति मल्टी-इंडिकेटर एकीकृत ट्रेंड फॉलोइंग ट्रेडिंग रणनीति

अवलोकन

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

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

यह रणनीति निम्नलिखित मूल सिद्धांतों पर आधारित हैः

  1. रुझान पहचान प्रणाली: तेजी से ईएमए ((50 चक्र) और धीमी गति से ईएमए ((200 चक्र) का उपयोग करके क्रॉस और पोजीशन रिलेशनशिप का उपयोग करें बाजार के प्रमुख रुझान की दिशा का निर्धारण करें। जब तेजी से ईएमए धीमी गति से ईएमए के ऊपर होता है, तो एक अपट्रेंड की पुष्टि की जाती है; इसके विपरीत, एक डाउनट्रेंड की पुष्टि की जाती है।

  2. तीव्रता माप: अनुकूलित ADX सूचक के माध्यम से प्रवृत्ति की ताकत को मापने के लिए, केवल तब व्यापार करें जब ADX मूल्य सेट थ्रेशोल्ड से अधिक हो (डिफ़ॉल्ट 20) कमजोर प्रवृत्ति या बाजार में उतार-चढ़ाव से बचें।

  3. बहुस्तरीय पुष्टि तंत्र: “aiStrength” नामक एक स्मार्ट सिग्नल सिस्टम तैयार किया गया है, जो पांच महत्वपूर्ण बाजार कारकों का समग्र मूल्यांकन करता हैः

    • ईएमए रुझान दिशा
    • OBV रुझान दिशा
    • ADX रुझान की ताकत
    • निगलने के रूप
    • लघु और मध्यावधि ईएमए क्रॉसिंग ट्रेडिंग सिग्नल केवल तभी उत्पन्न होता है जब कम से कम 4 कारक एक साथ पुष्टि करते हैं।
  4. K रैखिक रूप सत्यापन: अतिरिक्त पहचान समापन आकृति, विशेष K-लाइन आकृति जैसे क्रॉसस्टार और सुईदार रेखा, प्रवृत्ति के उलट या निरंतरता की पुष्टि के संकेत के रूप में।

  5. लेनदेन की पुष्टि: 20 चक्रों के औसत लेनदेन से 1.5 गुना अधिक लेनदेन की आवश्यकता है, यह सुनिश्चित करने के लिए कि बाजार में पर्याप्त भागीदारी है जो मूल्य परिवर्तन का समर्थन करती है।

  6. पहचान से दूर: आरएसआई और एडीएक्स के बीच मूल्य विचलन का पता लगाना, एक संभावित रुझान उलट के लिए एक प्रारंभिक चेतावनी संकेत के रूप में।

  7. बाजारों में गिरावट: ADX और RSI के संयोजन विश्लेषण के साथ कीमतों में उतार-चढ़ाव के दायरे के माध्यम से, अस्थिर बाजारों को पहचानें और उनसे बचें।

  8. ट्रेडिंग समय अनुकूलनसिग्नल की गुणवत्ता को बढ़ाने के लिए, मुख्य बाजारों के सक्रिय समय के अनुरूप विशिष्ट व्यापारिक समय (यूटीसी + 7 समय क्षेत्र में 14: 00-23: 00) के भीतर व्यापार को प्रतिबंधित करें।

  9. गतिशील जोखिम प्रबंधन: एटीआर गतिशील सेटिंग्स के आधार पर स्टॉप, स्टॉप लेवल, और ट्रैक स्टॉप सिस्टम को लागू करने से लाभ की रक्षा होती है। कई बार लाभ के लिए रिस्क-टू-रिटर्न अनुपात 2.0 पर सेट किया गया है, जबकि 1.5 गुना एटीआर की ट्रैक स्टॉप सुरक्षा का उपयोग करना लाभदायक है।

रणनीतिक लाभ

  1. बहुआयामी बाजार विश्लेषणबाजार की स्थिति को विभिन्न दृष्टिकोणों से विश्लेषण करने के लिए, चलती औसत, आरएसआई, एडीएक्स, ओबीवी आदि जैसे कई संकेतकों को एकीकृत करके, एक एकल संकेतक द्वारा संभावित भ्रामक जोखिम को कम किया जाता है।

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

  3. ऊंचाई फ़िल्टरिंग प्रणाली: बहु-सर्त फ़िल्टरिंग (प्रवृत्ति दिशा, ताकत की पुष्टि, लेन-देन मात्रा सत्यापन, K-लाइन आकार, लेन-देन समय, आदि) के माध्यम से, बहुत सारे कम गुणवत्ता वाले संकेतों को प्रभावी रूप से फ़िल्टर किया गया, जिससे व्यापारिक संकेतों की विश्वसनीयता में उल्लेखनीय वृद्धि हुई।

  4. बाजारों में उतार-चढ़ाव की पहचान: रणनीति में अस्थिर बाजार की पहचान के लिए एक तंत्र है, जो बाजार के स्पष्ट रूप से क्षैतिज होने पर व्यापार से बचने के लिए सक्रिय है, जो उच्च अनिश्चितता वाले वातावरण में नुकसान के जोखिम को कम करता है।

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

  6. आकृति और सूचकांक: पारंपरिक तकनीकी विश्लेषण में K-लाइन आकृति ((संचलन, क्रॉसस्टार, सुईदार रेखा) को आधुनिक तकनीकी संकेतक के साथ संयोजित करें, अपनी लंबाई लें, और एक-दूसरे को प्रमाणित करें।

  7. चेतावनी प्रणाली से दूर: आरएसआई और एडीएक्स के बीच मूल्य विचलन का पता लगाकर, संभावित प्रवृत्ति की कमजोरी या आसन्न उलट के संकेतों को पहले से पहचानने के लिए रणनीति की पूर्वानुमानिता को बढ़ाया गया।

  8. ट्रेडिंग समय अनुकूलन: बाजार की उच्च गतिशीलता के दौरान व्यापार पर ध्यान केंद्रित करना, कम तरलता और अस्थिरता के समय से बचना, व्यापार की दक्षता में सुधार करना।

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

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

  2. पैरामीटर अनुकूलन चुनौती: रणनीति में कई पैरामीटर सेटिंग्स शामिल हैं (जैसे ईएमए लंबाई, आरएसआई चक्र, एडीएक्स थ्रेशोल्ड, आदि) और विभिन्न बाजार स्थितियों में पैरामीटर के विभिन्न संयोजनों की आवश्यकता हो सकती है, जिससे पैरामीटर अनुकूलन की जटिलता बढ़ जाती है।

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

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

  5. बाजार की स्थिति को गलत समझना: रणनीति के अस्थिर बाजार पहचान तंत्र, हालांकि प्रभावी है, कुछ जटिल बाजार स्थितियों में गलत निर्णय लेने, मूल्यवान व्यापार के अवसरों को गलत तरीके से फ़िल्टर करने या अवांछित बाजारों में गलत तरीके से प्रवेश करने की संभावना है।

  6. एल्गोरिथम जटिलता जोखिम: रणनीति तर्क जटिल है, बहु शर्त निर्णय प्रक्रिया त्रुटियों या तार्किक विरोधाभासों का कारण बन सकता है, और सख्त प्रतिक्रिया और वास्तविक समय की निगरानी के माध्यम से रणनीति स्थिरता सुनिश्चित करने की आवश्यकता है।

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

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

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

  2. बाजार स्थिति वर्गीकरण अनुकूलन: मौजूदा बाजार की पहचान के तंत्र को और अधिक परिष्कृत किया जा सकता है, बाजार की स्थिति को कई श्रेणियों में विभाजित किया जा सकता है, जैसे कि मजबूत वृद्धि, कमजोर वृद्धि, मजबूत गिरावट, कमजोर गिरावट और झटके, विभिन्न बाजार स्थितियों के लिए विभिन्न ट्रेडिंग रणनीतियों और पैरामीटर संयोजनों का उपयोग करना।

  3. प्रवेश का समय: बाजार के सूक्ष्म संरचना के आधार पर प्रवेश अनुकूलन, जैसे कि समर्थन / प्रतिरोध बिंदु की पुष्टि, मूल्य उतार-चढ़ाव विश्लेषण आदि को जोड़ा जा सकता है, जिससे प्रवेश बिंदु की सटीकता में और सुधार हो सकता है।

  4. स्थिति प्रबंधन रणनीति में सुधार: वर्तमान रणनीति में एक निश्चित अनुपात के साथ धन प्रबंधन का उपयोग किया जाता है, यह विचार किया जा सकता है कि अस्थिरता के आधार पर गतिशील स्थिति प्रबंधन को पेश किया जाए, उच्च विश्वास के संकेत और कम बाजार जोखिम के दौरान स्थिति बढ़ाएं, और इसके विपरीत, स्थिति को कम करें, धन का उपयोग करने की दक्षता का अनुकूलन करें।

  5. बहु-समय-सीमा विश्लेषण: बहु-समय सीमा विश्लेषण को शुरू करने से रणनीतियों की प्रभावशीलता में काफी वृद्धि हो सकती है, उदाहरण के लिए, एक बड़े समय सीमा का उपयोग करना (जैसे 1 घंटे या 4 घंटे) मुख्य प्रवृत्ति की दिशा की पुष्टि करने के लिए, और फिर 15 मिनट के चार्ट पर विशिष्ट प्रवेश बिंदु खोजने के लिए, प्रतिगामी व्यापार के जोखिम को कम करना।

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

  7. स्टॉप लॉस रणनीति में सुधार: वर्तमान में एक एकीकृत एटीआर गुणांक सेटिंग्स का उपयोग करते हुए, अधिक परिष्कृत स्टॉप रणनीतियों को बाजार में उतार-चढ़ाव की विशेषताओं और प्रवेश कारणों के आधार पर अनुकूलित किया जा सकता है, जैसे कि समर्थन / प्रतिरोध के आधार पर संरचनात्मक स्टॉप, समय स्टॉप या अस्थिरता दर समायोजन स्टॉप आदि।

  8. मौसमी और बाजार चक्र विश्लेषण: मौसमी कारकों और बाजार चक्रों के विश्लेषण को जोड़ना, विशिष्ट समय अवधि (जैसे कि महीने की शुरुआत / अंत में, तिमाही के वितरण से पहले और बाद में) में रणनीति पैरामीटर को समायोजित करना या व्यापार को रोकना, असामान्य ऐतिहासिक उतार-चढ़ाव की अवधि से बचने के लिए।

संक्षेप

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

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

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

रणनीति स्रोत कोड
/*backtest
start: 2025-03-10 00:00:00
end: 2025-04-07 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("TUONG HA GBP M15 Trend Strategy NHIEU CHI BAO TICH HOP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === INPUTS ===
emaFastLen = input.int(50, "EMA Fast", minval=10, maxval=200, step=5)
emaSlowLen = input.int(200, "EMA Slow", minval=50, maxval=500, step=10)
rsiLen = input.int(14, "RSI Length")
adsLen = input.int(14, "ADX Length")
adxThreshold = input.int(20, "ADX Threshold")
atrLen = input.int(14, "ATR Length")
rrRatio = input.float(2.0, "Risk-Reward Ratio", step=0.1)
trailOffset = input.float(1.5, "Trailing Stop ATR Multiplier", step=0.1)
volumeMultiplier = input.float(1.5, "Volume Multiplier Threshold", step=0.1)

// === SESSIONS (London + New York in VN Time UTC+7) ===
startHour = 14
endHour = 23
inSession = (hour >= startHour and hour <= endHour)

// === INDICATORS ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsi = ta.rsi(close, rsiLen)
at = ta.atr(atrLen)

// === CUSTOM ADX FUNCTION ===
upMove = high - high[1]
downMove = low[1] - low
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0
trur = ta.tr(true)
plusDI = 100 * ta.rma(plusDM, adsLen) / ta.rma(trur, adsLen)
minusDI = 100 * ta.rma(minusDM, adsLen) / ta.rma(trur, adsLen)
adx = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI), adsLen)

// === OBV TREND ===
obv = ta.cum(close > close[1] ? volume : close < close[1] ? -volume : 0)
obvTrend = obv > obv[1]

// === VOLUME FILTER ===
avgVol = ta.sma(volume, 20)
highVol = volume > avgVol * volumeMultiplier

// === SIDEWAY DETECTION ===
rng = ta.highest(high, 20) - ta.lowest(low, 20)
rngCloseRatio = close != 0 ? (rng / close) : na
sideway = na(rngCloseRatio) ? false : (rngCloseRatio < 0.003 and adx < adxThreshold and (rsi > 45 and rsi < 55))

// === ENGULFING ===
bullishEngulf = close[1] < open[1] and close > open and close > open[1] and open < close[1]
bearishEngulf = close[1] > open[1] and close < open and close < open[1] and open > close[1]

// === DOJI AND PIN BAR ===
doji = math.abs(open - close) <= (high - low) * 0.1
pinBar = (high - math.max(open, close)) > 2 * math.abs(open - close) and (math.min(open, close) - low) < (high - low) * 0.25

// === AI SIGNALS ENHANCED ===
aiStrength = 0
aiStrength := aiStrength + (emaFast > emaSlow ? 1 : 0)
aiStrength := aiStrength + (obvTrend ? 1 : 0)
aiStrength := aiStrength + (adx > adxThreshold ? 1 : 0)
aiStrength := aiStrength + (bullishEngulf ? 1 : 0)
aiStrength := aiStrength + (ta.crossover(ta.ema(close, 5), ta.ema(close, 21)) ? 1 : 0)
aiSignalLong = aiStrength >= 4

aioStrengthS = 0
aioStrengthS := aioStrengthS + (emaFast < emaSlow ? 1 : 0)
aioStrengthS := aioStrengthS + (not obvTrend ? 1 : 0)
aioStrengthS := aioStrengthS + (adx > adxThreshold ? 1 : 0)
aioStrengthS := aioStrengthS + (bearishEngulf ? 1 : 0)
aioStrengthS := aioStrengthS + (ta.crossunder(ta.ema(close, 5), ta.ema(close, 21)) ? 1 : 0)
aiSignalShort = aioStrengthS >= 4

// === HIGHS AND LOWS DETECTION ===
highestHigh = ta.highest(high, 50)
lowestLow = ta.lowest(low, 50)
plot(highestHigh, title="Highest High", color=color.fuchsia, linewidth=1, style=plot.style_line)
plot(lowestLow, title="Lowest Low", color=color.teal, linewidth=1, style=plot.style_line)

// === RSI DIVERGENCE ===
priceHigherHigh = high > high[1] and high[1] > high[2]
rsiLowerHigh = rsi < rsi[1] and rsi[1] > rsi[2]
shortDiv = priceHigherHigh and rsiLowerHigh

priceLowerLow = low < low[1] and low[1] < low[2]
rsiHigherLow = rsi > rsi[1] and rsi[1] < rsi[2]
longDiv = priceLowerLow and rsiHigherLow

// === ADX DIVERGENCE ===
priceHigherHighADX = high > high[1] and high[1] > high[2]
adxLowerHigh = adx < adx[1] and adx[1] > adx[2]
adxBearishDiv = priceHigherHighADX and adxLowerHigh

priceLowerLowADX = low < low[1] and low[1] < low[2]
adxHigherLow = adx > adx[1] and adx[1] < adx[2]
adxBullishDiv = priceLowerLowADX and adxHigherLow

// === CONDITIONS ===
trendUp = emaFast > emaSlow
trendDn = emaFast < emaSlow

longCond = trendUp and rsi > 50 and obvTrend and adx > adxThreshold and bullishEngulf and aiSignalLong and inSession and not sideway and highVol and (pinBar or doji or longDiv or adxBullishDiv)
shortCond = trendDn and rsi < 50 and not obvTrend and adx > adxThreshold and bearishEngulf and aiSignalShort and inSession and not sideway and highVol and (pinBar or doji or shortDiv or adxBearishDiv)

// === ENTRY + SL/TP + TRAILING ===
longSL = close - at
longTP = close + at * rrRatio
shortSL = close + at
shortTP = close - at * rrRatio

plotshape(longCond, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(shortCond, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Sell Signal")

if (longCond)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP/SL", from_entry="Long", stop=longSL, limit=longTP, trail_points=at * trailOffset, trail_offset=at * trailOffset)
    label.new(bar_index, high, "Buy", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)
    alert("Long Signal!", alert.freq_once_per_bar)

if (shortCond)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP/SL", from_entry="Short", stop=shortSL, limit=shortTP, trail_points=at * trailOffset, trail_offset=at * trailOffset)
    label.new(bar_index, low, "Sell", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal)
    alert("Short Signal!", alert.freq_once_per_bar)

// === PLOTS ===
plot(emaFast, color=color.orange, title="EMA Fast")
plot(emaSlow, color=color.blue, title="EMA Slow")
bgcolor(sideway ? color.new(color.gray, 90) : na)

// === COLORING BARS ===
barcolor(longCond ? color.new(color.green, 0) : shortCond ? color.new(color.red, 0) : na)