इस लेख में एक परिमाणात्मक ट्रेडिंग रणनीति पेश की जाएगी जो एक चलती स्टॉप लॉस रणनीति निर्धारित करने के लिए पैराबोलिक अवधि संकेतक और बोलिंगर बैंड संकेतक को जोड़ती है। बाजार की प्रवृत्ति की दिशा का न्याय करने के लिए पैराबोलिक अवधि रेखा की गणना करके, और फिर गतिशील रूप से स्टॉप लॉस स्थिति सेट करने के लिए बोलिंगर बैंड के ऊपरी और निचले रेल का उपयोग करके, रणनीति लाभ में लॉक करने के लिए चलती स्टॉप लॉस का एहसास करती है।
सबसे पहले, यह रणनीति वर्तमान बाजार की प्रवृत्ति का आकलन करने के लिए पैराबोलिक संकेतक का उपयोग करती है। जब आज का समापन मूल्य कल की पैराबोलिक अवधि रेखा से ऊपर पार करता है, तो यह माना जाता है कि बाजार तेजी की ओर मुड़ गया है और लंबा हो सकता है; जब आज का समापन मूल्य अवधि रेखा से नीचे पार करता है, तो बाजार का दृष्टिकोण मंदी है और छोटा हो सकता है।
दूसरी बात, यह रणनीति गतिशील स्टॉप लॉस स्थिति निर्धारित करने के लिए बोलिंगर बैंड संकेतक को जोड़ती है। बोलिंगर बैंड की ऊपरी रेल को ओवरबॉट जोन के रूप में देखा जा सकता है, और निचली रेल एक ओवरसोल्ड जोन है। लंबे समय तक जाने के बाद, यदि कीमत बोलिंगर बैंड की निचली रेल से नीचे गिर जाती है, तो बंद स्थिति में स्टॉप लॉस करें; शॉर्ट जाने के बाद, यदि कीमत फिर से ऊपरी रेल से ऊपर बढ़ती है, तो बाहर निकलने के लिए स्टॉप लॉस करें। इस प्रकार, बोलिंगर बैंड की ऊपरी और निचली रेल चलती स्टॉप लॉस लाइन बन जाती हैं।
उपरोक्त सिद्धांतों के माध्यम से, यह रणनीति लाभों को ट्रैक करने के लिए एक गतिशील स्टॉप लॉस तंत्र स्थापित करते हुए बाजार की दिशा का न्याय करने का एहसास करती है। यह इसे प्रमुख रुझानों में कुछ उतार-चढ़ाव को पकड़ने की अनुमति देता है, जबकि जोखिमों से बचने के लिए स्टॉप लॉस के माध्यम से लाभ को लॉक करने में भी सक्षम होता है।
पारंपरिक स्टॉप लॉस रणनीतियों की तुलना में जो केवल एक निश्चित स्टॉप लॉस स्थिति निर्धारित करती हैं, यह रणनीति बोलिंगर बैंड संकेतक को स्टॉप लॉस लाइन के रूप में उपयोग करती है, ताकि स्टॉप लॉस लाइन मूल्य उतार-चढ़ाव के साथ आगे बढ़ सके। इससे इसे अपेक्षाकृत बड़े आंदोलनों में अधिक लाभ प्राप्त करने की अनुमति मिलती है। इसके अलावा, अकेले पैराबोलिक अवधि रेखा का उपयोग करने की तुलना में, यह रणनीति ओवरबॉट और ओवरसोल्ड क्षेत्रों को निर्धारित करने के लिए बोलिंगर बैंड संकेतक जोड़ती है, जो अधिक सटीक हो सकती है।
इस रणनीति का मुख्य जोखिम यह है कि पैराबोलिक संकेतक का रुझान मजबूत नहीं है। दोलन बाजारों में, कीमतें कई बार पैराबोलिक अवधि रेखाओं को पार कर सकती हैं, जिससे रणनीति के लिए लगातार लेकिन छोटे लाभदायक ट्रेड होते हैं। इस बिंदु पर, लेनदेन शुल्क और फिसलने की लागत एक बड़े अनुपात के लिए जिम्मेदार हो सकती है और रणनीति की लाभप्रदता को कम कर सकती है।
उपरोक्त जोखिमों से निपटने के लिए, पैराबोलिक अवधि रेखा में परिवर्तन की डिग्री को बढ़ाने के लिए पैरामीटर को समायोजित किया जा सकता है ताकि गलत निर्णय की संभावना को कम किया जा सके; या प्रवेश समय को फ़िल्टर करने के लिए अन्य संकेतकों को जोड़ने पर विचार किया जा सकता है। उदाहरण के लिए, अनावश्यक ट्रेडों को कम करने के लिए यह निर्धारित करने के लिए अस्थिरता संकेतकों को जोड़ा जा सकता है कि क्या बाजार प्रवृत्ति या दोलन कर रहा है।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
गलत निर्णय की संभावना को कम करने के लिए सूचक परिवर्तन दर को समायोजित करने के लिए पैराबोलिक संकेतक मापदंडों का अनुकूलन करें
अन्य तकनीकी संकेतक फ़िल्टरिंग को बढ़ाएं, जैसे कि बाजार के प्रकार को निर्धारित करने के लिए MACD, KD जोड़ना, दोलन बाजार में मध्यस्थता से बचें
बोलिंगर बैंड्स को मूल्य परिवर्तनों के करीब रखने के लिए बैंडविड्थ मापदंडों को समायोजित करने के लिए बोलिंगर बैंड्स मापदंडों का अनुकूलन करें
झूठे ब्रेकआउट से बचने के लिए आकलन में सहायता के लिए व्यापारिक मात्रा, पदों जैसे वॉल्यूम संकेतक बढ़ाएं
शेयरों की रणनीति के लाभ के साथ समस्याओं से बचने के लिए शेयरों के मौलिक तत्वों को मिलाएं
यह रणनीति बाजार की प्रवृत्ति की दिशा और ताकत को पैराबोलिक संकेतक के साथ जोड़ती है, और फिर स्टॉप लॉस रणनीति निर्धारित करने के लिए चलती स्टॉप लॉस स्थिति के रूप में बोलिंगर बैंड की ऊपरी और निचली रेल का उपयोग करती है, जिससे प्रवृत्ति ट्रैकिंग और जोखिम नियंत्रण का संयोजन प्राप्त होता है। पारंपरिक फिक्स्ड स्टॉप लॉस रणनीतियों की तुलना में, यह रणनीति बड़े आंदोलनों में उच्च रिटर्न प्राप्त कर सकती है। मापदंडों को अनुकूलित करके और अन्य सहायक निर्णय संकेतकों को जोड़कर, रणनीति की स्थिरता को और बढ़ाया जा सकता है और अनावश्यक ट्रेडों को कम किया जा सकता है।
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © maxencetajet //@version=5 strategy("HA_RSI", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=0.5, slippage=25) closeHA = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close) useDateFilter = input.bool(true, title="Filter Date Range of Backtest", group="Backtest Time Period") backtestStartDate = input(timestamp("5 June 2022"), title="Start Date", group="Backtest Time Period", tooltip="This start date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " + "zone of the chart or of your computer.") backtestEndDate = input(timestamp("5 July 2022"), title="End Date", group="Backtest Time Period", tooltip="This end date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " + "zone of the chart or of your computer.") inTradeWindow = true swingHighV = input.int(10, title="Swing High", group="number of past candles") swingLowV = input.int(10, title="Swing Low", group="number of past candles") emaV = input.int(200, title="Ema Period", group="EMA") rsiV = input.int(14, title="RSI Period", group="RSI") start = input(0.02, group="Parabolic SAR") increment = input(0.02, group="Parabolic SAR") maximum = input(0.2, "Max Value", group="Parabolic SAR") ema = ta.ema(closeHA, emaV) rsi = ta.rsi(closeHA, rsiV) SAR = ta.sar(start, increment, maximum) myColor = SAR < low?color.green:color.red longcondition = closeHA > ema and rsi > 50 and closeHA[1] > SAR and closeHA[1] < SAR[1] shortcondition = closeHA < ema and rsi < 50 and closeHA[1] < SAR and closeHA[1] > SAR[1] float risk_long = na float risk_short = na float stopLoss = na float entry_price = na float takeProfit = na risk_long := risk_long[1] risk_short := risk_short[1] swingHigh = ta.highest(closeHA, swingHighV) swingLow = ta.lowest(closeHA, swingLowV) if strategy.position_size == 0 and longcondition and inTradeWindow risk_long := (close - swingLow) / close strategy.entry("long", strategy.long, comment="Buy") if strategy.position_size == 0 and shortcondition and inTradeWindow risk_short := (swingHigh - close) / close strategy.entry("short", strategy.short, comment="Sell") if strategy.position_size > 0 stopLoss := strategy.position_avg_price * (1 - risk_long) entry_price := strategy.position_avg_price strategy.exit("long exit", "long", stop = stopLoss) if strategy.position_size < 0 stopLoss := strategy.position_avg_price * (1 + risk_short) entry_price := strategy.position_avg_price strategy.exit("short exit", "short", stop = stopLoss) if closeHA[1] < SAR and close > strategy.position_avg_price strategy.close("long", comment="Exit Long") if closeHA[1] > SAR and close < strategy.position_avg_price strategy.close("short", comment="Exit Short") p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price') p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss') fill(p_sl, p_ep, color.new(color.red, transp=85)) plot(SAR, "ParabolicSAR", style=plot.style_circles, color=myColor, linewidth=1) plot(ema, color=color.white, linewidth=2, title="EMA")