
इस लेख में एक परिमाणात्मक ट्रेडिंग रणनीति का वर्णन किया गया है, जो एक पारोबेल चक्र सूचक और एक ब्रुइन बैंड सूचक के संयोजन के साथ एक चलती रोक रणनीति निर्धारित करती है। यह रणनीति बाजार की प्रवृत्ति की दिशा का आकलन करने के लिए पारोबेल चक्र रेखा की गणना करती है, फिर ब्रुइन बैंड की गतिशीलता का उपयोग करके ऊपर और नीचे की गतिशीलता को रोकती है, जिससे लाभ को लॉक करने के लिए चलती रोक को लागू किया जा सकता है।
सबसे पहले, यह रणनीति वर्तमान बाजार के रुझानों का आकलन करने के लिए पैरोबेल सूचकांक का उपयोग करती है। आज के समापन मूल्य पर कल के पैरोबेल चक्र रेखा को पार करते समय, यह माना जाता है कि बाजार में तेजी आ गई है, और अधिक किया जा सकता है; आज के समापन मूल्य पर कल की चक्र रेखा को पार करते समय, यह गिरावट है, और इसे बंद कर दिया जा सकता है।
दूसरा, इस रणनीति के साथ संयोजन में ब्रुइन बैंड सूचक सेट गतिशील के लिए एक स्टॉप-लॉस. ब्रुइन बैंड में ऊपरी रेल को ओवरबॉय क्षेत्र के रूप में देखा जा सकता है, और निचले रेल को ओवरसेलिंग क्षेत्र के रूप में देखा जा सकता है. यदि कीमत ब्रुइन बैंड के नीचे की ओर फिर से गिरती है, तो ब्रुइन बैंड को बंद कर दिया जाता है; जब यह खाली हो जाता है, तो कीमत ब्रुइन बैंड के नीचे की ओर फिर से गिरती है, तो ब्रुइन ब्रुइन ब्रुइन को बंद कर दिया जाता है। इस प्रकार, ब्रुइन बैंड के नीचे की ओर एक चलती स्टॉप-लॉस लाइन बन जाती है।
उपरोक्त सिद्धांतों के माध्यम से, यह रणनीति बाजार की दिशा का आकलन करने के साथ-साथ लाभ को ट्रैक करने के लिए एक गतिशील स्टॉप-लॉस तंत्र की स्थापना करती है। यह इसे बड़े रुझानों में कुछ उतार-चढ़ाव को पकड़ने की अनुमति देता है, जबकि यह जोखिम से बचने के लिए लाभ को लॉक करने के लिए स्टॉप-लॉस भी कर सकता है।
पारंपरिक स्टॉप-लॉस रणनीति की तुलना में केवल एक निश्चित स्टॉप-लॉस सेट करता है, जो कि ब्रुइन बैंड सूचक को स्टॉप-लॉस लाइन के रूप में उपयोग करता है, जिससे स्टॉप-लॉस लाइन कीमतों में उतार-चढ़ाव के साथ स्थानांतरित हो सकती है। यह इसे अधिक लाभ को लॉक करने की अनुमति देता है। इसके अलावा, यह रणनीति ब्रुइन बैंड सूचक को जोड़कर ओवरबॉय ओवरसोल्ड क्षेत्र का निर्धारण करने के लिए अधिक सटीक हो सकती है, जो कि केवल पैरोबेल चक्र रेखा का उपयोग करने की तुलना में है।
इस रणनीति का मुख्य जोखिम यह है कि पैरोबेल सूचकांक का निर्णय प्रवृत्ति नहीं है। उतार-चढ़ाव की स्थिति में, कीमतें बार-बार ऊपर और नीचे पार कर सकती हैं, जिससे रणनीति में अक्सर लेकिन मामूली लाभ होता है। इस समय, ट्रेडिंग शुल्क और स्लाइडिंग लागत का एक बड़ा हिस्सा हो सकता है, जिससे रणनीति की लाभप्रदता कम हो सकती है।
उपरोक्त जोखिमों का सामना करने के लिए, पैरामीटर को समायोजित करने पर विचार किया जा सकता है, पैरोबेल चक्र रेखा के परिवर्तन की डिग्री को बढ़ाया जा सकता है, गलत निर्णय की संभावना को कम किया जा सकता है; या अन्य संकेतकों के साथ संयोजन में प्रवेश समय को फ़िल्टर करें। उदाहरण के लिए, अस्थिरता संकेतकों को शामिल किया जा सकता है ताकि अनावश्यक ट्रेडिंग को कम करने के लिए निर्णय लिया जा सके कि क्या ट्रेंडिंग या अस्थिर है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
पैराबेल सूचकांक मापदंडों को अनुकूलित करना, मापदंडों के सूचकांक में परिवर्तन की गति को समायोजित करना, और गलत निर्णय की संभावना को कम करना
अन्य तकनीकी संकेतकों के लिए फ़िल्टर जोड़ें, जैसे कि 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")