यह रणनीति लोचदार स्टॉप-लॉस संकेतों पर आधारित है, जो खरीद और बिक्री संकेतों को सेट करती है, लंबी और छोटी स्थिति का संचालन करती है। जब संकेत मिलता है, तो अधिक करें; जब संकेत मिलता है, तो कम करें। यह रणनीति एक ट्रैकिंग स्टॉप-लॉस तंत्र को भी जोड़ती है, जो जोखिम को प्रभावी ढंग से नियंत्रित करती है।
यह रणनीति मुख्य रूप से रुझानों की पहचान करने के लिए लचीले स्टॉप इंडिकेटर का उपयोग करती है और रिवर्स ऑपरेशन करती है। यह इंडिकेटर के अंदर वास्तविक सीमा इंडिकेटर का उपयोग करके सीमा मूल्य की पहचान करती है, जब कीमत सीमा से अधिक होती है तो इसे असामान्य रूप से तोड़ने और रुझानों के उलटने की संभावना का निर्धारण करती है। विशेष रूप से, इंडिकेटर के अंदर दो चर बनाए रखा जाता हैः सीमा मूल्य (EP) और ट्रिगर मूल्य (TP) । EP वर्तमान प्रवृत्ति के नीचे उच्चतम या निम्नतम मूल्य का प्रतिनिधित्व करता है। TP को EP द्वारा गणना की जाती है।
उछाल की प्रवृत्ति में, जब कीमत ईपी से ऊपर होती है, तो यह एक असामान्य ब्रेक के रूप में निर्धारित किया जाता है, जब ईपी उच्चतम मूल्य और टीपी न्यूनतम मूल्य के रूप में अद्यतन होता है। जब कीमत टीपी से नीचे होती है, तो यह एक विक्रय संकेत उत्पन्न करने के लिए प्रवृत्ति को उलट देता है।
यह रणनीति एक ट्रैकिंग स्टॉप लॉस तंत्र को जोड़ती है, जो स्थिति खोलने के बाद वास्तविक समय में सर्वोत्तम स्टॉप लॉस मूल्य को ट्रैक करता है, जो लाभ सुनिश्चित करते हुए जोखिम को नियंत्रित करता है। विशेष रूप से, ओवरडोज के बाद स्टॉप लॉस लाइन बंद होने के निचले बिंदु को ट्रैक करती है; खाली होने के बाद, स्टॉप लॉस लाइन बंद होने के उच्च बिंदु को ट्रैक करती है।
इस रणनीति के निम्नलिखित फायदे हैंः
इस तरह के संकेतकों का उपयोग करने से रुझानों के पलटाव की पहचान होती है और इसे आसानी से बंद नहीं किया जा सकता है।
एक स्टॉप-लॉस ट्रैकिंग तंत्र लाभ को लॉक कर सकता है और घाटे के विस्तार से बच सकता है।
सूचकांक पैरामीटर सरल हैं और इसे लागू करना आसान है।
खरीद-बिक्री संकेत संकेतों को कॉन्फ़िगर किया जा सकता है, ऑपरेशन में आसान है।
रणनीतिक प्रभाव का व्यापक मूल्यांकन करने के लिए पुनः परीक्षण चक्रों को लचीले ढंग से कॉन्फ़िगर किया जा सकता है।
इस रणनीति के साथ कुछ जोखिम भी हैंः
सूचकांक में देरी है, जो रुझान को बदलने के लिए सबसे अच्छे बिंदु को याद कर सकता है।
यह भी कहा जाता है कि यह बहुत अधिक है और यह कम समय में कीमतों में उतार-चढ़ाव के कारण हो सकता है।
पुनर्मूल्यांकन चक्र का चयन गलत है और रणनीतियों के प्रभाव का पूर्ण मूल्यांकन करने में असमर्थ है।
लेन-देन की लागत के लाभ पर प्रभाव पर ध्यान देना आवश्यक है।
जोखिमों के लिए अनुकूलन निम्नलिखित में से एक में किया जा सकता हैः
इस तरह, हम अपने देश के लिए एक नया लक्ष्य निर्धारित कर रहे हैं।
एक बार जब आप अपने डिवाइस को बंद कर देते हैं, तो आप अपने डिवाइस को बंद कर देते हैं।
विश्वसनीयता सुनिश्चित करने के लिए उपयुक्त पुनर्मूल्यांकन चक्रों का चयन करें।
व्यापार की लागत को कम करने के लिए स्थिति प्रबंधन को अनुकूलित करें।
इस रणनीति को निम्नलिखित में और अनुकूलित किया जा सकता हैः
ट्रेंड इंडिकेटर के साथ संयोजन, रिवर्स ट्रेडिंग को बंद करने से बचें.
स्थिति प्रबंधन एल्गोरिदम को अनुकूलित करें, जैसे कि फिक्स्ड अनुपात स्थिति, गतिशील स्थिति आदि।
यह एक बहुत ही अच्छा तरीका है कि हम अपने ग्राहकों के साथ एक अच्छा समय बिता सकते हैं।
पैरामीटर का अनुकूलन करें और सर्वोत्तम पैरामीटर संयोजन का पता लगाएं।
एक बार जब आप एक ट्रेंड चलाते हैं, तो समय पर स्टॉप स्टॉप करने के लिए एक स्टॉप स्टॉप रणनीति शामिल करें।
स्टॉप-लॉस रणनीति को अनुकूलित करें ताकि स्टॉप-लॉस को अधिक चिकनी बनाया जा सके। स्टॉप-लॉस एल्गोरिदम जैसे कि चैंडिलर एक्जिट का परीक्षण किया जा सकता है।
ट्रेडों की किस्मों, समय सीमाओं आदि को अनुकूलित करना और रणनीतिक अनुकूलन में सुधार करना।
मशीन लर्निंग एल्गोरिदम को शामिल करने से रणनीतियों को अधिक अनुकूलनशील बनाया जा सकता है।
यह रणनीति समग्र रूप से सरल और विश्वसनीय है, यह लोचदार स्टॉप इंडिकेटर का उपयोग करके रिवर्स पॉइंट की पहचान करने के लिए करती है, और स्टॉप इंडिकेटर को ट्रैक करने के लिए स्टॉप इंडिकेटर के साथ जोखिम को नियंत्रित करने के लिए तैयार है, और इसे शॉर्ट-लाइन रिवर्स रणनीति के रूप में इस्तेमाल किया जा सकता है।
यह रणनीति लंबी और छोटी स्थिति के लिए खरीद और बिक्री संकेत उत्पन्न करने के लिए पैराबोलिक एसएआर संकेतक पर आधारित है। इसमें जोखिमों को प्रभावी ढंग से नियंत्रित करने के लिए एक ट्रेलिंग स्टॉप लॉस तंत्र भी शामिल है।
इस रणनीति का मूल विपरीत प्रवृत्ति व्यापार के लिए पैराबोलिक एसएआर संकेतक का उपयोग करके प्रवृत्ति उलट बिंदुओं की पहचान करना है। संकेतक चरम कीमतों का पता लगाने के लिए सच्ची सीमा का उपयोग करता है। जब कीमत चरम से अधिक होती है, तो इसे एक ब्रेकआउट और संभावित प्रवृत्ति उलट का संकेत माना जाता है। विशेष रूप से, संकेतक दो चर बनाए रखता हैः चरम मूल्य (ईपी) और ट्रिगर मूल्य (टीपी) । ईपी वर्तमान प्रवृत्ति की उच्चतम / सबसे कम कीमत का प्रतिनिधित्व करता है, जबकि टीपी ईपी से प्राप्त होता है।
एक अपट्रेंड में, जब कीमत ईपी से अधिक होती है, तो इसे ब्रेकआउट माना जाता है। ईपी को तब उच्चतम मूल्य और टीपी को सबसे कम मूल्य पर अपडेट किया जाता है। जब कीमत टीपी से नीचे गिरती है, तो एक प्रवृत्ति उलट पहचान की जाती है और एक बिक्री संकेत उत्पन्न होता है। एक ही सिद्धांत एक डाउनट्रेंड के लिए लागू होता है।
रणनीति में एक ट्रेलिंग स्टॉप लॉस तंत्र भी शामिल है। एक स्थिति खोलने के बाद, यह वास्तविक समय में इष्टतम स्टॉप लॉस मूल्य को ट्रैक करेगा, जोखिमों को नियंत्रित करते हुए मुनाफे में लॉक करेगा। विशेष रूप से, लंबे प्रवेश के बाद, स्टॉप लॉस समापन निम्न को ट्रैक करता है; लघु प्रवेश के बाद, यह समापन उच्च को ट्रैक करता है।
इस रणनीति के मुख्य लाभ इस प्रकार हैंः
प्रवृत्ति में फंसने से बचने के लिए सूचक के साथ प्रवृत्ति उलट बिंदुओं की पहचान करें।
स्टॉप लॉस को पीछे छोड़ने से मुनाफा कम होता है और बड़े नुकसान होने से बचा जाता है।
सरल संकेतक मापदंड, लागू करने में आसान।
सुविधा के लिए कॉन्फ़िगर करने योग्य खरीद/बिक्री संकेत अलर्ट।
गहन मूल्यांकन के लिए लचीली बैकटेस्ट अवधि विन्यास।
कुछ जोखिमों पर भी विचार किया जाना चाहिए:
सूचक विलंब इष्टतम उलट बिंदुओं को याद कर सकता है।
आक्रामक रुकावटों को अल्पकालिक उतार-चढ़ावों से रोका जा सकता है।
गलत बैकटेस्ट अवधि का चयन रणनीति का पूर्ण मूल्यांकन नहीं कर सकता है।
लेन-देन की लागत लाभ को प्रभावित कर सकती है।
जोखिमों से निपटने के कुछ तरीके हैंः
देरी को कम करने के लिए मापदंडों का अनुकूलन करें.
अनावश्यक रूप से बंद होने से बचने के लिए स्टॉप लॉस एल्गोरिथ्म में सुधार करें।
विश्वसनीयता के लिए उपयुक्त बैकटेस्ट अवधि का चयन करें।
लेन-देन की लागत को कम करने के लिए स्थिति आकार को अनुकूलित करें।
रणनीति को और अधिक अनुकूलित करने के कुछ तरीके:
विपरीत रुझानों में फंसने से बचने के लिए एमए जैसे रुझान संकेतकों को शामिल करें।
स्थिति आकार निर्धारण एल्गोरिदमों को अनुकूलित करें, जैसे कि स्थिर अंश, गतिशील।
अंतराल से झूठे संकेतों से बचने के लिए वॉल्यूम फ़िल्टर जोड़ें।
इष्टतम संयोजन खोजने के लिए पैरामीटर अनुकूलन।
रुझानों में मुनाफे को लॉक करने के लिए लाभ लेने की रणनीतियों को लागू करें।
चिकनी स्टॉप के लिए स्टॉप लॉस एल्गोरिदम को परिष्कृत करें। चैंडिलर एग्जिट आदि के साथ प्रयोग करें।
अनुकूलन क्षमता में सुधार के लिए उत्पादों, समय सीमा आदि में अनुकूलन करें।
अधिक अनुकूलन क्षमता के लिए मशीन लर्निंग को शामिल करें।
संक्षेप में, यह एक सरल और मजबूत रणनीति है जो जोखिम को नियंत्रित करने के लिए प्रतिवर्तन और ट्रेलिंग स्टॉप लॉस की पहचान करने के लिए पैराबोलिक एसएआर का उपयोग करती है। यह एक अल्पकालिक औसत-वापसी रणनीति के रूप में काम कर सकती है। लेकिन संकेतक देरी और अतिसंवेदनशील स्टॉप को संबोधित करने की आवश्यकता है। आगे के अनुकूलन से बेहतर प्रदर्शन हो सकता है।
/*backtest start: 2023-09-10 00:00:00 end: 2023-10-10 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("PB SAR BackTest - Colorbar", overlay=false) // Full credit to Sawcruhteez, Lucid Investment Strategies LLC, Casey Bowman and Peter Brandt. // This is a strategy version of the Peterbolic SAR indicator created by the above-mentioned parties. // Original version of the indicator: https://www.tradingview.com/script/6nYrH3Vm-Peterbolic-SAR/ // SAR #1 // Lucid Sar // Branded under the name "Lucid SAR" // as agreed to with Lucid Investment Strategies LLC on July 9, 2019 // https://lucidinvestmentstrategies.com/ // see branch "lucid" // SAR #2 // Peterbolic Sar // Using the name "Peterbolic SAR" // as agreed to by Peter Brandt on October 2, 2019 // - https://twitter.com/PeterLBrandt/status/1179365590668075008 // in response to request from Sawcruhteez // - https://twitter.com/Sawcruhteez/status/1179213105705836544 // Sawcruhteez gives credit to @CrazyGabey for coming up with the name // - https://twitter.com/Sawcruhteez/status/1179213196583940097 // see branch "peterbolic" // SAR #3 // Sawcruhteez Sar // Branded under the name "Sawcruhteez SAR" // as agreed to with Sawcruhteez on September 11, 2019 // see branch "sawcruhteez" // Open Source on github // https://github.com/casey-bowman/sar/blob/peterbolic/peterbolic.pine // Created by Casey Bowman on July 4, 2019 // MIT License // Copyright (c) 2019 Casey Bowman // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. TSR() => // start with uptrend var uptrend = true var EP = high // extreme price - high or low depending on trend var SP = low // setup price var TP = float(na) // trigger price var setup = low var trigger = float(na) if barstate.isnew setup := low trigger = float(na) extreme_candle = false first_extreme_candle = false setup_candle = false trigger_candle = false waiting_for_setup = false waiting_for_trigger = false var since_extreme = 0 var since_setup = 0 waiting_for_setup := not extreme_candle and not na(SP) waiting_for_trigger := not na(TP) if not barstate.isfirst if barstate.isnew and extreme_candle[1] trigger := float(na) if barstate.isnew and setup_candle[1] setup := float(na) if barstate.isnew and waiting_for_trigger since_setup := since_setup + 1 trigger := TP if barstate.isnew and waiting_for_setup since_extreme := since_extreme + 1 setup := SP if uptrend if extreme_candle EP := high SP := low else if high > EP extreme_candle := true EP := high SP := low since_extreme := 0 since_setup := 0 else if waiting_for_setup if barstate.isconfirmed if close < SP setup_candle := true SP := float(na) TP := low if waiting_for_trigger if low < TP trigger_candle := true extreme_candle := true EP := low SP := high TP := float(na) uptrend := false since_extreme := 0 since_setup := 0 else if barstate.isconfirmed and extreme_candle TP := float(na) trigger := float(na) else if extreme_candle EP := low SP := high else if low < EP extreme_candle := true EP := low SP := high since_extreme := 0 since_setup := 0 else if waiting_for_setup if barstate.isconfirmed if close > SP setup_candle := true SP := float(na) TP := high if waiting_for_trigger if high > TP trigger_candle := true extreme_candle := true EP := high SP := low TP := float(na) uptrend := true since_extreme := 0 since_setup := 0 else if barstate.isconfirmed and extreme_candle TP := float(na) trigger := float(na) [trigger_candle, trigger, since_setup, setup_candle, setup, since_extreme, extreme_candle, uptrend] [TC, T, SS, SC, S, SE, EC, up] = TSR() // Make input options that configure backtest date range StartMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) StartDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) StartYear = input(title="Start Year", type=input.integer, defval=(2019), minval=1800, maxval=2100) EndMonth = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12) EndDate = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=31) EndYear = input(title="End Year", type=input.integer, defval=(2020), minval=1800, maxval=2100) // Look if the close time of the current bar falls inside the date range inDateRange = true buytrigger = (TC and up) selltrigger = (TC and not up) buysetup = (SC and not up) sellsetup = (SC and up) IntBuy = buytrigger ? 1 : 0 IntSB = buysetup ? 0.5 : 0 IntSell= selltrigger ? -1 : 0 IntSS = sellsetup ? -0.5 : 0 bgcolor = buytrigger ? color.green : selltrigger ? color.red : buysetup ? color.yellow : sellsetup ? color.orange : color.black trans = buytrigger ? 20 : selltrigger ? 20 : 100 bgcolor(bgcolor, 30) NUM = IntBuy + IntSB + IntSell + IntSS linecolor = color.orange plot(NUM, color=linecolor, linewidth=2) alertcondition(NUM > 0.5, title="Buy Signal", message="Buy Alert") alertcondition(NUM < -0.5, title="Sell Signal", message="Sell Alert") alertcondition(NUM == 0.5, title="Buy Setup", message="Buy Setup") alertcondition(NUM == -0.5, title="Sell Setup", message="Sell Setup") //Switch on for strategy moves if(inDateRange and buytrigger) strategy.exit("SHORT", "SHORT_SL", comment="Short_Exit") strategy.entry("LONG", strategy.long, comment="") if(inDateRange and selltrigger) strategy.exit("LONG", "LONG_SL", comment="Long_Exit") strategy.entry("SHORT", strategy.short, comment="") if (not inDateRange) strategy.close_all() // plotshape(SC and not up, color = color.yellow, style = shape.triangleup, location = location.belowbar, size = size.auto, transp = 0, title = "Setup to Buy") // plotshape(TC and up, color = color.green, style = shape.triangleup, location = location.belowbar, size = size.auto, title = "Trigger to Buy") // plotshape(SC and up, color = color.yellow, style = shape.triangledown, location = location.abovebar, size = size.auto, transp = 0, title = "Setup to Sell") // plotshape(TC and not up, color = color.red, style = shape.triangledown, location = location.abovebar, size = size.auto, title = "Trigger to Sell")