
मल्टी-साइक्लिक एवरेज रिवर्स ट्रेंड ब्रेकिंग ट्रेडिंग सिस्टम एक समग्र मात्रात्मक ट्रेडिंग रणनीति है, जो चतुराई से चार शक्तिशाली ट्रेडिंग विधियों को जोड़ती है, जिसमें विकॉफ मार्केट साइक्लिंग थ्योरी, प्राइस ग्राफिकल एनालिसिस, एवरेज रिवर्स और ट्रेंड ट्रैकिंग शामिल हैं। यह रणनीति विशेष रूप से मध्यम और दीर्घकालिक स्विंग ट्रेडरों के लिए डिज़ाइन की गई है, जो एक विस्तृत अनुकूलन विकल्प प्रदान करती है, जिससे व्यापारी अपनी जोखिम वरीयताओं और बाजार की स्थिति के अनुसार लचीले समायोजन कर सकते हैं।
रणनीति के मुख्य घटकों में बाजार चक्र के चरणों की पहचान करने के लिए विकॉफ विश्लेषण, महत्वपूर्ण समर्थन और प्रतिरोध की पहचान करने के लिए मूल्य ग्राफ विश्लेषण, ओवरबॉय या ओवरसोल्ड की पहचान करने के लिए औसत रिवर्स घटक और मध्यम और दीर्घकालिक मूल्य आंदोलनों को पकड़ने के लिए एक प्रवृत्ति ट्रैकिंग प्रणाली शामिल हैं। ये घटक एक साथ काम करते हैं और एक व्यापक ट्रेडिंग सिस्टम बनाते हैं, जिसका उद्देश्य उच्च संभावना वाले ट्रेडिंग संकेत प्रदान करना है।
इस रणनीति का मूल सिद्धांत चार मुख्य व्यापारिक विधियों के समन्वय पर आधारित हैः
वेकोव विश्लेषणयह घटक चार मुख्य चरणों की पहचान करता है - संचय चरण, उछाल चरण, आवंटन चरण और गिरावट चरण - रिचर्ड डी. विकोव के बाजार चक्र सिद्धांत के अनुसार। रणनीति विशेष रूपों का भी पता लगाती है जैसे कि “स्प्रिंग” पैटर्न ((छोटे ब्रेक के बाद तेजी से पलटाव) और “ऊपर की ओर” पैटर्न ((छोटे ब्रेक) । इन चरणों को मूल्य और लेनदेन के संबंधों के माध्यम से परिभाषित किया गया है, जिससे व्यापारियों को संस्थागत धन प्रवाह का पालन करने में मदद मिलती है।
मूल्य ग्राफ विश्लेषण: यह घटक बाजार के आकार / लेन-देन के आकार का एक सरलीकृत संस्करण प्राप्त करता है, जो नियंत्रण बिंदुओं (पीओसी), मूल्य क्षेत्र के उच्च बिंदुओं (वीएएच) और मूल्य क्षेत्र के निचले बिंदुओं (वीएएल) की गणना करता है, जहां प्रमुख मूल्य गतिविधि होती है। इन प्रमुख स्तरों का दृश्य प्रतिनिधित्व संभावित समर्थन और प्रतिरोध क्षेत्रों की पहचान करने में मदद करता है।
औसत वापसीजब कीमत चरम क्षेत्रों में जाती है, तो यह घटक संभावित रिवर्स पॉइंट्स की पहचान करता है। यह ब्रिन बैंड का उपयोग करके ओवरबॉट और ओवरसोल्ड मूल्य क्षेत्रों को परिभाषित करता है, और संभावित रिवर्स की पुष्टि करने के लिए आरएसआई विचलन के साथ संयोजन करता है। मजबूत रुझानों में झूठे संकेतों से बचने के लिए, रणनीति को कई पुष्टि संकेतों की आवश्यकता होती है।
रुझानों पर नज़र रखना: यह घटक मध्यम और दीर्घकालिक दिशात्मक मूल्य आंदोलनों को पकड़ता है, प्रवृत्ति की दिशा और ताकत की पुष्टि करने के लिए कई चलती औसत (9, 21, 50, 200 ईएमए) का उपयोग करता है, गति की पुष्टि और प्रवृत्ति की ताकत के लिए एमएसीडी विश्लेषण, और हाल ही में मूल्य संरचना विश्लेषण के माध्यम से उच्च समय सीमा प्रवृत्ति स्थिरता।
ये चार घटक एक-दूसरे के पूरक हैं और ट्रेडिंग सिग्नल उत्पन्न करने के लिए एक साथ काम करते हैं। सिस्टम जटिल सिग्नल संयोजन विधियों का उपयोग करता है, जिससे अंतिम ट्रेडिंग सिग्नल उत्पन्न करने के लिए कई सिस्टम की पुष्टि की जाती है, जिससे झूठे सिग्नल की संभावना कम हो जाती है।
बहु-चक्रिक औसत रिवर्स रुझान तोड़ने वाले ट्रेडिंग सिस्टम में निम्नलिखित उल्लेखनीय फायदे हैंः
समावेशी विश्लेषणात्मक ढांचाचार अलग-अलग लेकिन पूरक ट्रेडिंग विधियों के एकीकरण के माध्यम से, यह रणनीति बाजार को कई कोणों से विश्लेषण करने में सक्षम है, जिससे ट्रेडिंग सिग्नल की गुणवत्ता और विश्वसनीयता में सुधार होता है। यह बहुआयामी विश्लेषण विचलन और गलत संकेतों को कम करता है जो एक एकल सूचक के कारण हो सकते हैं।
विभिन्न बाजार स्थितियों के लिए अनुकूल: रणनीति की लचीलापन इसे विभिन्न बाजार स्थितियों में अच्छा प्रदर्शन करने में सक्षम बनाता है। ट्रेंडिंग बाजार में, ट्रेंड ट्रैकिंग घटक प्रमुख है; मध्यस्थता रिटर्न और मूल्य ग्राफिक्स विश्लेषण अधिक प्रभावी है।
संस्थानों के वित्तपोषण में समानताविकोव विश्लेषण के माध्यम से, रणनीति को संस्थागत धन प्रवाह के साथ संरेखित करने के लिए डिज़ाइन किया गया है, जो लंबे समय तक सफल व्यापार के लिए महत्वपूर्ण है। यह घटक व्यापारियों को बड़े धन के संचय और वितरण चरणों की पहचान करने में मदद करता है, जिससे व्यापार की सफलता दर में सुधार होता है।
मजबूत जोखिम प्रबंधनइस रणनीति में कई प्रकार के जोखिम प्रबंधन कार्य शामिल हैं, जिनमें एटीआर-आधारित ऑटो-स्टॉप-लॉस, स्टॉप-लॉस, आउट-ऑफ-पीस-टाइम-आधारित आउट-ऑफ-पीस रणनीति और इक्विटी-प्रतिशत-आधारित पोजीशन-स्केल गणना शामिल हैं। ये सभी कार्य एक साथ धन प्रबंधन की स्थिरता सुनिश्चित करते हैं।
ऊंचाई अनुकूलित: रणनीति एक व्यापक पैरामीटर सेटिंग प्रदान करती है, जिससे व्यापारी अपनी ट्रेडिंग शैली, बाजार की वरीयताओं और जोखिम सहनशीलता के अनुसार समायोजित कर सकते हैं। प्रमुख घटक स्वतंत्र रूप से चालू या बंद हो सकते हैं, जिससे रणनीति विभिन्न व्यापारिक तरीकों के लिए अनुकूल हो सकती है।
इस रणनीति के कई फायदे हैं, लेकिन इसके साथ कुछ संभावित जोखिम और चुनौतियां भी हैं:
पैरामीटर अति-अनुकूलन जोखिम: रणनीति में बहुत सारे समायोज्य पैरामीटर शामिल हैं, जो ऐतिहासिक डेटा के साथ अति-अनुरूपता के जोखिम को जन्म दे सकता है। व्यापारियों को अत्यधिक अनुकूलन से बचने के लिए सावधान रहना चाहिए और वास्तविक व्यापार से पहले मजबूत आगे का परीक्षण करना चाहिए।
जटिलता प्रबंधन: रणनीतियों की समग्रता भी जटिलता लाता है। सभी घटकों की बातचीत को समझना और प्रबंधित करना चुनौतीपूर्ण हो सकता है, विशेष रूप से नौसिखिया व्यापारियों के लिए। प्रत्येक स्वतंत्र घटक को समझने के लिए और फिर धीरे-धीरे एकीकृत करने की सलाह दी जाती है।
बाजार की स्थिति में परिवर्तन: कुछ बाजार स्थितियों में, कुछ घटकों का प्रदर्शन खराब हो सकता है। उदाहरण के लिए, तेजी से रुझान में बदलाव के दौरान, औसत मूल्य वापसी संकेतों से नुकसान हो सकता है। व्यापारियों को बाजार की स्थिति की निगरानी करने और रणनीति घटकों के वजन को समायोजित करने की आवश्यकता होती है।
निष्पादन में देरी का प्रभाव: रणनीति के लिए कई पुष्टिकरण अनुरोधों के कारण प्रवेश बिंदु में देरी हो सकती है, विशेष रूप से तेजी से उतार-चढ़ाव वाले बाजारों में। इससे कुछ रुझानों को याद किया जा सकता है या बाजार में प्रवेश करने के लिए कम कीमत पर जा सकता है।
तकनीकी संकेतक निर्भरतारणनीतियाँ चलती औसत, आरएसआई और एमएसीडी जैसे तकनीकी संकेतकों पर बहुत अधिक निर्भर करती हैं। कुछ बाजार स्थितियों में, ये संकेत विफल हो सकते हैं या भ्रामक संकेत दे सकते हैं। मौलिक विश्लेषण या अन्य गैर-तकनीकी कारकों के साथ पूरक की सिफारिश की जाती है।
इन जोखिमों को कम करने के तरीकों में शामिल हैंः रणनीति को धीरे-धीरे लागू करना, छोटे पदों से शुरू करना; समय-समय पर पुनः परीक्षण और अनुकूलन; रणनीति की प्रभावशीलता को सत्यापित करने के लिए आउट-ऑफ-सांपल परीक्षण का उपयोग करना; और सख्त जोखिम प्रबंधन नियम स्थापित करना, जैसे कि प्रति लेनदेन और प्रति दिन अधिकतम हानि सीमा।
कोड के गहन विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
अनुकूलित पैरामीटर सेटिंग: वर्तमान रणनीतियों में आरएसआई चक्र और ब्रीनिंग बैंड मानक विचलन जैसे निश्चित मानकों का उपयोग किया जाता है। विभिन्न बाजार स्थितियों में रणनीति के प्रदर्शन को बेहतर बनाने के लिए अस्थिरता या बाजार की स्थिति के आधार पर अनुकूलन मानकों को लागू किया जा सकता है। उदाहरण के लिए, उच्च अस्थिरता वाले बाजारों में व्यापक ब्रीनिंग बैंड का उपयोग करें, कम अस्थिरता वाले बाजारों में संकीर्ण ब्रीनिंग बैंड का उपयोग करें।
मशीन लर्निंग एकीकरणसिग्नल जनरेशन और फ़िल्टरिंग प्रक्रिया को अनुकूलित करने के लिए मशीन लर्निंग एल्गोरिदम को शामिल करना। उदाहरण के लिए, सिग्नल की सफलता की संभावनाओं की भविष्यवाणी करने के लिए वर्गीकरण एल्गोरिदम का उपयोग किया जा सकता है, या सबसे अच्छा पैरामीटर संयोजन खोजने के लिए मजबूत सीखने का उपयोग किया जा सकता है। यह रणनीति को नए बाजार पैटर्न को लगातार अनुकूलित करने और सीखने में सक्षम करेगा।
उन्नत समय सीमा विश्लेषण: वर्तमान रणनीति मुख्य रूप से एकल समय सीमा पर चलती है। वास्तविक बहु-समय सीमा विश्लेषण सुविधाओं को जोड़कर सिग्नल की गुणवत्ता में सुधार किया जा सकता है। उदाहरण के लिए, केवल तभी व्यापार करें जब दिन, घड़ी और चंद्रमा की प्रवृत्ति दिशा एकजुट हो, जिससे प्रतिगामी व्यापार का जोखिम कम हो।
विकोव पहचान एल्गोरिथ्म में सुधार: वर्तमान Wyckoff चरण पहचान अपेक्षाकृत सरल है. अधिक जटिल एल्गोरिदम विकसित किए जा सकते हैं जो Wyckoff संचय और वितरण पैटर्न को सटीक रूप से पहचानते हैं, जैसे कि लेनदेन की मात्रा वितरण, लेनदेन की भारित औसत कीमत और सापेक्ष शक्ति के संकेतकों के संयोजन का उपयोग करना।
बहु-प्रजाति संबंध विश्लेषण: एक बहु-उत्पाद की प्रासंगिकता विश्लेषण जोड़कर, रणनीति प्रासंगिक बाजारों की गतिशीलता पर विचार कर सकती है। उदाहरण के लिए, वस्तुओं के व्यापार में डॉलर सूचकांक के रुझान पर विचार करना, या शेयरों के व्यापार में उद्योग सूचकांक के प्रदर्शन पर विचार करना। यह एक अधिक व्यापक बाजार परिप्रेक्ष्य प्रदान करेगा।
बाहर निकलने की रणनीति को अनुकूलित करना: वर्तमान बाहर निकलने के तंत्र मुख्य रूप से समय और आरएसआई पर आधारित हैं। अधिक जटिल बाहर निकलने की रणनीतियों को लागू करके लाभप्रदता में सुधार किया जा सकता है, जैसे कि गतिशील समर्थन/प्रतिरोध स्तरों के आधार पर आंशिक लाभ अर्जित करना, या बाहर निकलने के ट्रिगर के रूप में अस्थिर संकुचन मोड का उपयोग करना।
जोखिम प्रबंधन में सुधार: अधिक जटिल जोखिम प्रबंधन कार्यक्षमताओं को जोड़ना, जैसे कि वापसी के आधार पर स्थिति समायोजन, प्रासंगिकता भारित पोर्टफोलियो प्रबंधन, और बाजार की तरलता और स्लाइडिंग बिंदुओं को ध्यान में रखते हुए आदेश निष्पादन तर्क।
मल्टी-साइक्लिक ट्रेडिंग सिस्टम एक व्यापक, लचीली, मात्रात्मक ट्रेडिंग रणनीति है, जो मध्यम और लंबे समय तक चलने वाले व्यापारियों के लिए उपयुक्त है। इसकी मुख्य विशेषता यह है कि यह कई पूरक ट्रेडिंग विधियों को एकीकृत करता है, एक मजबूत सिग्नल जनरेशन तंत्र और व्यापक जोखिम प्रबंधन सुविधाएं प्रदान करता है।
यह रणनीति एक ट्रेडिंग प्रणाली बनाने के लिए है जो विभिन्न बाजार स्थितियों के लिए अनुकूल हो सकती है। यह एक ऐसी ट्रेडिंग प्रणाली बनाने के लिए बनाई गई है जो विकोव के बाजार चक्र सिद्धांत, मूल्य ग्राफिक्स विश्लेषण, औसत प्रतिगमन और रुझान ट्रैकिंग को एकीकृत करती है। इसकी डिजाइन संस्थागत निधि प्रवाह के अनुरूप है, जो कई पुष्टिकरणों की आवश्यकता के माध्यम से झूठे संकेतों को कम करती है, और व्यापार के परिणामों को अनुकूलित करने के लिए एक लचीला बाहर निकलने और प्रवेश तंत्र प्रदान करती है।
पैरामीटर अनुकूलन, जटिलता प्रबंधन और बाजार की परिस्थितियों में परिवर्तन जैसी चुनौतियों के बावजूद, सावधानीपूर्वक कार्यान्वयन और निरंतर अनुकूलन के साथ, यह रणनीति एक व्यापारी के टूलबॉक्स में एक शक्तिशाली हथियार बन सकती है। अनुकूलन पैरामीटर, मशीन सीखने की तकनीक, उन्नत बहु-समय फ्रेम विश्लेषण और बेहतर बाहर निकलने की रणनीतियों की शुरूआत के माध्यम से, इस प्रणाली में भविष्य में इसके प्रदर्शन और अनुकूलन को और बढ़ाने की क्षमता है।
ट्रेडर्स के लिए जो एक स्थिर और व्यवस्थित ट्रेडिंग पद्धति की तलाश करते हैं, बहु-चक्र औसत रिवर्स ट्रेडिंग सिस्टम एक ठोस आधार प्रदान करता है, जिसे व्यक्तिगत वरीयताओं और बाजार के अनुभव के आधार पर अनुकूलित और विस्तारित किया जा सकता है।
/*backtest
start: 2024-04-28 00:00:00
end: 2025-04-26 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Wyckoff Advanced Swing Strategy by TIAMATCRYPTO", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Main strategy settings
enableWyckoff = input.bool(true, "Enable Wyckoff")
enablePriceMap = input.bool(true, "Enable Price Map Profile")
enableMeanReversion = input.bool(true, "Enable Mean Reversion")
enableTrendFollowing = input.bool(true, "Enable Trend Following")
// TP/SL settings
useAutoTPSL = input.bool(true, "Use Auto TP/SL")
profitFactor = input.float(2.5, "Profit Factor (ATR multiple)")
stopLossFactor = input.float(1.5, "Stop Loss Factor (ATR multiple)")
// Swing Trading Parameters
minHoldingDays = input.int(3, "Minimum Holding Period (days)")
maxHoldingDays = input.int(20, "Maximum Holding Period (days)")
useWeekdayFilter = input.bool(true, "Filter Trading Days")
useTrailingStop = input.bool(true, "Use Trailing Stop")
trailingStopAtrMult = input.float(2.0, "Trailing Stop (ATR multiple)")
// Alternative Exit Rules
useExitByRSI = input.bool(true, "Exit by RSI")
exitLongRSI = input.int(70, "Exit Long when RSI")
exitShortRSI = input.int(30, "Exit Short when RSI")
// General Parameters
atrPeriod = input.int(14, "ATR Period")
rsiPeriod = input.int(14, "RSI Period")
volPeriod = input.int(20, "Volume MA Period")
emaFastPeriod = input.int(9, "EMA Fast Period")
emaSlowPeriod = input.int(21, "EMA Slow Period")
emaMediumPeriod = input.int(50, "EMA Medium Period")
emaLongPeriod = input.int(200, "EMA Long Period")
// Indicators
atr = ta.atr(atrPeriod)
rsi = ta.rsi(close, rsiPeriod)
volMA = ta.sma(volume, volPeriod)
emaFast = ta.ema(close, emaFastPeriod)
emaSlow = ta.ema(close, emaSlowPeriod)
emaMedium = ta.ema(close, emaMediumPeriod)
emaLong = ta.ema(close, emaLongPeriod)
macd = ta.ema(close, 12) - ta.ema(close, 26)
macdSignal = ta.ema(macd, 9)
// Weekday Filters (1 = Monday, 5 = Friday)
isGoodEntryDay = useWeekdayFilter ? (dayofweek != 5 and dayofweek != 1) : true // Not on Monday and Friday
isGoodExitDay = useWeekdayFilter ? (dayofweek != 1 and dayofweek != 5) : true // Not on Monday and Friday
// ===================== Wyckoff Method =====================
accumulationPhase = false
markupPhase = false
distributionPhase = false
markdownPhase = false
spring = false
if enableWyckoff
// Define support and resistance
support = ta.lowest(low, 10)
resistance = ta.highest(high, 10)
// Detect Spring (fake downward breakout)
spring := low[1] < support[2] and close > support[1]
// Detect Upthrust (fake upward breakout)
upthrust = high[1] > resistance[2] and close < resistance[1]
// Wyckoff Market Phases
accumulationPhase := volume > volMA and rsi < 40 and ta.falling(high, 5) and close > open
markupPhase := emaFast > emaSlow and emaSlow > emaMedium and volume > volMA and rsi > 50
distributionPhase := volume > volMA and rsi > 60 and ta.rising(low, 5) and close < open
markdownPhase := emaFast < emaSlow and emaSlow < emaMedium and volume > volMA and rsi < 50
// ===================== Price Map Profile =====================
lookbackPeriod = 30
highestPrice = ta.highest(high, lookbackPeriod)
lowestPrice = ta.lowest(low, lookbackPeriod)
valueAreaHigh = highestPrice - (highestPrice - lowestPrice) * 0.15
valueAreaLow = lowestPrice + (highestPrice - lowestPrice) * 0.15
pointOfControl = (valueAreaHigh + valueAreaLow) / 2
// Plot Price Map Profile
plot(enablePriceMap ? pointOfControl : na, "POC", color.purple, 1)
plot(enablePriceMap ? valueAreaHigh : na, "VAH", color.blue, 1)
plot(enablePriceMap ? valueAreaLow : na, "VAL", color.blue, 1)
// ===================== Mean Reversion =====================
meanReversionBuy = false
meanReversionSell = false
if enableMeanReversion
// Optimized Bollinger Bands for swing trading
basisBB = ta.sma(close, 20)
devBB = ta.stdev(close, 20) * 2
upperBB = basisBB + devBB
lowerBB = basisBB - devBB
// Enhanced Mean Reversion Conditions
lowerBBHit = ta.crossunder(close, lowerBB) or (close < lowerBB and close[1] < lowerBB)
upperBBHit = ta.crossover(close, upperBB) or (close > upperBB and close[1] > upperBB)
// RSI divergence for better timing
rsiLow = ta.lowest(rsi, 5)
priceLow = ta.lowest(low, 5)
rsiHigh = ta.highest(rsi, 5)
priceHigh = ta.highest(high, 5)
bullishDivergence = low < priceLow and rsi > rsiLow
bearishDivergence = high > priceHigh and rsi < rsiHigh
// Mean Reversion Swing Trading Signals
meanReversionBuy := lowerBBHit and rsi < 30 and bullishDivergence
meanReversionSell := upperBBHit and rsi > 70 and bearishDivergence
// ===================== Trend Following =====================
trendFollowingBuy = false
trendFollowingSell = false
if enableTrendFollowing
// Strong Trend Conditions
strongUptrend = emaFast > emaSlow and emaSlow > emaMedium and emaMedium > emaLong
strongDowntrend = emaFast < emaSlow and emaSlow < emaMedium and emaMedium < emaLong
// Simulated multi-day trend confirmation
recentHigherHigh = high > ta.highest(high[1], 5)
recentLowerLow = low < ta.lowest(low[1], 5)
// MACD Filters
macdRising = macd > macd[1] and macd[1] > macd[2]
macdFalling = macd < macd[1] and macd[1] < macd[2]
// Stronger Filters for Swing Trading
trendFollowingBuy := strongUptrend and macd > macdSignal and macdRising and recentHigherHigh
trendFollowingSell := strongDowntrend and macd < macdSignal and macdFalling and recentLowerLow
// ===================== Combine Signals =====================
wyckoffBuy = enableWyckoff and spring and accumulationPhase
wyckoffSell = enableWyckoff and distributionPhase
mrBuy = enableMeanReversion and meanReversionBuy
mrSell = enableMeanReversion and meanReversionSell
tfBuy = enableTrendFollowing and trendFollowingBuy
tfSell = enableTrendFollowing and trendFollowingSell
// Combine all strategies
buySignal = (wyckoffBuy or mrBuy or tfBuy) and isGoodEntryDay
sellSignal = (wyckoffSell or mrSell or tfSell) and isGoodEntryDay
// Add Candle Confirmation for better entries - full candle above/below EMA
buyConfirmation = close > open and close > emaMedium
sellConfirmation = close < open and close < emaMedium
// Track holding days
var int daysInTrade = 0
daysInTrade := strategy.position_size != 0 ? daysInTrade + 1 : 0
// Time-Based Exit
exitLongByTime = strategy.position_size > 0 and (daysInTrade >= maxHoldingDays or (daysInTrade >= minHoldingDays and isGoodExitDay))
exitShortByTime = strategy.position_size < 0 and (daysInTrade >= maxHoldingDays or (daysInTrade >= minHoldingDays and isGoodExitDay))
// Exit by RSI
exitLongByRSI = useExitByRSI and strategy.position_size > 0 and rsi >= exitLongRSI and daysInTrade >= minHoldingDays
exitShortByRSI = useExitByRSI and strategy.position_size < 0 and rsi <= exitShortRSI and daysInTrade >= minHoldingDays
// Trading logic - Swing Trading adjusted with TP/SL optional
if buySignal and buyConfirmation and strategy.position_size <= 0
strategy.cancel_all()
strategy.entry("Long", strategy.long)
if useAutoTPSL
strategy.exit("TP/SL Long", "Long", profit = atr * profitFactor, loss = atr * stopLossFactor)
if sellSignal and sellConfirmation and strategy.position_size >= 0
strategy.cancel_all()
strategy.entry("Short", strategy.short)
if useAutoTPSL
strategy.exit("TP/SL Short", "Short", profit = atr * profitFactor, loss = atr * stopLossFactor)
// Trailing Stop if enabled and no fixed TP/SL
if useTrailingStop and not useAutoTPSL and strategy.position_size != 0
longTrailPrice = high - atr * trailingStopAtrMult
shortTrailPrice = low + atr * trailingStopAtrMult
if strategy.position_size > 0
strategy.exit("Trailing Stop Long", "Long", trail_price=longTrailPrice)
else if strategy.position_size < 0
strategy.exit("Trailing Stop Short", "Short", trail_price=shortTrailPrice)