यह एक ब्रेकआउट ट्रेडिंग रणनीति है जो अलग-अलग अवधि के साथ पैराबोलिक एसएआर संकेतक और ट्रिपल एसएमएमए लाइनों को जोड़ती है। जब तीनों एसएमएमए लाइनें बढ़ रही होती हैं तो यह लंबी जाती है और जब सभी गिर रही होती हैं तो यह छोटी हो जाती है, जबकि एसएआर संकेतक का उपयोग ट्रेंड की दिशा निर्धारित करने और जब एसएआर दिशाओं को पलटता है तो काउंटर ट्रेंड प्रविष्टियां लेने के लिए किया जाता है। रणनीति में स्टॉप लॉस और ले लाभ भी शामिल है।
यह रणनीति निम्नलिखित मुख्य बिंदुओं पर आधारित हैः
वर्तमान रुझान की दिशा निर्धारित करने के लिए पैराबोलिक एसएआर संकेतक का उपयोग करना। एसएआर गतिशील रूप से मूल्य परिवर्तनों को ट्रैक कर सकता है और अपट्रेंड और डाउनट्रेंड की पहचान कर सकता है।
विभिन्न अवधियों (फास्ट लाइन 21, मिड लाइन 50, स्लो लाइन 200) के साथ तीन एसएमएमए लाइनें स्थापित करना। जब तीनों लाइनें बढ़ रही हैं, तो यह एक अपट्रेंड का संकेत देती है। जब सभी गिर रहे हैं, तो यह एक डाउनट्रेंड का संकेत देती है।
जब एसएआर नीचे की ओर मुड़ता है, तो लंबे समय तक चला जाता है जबकि तीनों एसएमएमए लाइनें बढ़ रही हैं।
जब एसएआर फ्लिप अप करता है जबकि सभी तीन एसएमएमए लाइनें गिर रही हैं।
आरएआर पर आधारित स्टॉप लॉस को शामिल करना और प्रवेश मूल्य के एक निश्चित प्रतिशत पर लाभ लेना।
विशेष रूप से, रणनीति पहले जांचती है कि क्या एसएआर वर्तमान पट्टी पर दिशाओं को फ्लिप करता है। यदि एसएआर ऊपर से नीचे की ओर फ्लिप करता है जबकि एसएमएमए बढ़ रहे हैं, तो यह लंबा हो जाता है। यदि एसएआर नीचे से ऊपर की ओर फ्लिप करता है जबकि एसएमएमए गिर रहे हैं, तो यह छोटा हो जाता है।
प्रवेश के बाद, स्टॉप लॉस को अगले बार पर SAR मूल्य पर सेट किया जाता है, SAR का उपयोग गतिशील ट्रेलिंग स्टॉप लॉस के रूप में किया जाता है। ले लाभ को प्रवेश मूल्य के 10% पर सेट किया जाता है। जब मूल्य लाभ या स्टॉप लॉस स्तर तक पहुंचता है, तो स्थिति बंद हो जाती है।
इस रणनीति में ट्रेंड-फॉलोइंग इंडिकेटर और मल्टीपल टाइम फ्रेम मूविंग एवरेज के फायदे शामिल हैं, जो एसएमएमए के साथ झूठे ब्रेक को फ़िल्टर करते हुए ट्रेंड रिवर्स पर समय पर प्रविष्टियों की अनुमति देता है। मुख्य फायदे हैंः
एसएआर तेजी से रुझान परिवर्तनों का पता लगा सकता है और उलट अवसरों को पकड़ सकता है।
ट्रिपल एसएमएमए प्रभावी रूप से बाजार शोर को फ़िल्टर करते हैं और झूठे ब्रेक से बचते हैं।
एसएमएमए का उपयोग करने से अधिक चिकनी वक्र और एमए के विप्सॉव से कम हस्तक्षेप होता है।
स्टॉप लॉस और टेक प्रॉफिट को शामिल करने से एकल व्यापार हानि को नियंत्रित करने और आंशिक लाभ में लॉक करने में मदद मिलती है।
लचीली पैरामीटर सेटिंग्स विभिन्न बाजारों के लिए अनुकूलन की अनुमति देती हैं।
कुछ जोखिमों पर भी विचार किया जाना चाहिए:
अस्थिर रुझानों के दौरान एसएआर अक्सर बदल सकता है, अत्यधिक व्यापार से लागत बढ़ जाती है।
एसएमएमए सेटिंग्स सभी उपकरणों के लिए अच्छी तरह से फिट नहीं हो सकती हैं, जिसके लिए व्यक्तिगत अनुकूलन की आवश्यकता होती है।
एसएआर स्टॉप लॉस में समय की देरी होती है, जिससे संभावित रूप से नुकसान बढ़ता है।
एसएआर स्थिर रुझानों में झूठे ब्रेक पर फ्लिप कर सकता है। एसएआर मापदंडों को चिकना करने से मदद मिल सकती है।
खराब एसएमएमए सेटिंग्स से चूक गए रुझान या खराब संकेत हो सकते हैं। सावधानीपूर्वक परीक्षण की आवश्यकता है।
जोखिमों से निपटने के लिए, अनुकूलन निम्नलिखित पर ध्यान केंद्रित कर सकते हैंः
फ्लिप को कम करने के लिए अस्थिरता के आधार पर SAR मापदंडों को समायोजित करना।
उपकरण की विशेषताओं के अनुरूप एसएमएमए अवधि को समायोजित करना।
स्टॉप लॉस में सुधार करना, उदाहरण के लिए ट्रैलिंग या लिमिट ऑर्डर के साथ।
सक्रिय व्यापार में स्टॉप लॉस के लिए सीमा आदेशों का प्रयोग करना।
व्यापक परीक्षण और मापदंडों का समायोजन।
उपरोक्त विश्लेषण के आधार पर, अनुकूलन में निम्नलिखित शामिल हो सकते हैंः
अधिक चिकनी वक्रों और कम फ्लिप के लिए एसएआर मापदंडों का अनुकूलन।
व्यापारिक साधनों से मेल खाने के लिए एसएमएमए लंबाई को समायोजित करना।
गतिशील स्टॉप लॉस जैसे ट्रेसिंग स्टॉप या लिमिट ऑर्डर का उपयोग करना।
उच्च आवृत्ति व्यापार में स्टॉप लॉस के लिए सीमा आदेशों का उपयोग करना।
सिग्नल की गुणवत्ता में सुधार के लिए आरएसआई, केडी जैसे फ़िल्टर जोड़ना।
प्रवेश की स्थितियों में सुधार करना, उदाहरण के लिए SAR फ्लिप के साथ मोमबत्ती पैटर्न की जांच करना।
स्टॉप लॉस ट्रिगर के बाद पुनः प्रवेश की शर्तें जोड़ना।
लाभ लेने के साथ वृद्धि, पीछे, आंशिक रूप से बंद, चौंकाने वाले स्तर।
बैकटेस्ट परिणामों और संवेदनशीलता विश्लेषण के आधार पर पैरामीटर ट्यूनिंग।
संक्षेप में, यह एक सरल और व्यावहारिक ब्रेकआउट रणनीति है जो रुझान परिवर्तनों को पकड़ने में SAR की संवेदनशीलता और चलती औसत के फ़िल्टरिंग प्रभाव को जोड़ती है। यह तेजी से रुझान उलट बिंदुओं की पहचान कर सकती है। स्टॉप लॉस और टेक प्रॉफिट का उपयोग जोखिमों को नियंत्रित करने और मुनाफे में लॉक करने में मदद करता है। पैरामीटर सेटिंग्स, प्रवेश / निकास नियमों पर आगे के अनुकूलन, और झूठे ब्रेक के खिलाफ मजबूती विभिन्न ट्रेडिंग उपकरणों के लिए रणनीति प्रदर्शन को बढ़ा सकती है।
/*backtest start: 2023-10-08 00:00:00 end: 2023-11-07 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="SAR + 3SMMA with SL & TP", overlay=true, calc_on_order_fills=false, calc_on_every_tick=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD, commission_type= strategy.commission.percent, commission_value=0.03) start = input.float(0.02, step=0.01, group="SAR") increment = input.float(0.02, step=0.01, group="SAR") maximum = input.float(0.2, step=0.01, group="SAR") //Take Profit Inputs take_profit = input.float(title="Take Profit (%)", minval=0.0, step=0.1, defval = 0.1, group="Stop Loss and Take Profit", inline="TP") * 0.01 //Stop Loss Inputs stop_loss = input.float(title="StopLoss (%)", minval=0.0, step=0.1, defval=1, group="Stop Loss and Take Profit", inline="SL") * 0.01 // Smooth Moving Average fastSmmaLen = input.int(21, minval=1, title="Fast Length", group = "Smooth Moving Average") midSmmaLen = input.int(50, minval=1, title="Mid Length", group = "Smooth Moving Average") slowSmmaLen = input.int(200, minval=1, title="Slow Length", group = "Smooth Moving Average") src = input(close, title="Source", group = "Smooth Moving Average") smma(ma, src, len) => smma = 0.0 smma := na(smma[1]) ? ma : (smma[1] * (len - 1) + src) / len smma fastSma = ta.sma(src, fastSmmaLen) midSma = ta.sma(src, midSmmaLen) slowSma = ta.sma(src, slowSmmaLen) fastSmma = smma(fastSma, src, fastSmmaLen) midSmma = smma(midSma, src, midSmmaLen) slowSmma = smma(slowSma, src, slowSmmaLen) isSmmaUpward = ta.rising(fastSmma, 1) and ta.rising(midSmma, 1) and ta.rising(slowSmma, 1) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := math.max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := math.min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := math.min(AF + increment, maximum) else if low < EP EP := low AF := math.min(AF + increment, maximum) if uptrend SAR := math.min(SAR, low[1]) if bar_index > 1 SAR := math.min(SAR, low[2]) else SAR := math.max(SAR, high[1]) if bar_index > 1 SAR := math.max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) sarIsUpTrend = uptrend ? true : false sarFlippedDown = sarIsUpTrend and not sarIsUpTrend[1] ? true : false sarFlippedUp = not sarIsUpTrend and sarIsUpTrend[1] ? true : false longEntryCondition = isSmmaUpward and sarFlippedDown shortEntryCondition = not isSmmaUpward and sarFlippedUp if(longEntryCondition) strategy.entry("L", strategy.long, stop=nextBarSAR, comment="L") if(shortEntryCondition) strategy.entry("S", strategy.short, stop=nextBarSAR, comment="S") strategy.exit("CL", when=strategy.position_size > 0, limit=strategy.position_avg_price * (1+take_profit), stop=strategy.position_avg_price*(1-stop_loss)) strategy.exit("CS", when=strategy.position_size < 0, limit=strategy.position_avg_price * (1-take_profit), stop=strategy.position_avg_price*(1+stop_loss)) plot(SAR, style=plot.style_cross, linewidth=1, color=color.orange) plot(nextBarSAR, style=plot.style_cross, linewidth=1, color=color.aqua) plot(series = fastSmma, title="fastSmma", linewidth=1) plot(series = midSmma, title="midSmma", linewidth=2) plot(series = slowSmma, title="slowSmma", linewidth=3) plotchar(series = isSmmaUpward, title="isSmmaUpward", char='') plotchar(series=sarIsUpTrend, title="sarIsUpTrend", char='') plotchar(series=sarFlippedUp, title="sarFlippedUp", char='') plotchar(series=sarFlippedDown, title="sarFlippedDown", char='') plotchar(series=longEntryCondition, title="longEntryCondition", char='') plotchar(series=shortEntryCondition, title="shortEntryCondition", char='') plotchar(series=strategy.position_size > 0, title="inLong", char='') plotchar(series=strategy.position_size < 0, title="inShort", char='') //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)