
यह क्वांटिटेटिव ट्रेडिंग रणनीति एक समग्र प्रणाली है जिसमें एक गतिशील स्टॉपलॉस तंत्र शामिल है जो एक क्रॉसिंग चलती औसत, एक अपेक्षाकृत मजबूत सूचक (आरएसआई) फ़िल्टरिंग और औसत वास्तविक सीमा (एटीआर) पर आधारित है। यह रणनीति मुख्य रूप से मध्यम और दीर्घकालिक रुझानों को पकड़ने के लिए है, जबकि आरएसआई के माध्यम से अत्यधिक ओवरबॉय या ओवरसोल्ड बाजार के वातावरण में प्रवेश से बचने के लिए, और एटीआर सूचक का उपयोग करके गतिशील स्टॉपलॉस सेट करने के लिए बाजार की अस्थिरता में परिवर्तन के लिए। यह रणनीति 15 मिनट के समय-फ्रेम पर विशेष रूप से अच्छा प्रदर्शन करती है, जो दिन के भीतर के रुझानों को पकड़ने और कम समय-फ्रेम के अत्यधिक शोर से बचने के बीच एक अच्छा संतुलन बनाने में सक्षम है।
रणनीति का मूल तर्क निम्नलिखित प्रमुख घटकों पर आधारित है:
चलती औसत क्रॉसिंगरणनीति दो सरल चलती औसत (एसएमए) का उपयोग करती है, जो 50 चक्रों की अल्पकालिक औसत और 200 चक्रों की दीर्घकालिक औसत होती है। जब अल्पकालिक औसत दीर्घकालिक औसत से कम होता है और आरएसआई 30 से अधिक होता है, तो सिस्टम कई संकेतों को ट्रिगर करता है। यह डिजाइन संभावित रुझान मोड़ बिंदुओं की पहचान करने के लिए है।
आरएसआई फ़िल्टर तंत्र: रणनीति 14 चक्रों के आरएसआई सूचक का उपयोग करके प्रवेश फ़िल्टर करती है। विशेष रूप से, जब आरएसआई 30 से ऊपर होता है, तो ओवरब्रिज की अनुमति दी जाती है, जो गहरे ओवरसोल्ड क्षेत्रों में अंधा प्रवेश से बचने में मदद करता है। कोड में कमोडिटी शर्तों के लिए एक ढांचा बनाए रखा गया है, लेकिन वर्तमान संस्करण मुख्य रूप से ओवरब्रिज पर केंद्रित है।
एटीआर गतिशील क्षतिरणनीतिः 14 चक्रों के एटीआर संकेतक का उपयोग करके गतिशील स्टॉप-लॉस की गणना करें। स्टॉप-लॉस को प्रवेश मूल्य से घटाकर ((एटीआर मूल्य × गुणांक) के रूप में सेट किया गया है, जिसमें एटीआर गुणांक 1.0 को डिफ़ॉल्ट रूप से माना जाता है। यह गतिशील स्टॉप-लॉस तंत्र बाजार की वास्तविक अस्थिरता के आधार पर अनुकूलन करने में सक्षम है, जो उच्च उतार-चढ़ाव के दौरान अधिक आराम से स्टॉप-स्पेस प्रदान करता है और कम उतार-चढ़ाव के दौरान अधिक तंग जोखिम नियंत्रण रखता है।
रिस्क रिटर्न अनुपात: रणनीति ने रिस्क-रिटर्न-रिश्ता (RRR) के आधार पर स्टॉप सेटिंग को डिफ़ॉल्ट रूप से 1.5 पर लागू किया। स्टॉप को प्रवेश मूल्य के रूप में गणना की जाती है और प्रवेश मूल्य-स्टॉप मूल्य (आरआरआर) × रिस्क-रिटर्न-रिश्ता (आरआरआर), यह सुनिश्चित करने के लिए कि प्रत्येक व्यापार के लिए संभावित रिटर्न जोखिम के लिए उचित अनुपात में है।
ट्रेंड ट्रैकिंग और फ़िल्टरिंग: रणनीति न केवल ट्रेंड में बदलाव को पकड़ने के लिए चलती औसत का उपयोग करती है, बल्कि आरएसआई संकेतक के माध्यम से फ़िल्टरिंग भी करती है, जो गलत संकेतों को कम करती है और प्रवेश की गुणवत्ता में सुधार करती है।
गतिशील जोखिम प्रबंधनएटीआर-आधारित स्टॉप मैकेनिज्म इस रणनीति की एक बड़ी विशेषता है, जो बाजार की अस्थिरता की गतिशीलता के अनुसार स्टॉप डिस्टेंस को समायोजित करने में सक्षम है, जो उच्च अस्थिरता वाले वातावरण में फिक्स्ड स्टॉप के समय से पहले ट्रिगर होने की समस्या से बचाता है, जबकि कम अस्थिरता वाले समय में उचित जोखिम नियंत्रण बनाए रखता है।
रिस्क रिटर्न को अनुकूलित करेंयह रणनीति यह सुनिश्चित करती है कि प्रत्येक ट्रेड के लिए संभावित रिटर्न जोखिम के अनुपात में है, जो कि जीत की उच्च दर के बावजूद, दीर्घकालिक पूंजी वृद्धि में योगदान देता है।
लेनदेन दृश्यरणनीतियों में स्टॉप-लॉस और स्टॉप-ऑफ की वास्तविक समय मैपिंग और ट्रेडों को पूरा करने के लिए मार्कर की सुविधा शामिल है, जो रणनीतियों के संचालन की दृश्यता को काफी बढ़ाता है, जिससे विश्लेषण और रणनीति अनुकूलन की सुविधा मिलती है।
धन प्रबंधन एकीकरणरणनीतिः डिफ़ॉल्ट रूप से खाते के कुल मूल्य का एक प्रतिशत का उपयोग करें स्थिति प्रबंधन के लिए, यह एक निश्चित संख्या की तुलना में अधिक लचीला है, जो स्वचालित रूप से खाते के आकार में परिवर्तन के साथ व्यापार के आकार को समायोजित कर सकता है।
प्रवृत्ति उलट जोखिम: हालांकि रणनीति चलती औसत की पहचान के लिए प्रवृत्ति का उपयोग करती है, लेकिन जब बाजार में अचानक उलटफेर होता है, तो यह अधिक नुकसान का कारण बन सकता है। समाधान यह है कि अधिक संवेदनशील अल्पकालिक संकेतकों को सहायक पुष्टि के रूप में पेश करने पर विचार किया जाए, या RSI थ्रेशोल्ड को उलटफेर के प्रति संवेदनशीलता बढ़ाने के लिए समायोजित किया जाए।
पैरामीटर संवेदनशीलता: रणनीति के महत्वपूर्ण पैरामीटर जैसे कि SMA चक्र, RSI थ्रेड, ATR गुणांक, आदि के प्रदर्शन पर महत्वपूर्ण प्रभाव पड़ता है। विभिन्न बाजार स्थितियों में विभिन्न पैरामीटर सेटिंग्स की आवश्यकता हो सकती है, इसलिए सबसे अच्छा पैरामीटर संयोजन खोजने के लिए पर्याप्त ऐतिहासिक रीट्रेसिंग की आवश्यकता होती है।
एकतरफा बाजार की सीमाएं: वर्तमान संस्करण मुख्य रूप से बहु-रणनीति पर केंद्रित है, जो लगातार गिरते बाजारों में खराब प्रदर्शन कर सकता है। समाधान कोड में डीकोडिंग शर्तों को सक्रिय करना है, जिससे द्वि-दिशात्मक व्यापार क्षमता प्राप्त हो।
बहुत बड़ा जोखिमएटीआर मूल्य में अत्यधिक उतार-चढ़ाव के दौरान भारी वृद्धि हो सकती है, जिससे स्टॉप लॉस की दूरी बहुत बड़ी हो जाती है और संभावित नुकसान बढ़ जाता है। एटीआर गुणकों के लिए एक सीमा निर्धारित करने पर विचार किया जा सकता है, या फिक्स्ड एंट्री स्टॉप और एटीआर डायनामिक स्टॉप के संयोजन पर विचार किया जा सकता है।
लेनदेन की अनिश्चितताचूंकि रणनीति मध्यम और दीर्घकालिक चलती औसत के क्रॉसिंग पर निर्भर करती है, इसलिए ट्रेडिंग सिग्नल की कमी हो सकती है, जिससे फंड उपयोगिता की दक्षता प्रभावित होती है। समाधान यह है कि एक पूरक के रूप में अल्पकालिक ट्रेडिंग सिग्नल को जोड़ने पर विचार किया जाए, या एक प्रमुख प्रवृत्ति की स्थापना के बाद अधिक अल्पकालिक संकेतकों का उपयोग करके स्थिति बढ़ाई जाए।
बहु-समय-सीमा विश्लेषण एकीकरण: वर्तमान रणनीति केवल एक समय सीमा पर चलती है, बहु-समय सीमा विश्लेषण को एकीकृत करने पर विचार किया जा सकता है, उदाहरण के लिए, मुख्य प्रवृत्ति की दिशा की पुष्टि करने के लिए एक उच्च समय सीमा का उपयोग करना, फिर प्रवेश बिंदुओं को खोजने के लिए एक कम समय सीमा पर प्रवेश करना, प्रवेश की सटीकता में सुधार करना।
रिक्त स्थान तर्क की पूर्णता: रणनीति में लॉजिक को सक्रिय और अनुकूलित करें ताकि यह गिरावट वाले बाजारों में समान रूप से प्रभावी हो सके। इसके लिए आरएसआई थ्रेशोल्ड को समायोजित करने की आवश्यकता हो सकती है (जैसे कि आरएसआई 70 से अधिक होने पर) और विभिन्न बाजार दिशाओं के लिए अलग-अलग पैरामीटर सेट करें।
आदान-प्रदान सूचकांक: लेन-देन के संकेतकों को प्रवेश के तर्क में एकीकृत करने पर विचार करें, केवल लेन-देन की पुष्टि के मामले में ट्रेडिंग सिग्नल निष्पादित करें, जो झूठे ब्रेक के नुकसान को कम करने में मदद करता है।
ऑप्टिमाइज़ेशन के लिए रणनीतिवर्तमान रणनीति में स्टॉप सेट करने की तुलना में निश्चित रिस्क रिटर्न का उपयोग किया जाता है, इसलिए आंशिक लाभ लॉक करने या स्टॉप को ट्रैक करने पर विचार किया जा सकता है ताकि रुझान जारी रहने पर अधिक लाभ प्राप्त किया जा सके।
ट्रेडिंग समय फ़िल्टर जोड़ेंसमय फ़िल्टर जोड़ा जा सकता है, जो कम तरलता या उच्च अनिश्चितता के समय में व्यापार से बचने के लिए स्पष्ट समय विशेषताओं वाले बाजारों के लिए है।
पैरामीटर अनुकूलन तंत्र: ऐतिहासिक उतार-चढ़ाव या अन्य बाजार विशेषताओं के आधार पर पैरामीटर के अनुकूलन के लिए एक अनुकूलन तंत्र को लागू करना, जिससे रणनीति बाजार की स्थिति में परिवर्तन के अनुसार पैरामीटर को स्वचालित रूप से अनुकूलित कर सके।
यह चलती औसत क्रॉसिंग, आरएसआई फ़िल्टरिंग और एटीआर डायनामिक स्टॉप लॉस पर आधारित एक मात्रात्मक रणनीति है, जो एक संतुलित ट्रेडिंग फ्रेमवर्क प्रदान करती है, जो विशेष रूप से मध्यम और दीर्घकालिक रुझान ट्रेडिंग के लिए उपयुक्त है। इसका मुख्य लाभ तकनीकी संकेतक विश्लेषण को गतिशील जोखिम प्रबंधन के साथ निर्बाध रूप से जोड़ने में है, जो रुझान में बदलाव को पकड़ने और बाजार की अस्थिरता के आधार पर जोखिम को समायोजित करने में सक्षम है।
हालांकि रणनीतियों में पैरामीटर संवेदनशीलता और एकतरफा व्यापार की सीमाएं हैं, लेकिन इन समस्याओं को प्रभावी रूप से सुधारा जा सकता है, जैसे कि बहु-समय सीमा विश्लेषण, शून्य तर्क में सुधार, या लेन-देन की पुष्टि की शुरूआत आदि। विशेष रूप से, गतिशील पैरामीटर समायोजन तंत्र को अधिक जटिल स्टॉपबॉक्स रणनीतियों के साथ जोड़कर, रणनीतियों की स्थिरता और लाभप्रदता को और बढ़ाने की उम्मीद है।
मध्यम और दीर्घकालिक रुझान ट्रेडिंग की तलाश करने वाले और जोखिम नियंत्रण पर ध्यान देने वाले व्यापारियों के लिए, यह रणनीति एक ठोस प्रारंभिक बिंदु प्रदान करती है, जिसमें व्यक्तिगत समायोजन और निरंतर अनुकूलन के माध्यम से एक कुशल व्यापार प्रणाली बनने की क्षमता है।
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=6
strategy(title=" VS-NTC> NASDQ100 Long MA+RSI+ATR", shorttitle="VS-NTC> Long NASDQ100 MA+RSI+ATR", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// ————— Inputs —————
smaLenShort = input.int(50, title="Short SMA Length")
smaLenLong = input.int(200, title="Long SMA Length")
rsiLen = input.int(14, title="RSI Length")
atrPeriod = input.int(14, title="ATR Period")
atrMult = input.float(1.0, title="Stop-Loss ATR Multiplier", step=0.1)
rrRatio = input.float(1.5, title="Risk-to-Reward Ratio", step=0.1)
// ————— Indicator Calculations —————
smaShort = ta.sma(close, smaLenShort)
smaLong = ta.sma(close, smaLenLong)
rsiVal = ta.rsi(close, rsiLen)
atrVal = ta.atr(atrPeriod)
// ————— Entry Conditions —————
// Long Condition: 50SMA > 200SMA and RSI < 70
longCondition = (smaShort < smaLong) and (rsiVal > 30)
// Short Condition: 50SMA < 200SMA and RSI > 30 (example: avoid oversold)
// Or use RSI > 70 to short if the market is overbought.
shortCondition = false
// shortCondition = (smaShort > smaLong) and (rsiVal < 35)
// ————— Entry Logic —————
if longCondition
strategy.entry(id="Long", direction=strategy.long)
if shortCondition
strategy.entry(id="Short", direction=strategy.short)
// ————— Stop-Loss & Take-Profit Calculation —————
var float stopPrice = na
var float takeProfitPrice = na
// If we have a position open, we determine SL & TP differently for Long or Short.
if strategy.position_size > 0
// We are in a Long trade
stopPrice := strategy.position_avg_price - (atrVal * atrMult)
takeProfitPrice := strategy.position_avg_price + ((strategy.position_avg_price - stopPrice) * rrRatio)
strategy.exit("Exit SL/TP", stop=stopPrice, limit=takeProfitPrice)
else if strategy.position_size < 0
// We are in a Short trade
stopPrice := strategy.position_avg_price + (atrVal * atrMult)
// For short, the distance from entry to stop is (stopPrice - entry)
// So the take-profit is entry - that same distance times RR
takeProfitPrice := strategy.position_avg_price - ((stopPrice - strategy.position_avg_price) * rrRatio)
strategy.exit("Exit SL/TP", stop=stopPrice, limit=takeProfitPrice)
else
// No open position → reset plots to na
stopPrice := na
takeProfitPrice := na
// ————— Plot the Planned Stop-Loss & Take-Profit —————
plot(stopPrice, title="Stop Loss", color=color.red, linewidth=2)
plot(takeProfitPrice, title="Take Profit", color=color.green, linewidth=2)
// ————— Label Each Closed Trade (Wins & Losses) —————
var int lastClosedTradeCount = 0
currentClosedCount = strategy.closedtrades
// If there's at least one new closed trade, label it
if currentClosedCount > lastClosedTradeCount
newTradeIndex = currentClosedCount - 1
tradeProfit = strategy.closedtrades.profit(newTradeIndex)
exitBarIndex = strategy.closedtrades.exit_bar_index(newTradeIndex)
exitPrice = strategy.closedtrades.exit_price(newTradeIndex)
// Win label if profit > 0
if tradeProfit > 0
labelText = "Win: " + str.tostring(tradeProfit)
labelStyle = label.style_label_up
labelColor = color.new(color.green, 0)
label.new(exitBarIndex, exitPrice, text=labelText, style=labelStyle, color=labelColor, size=size.tiny)
// Loss label if profit < 0
if tradeProfit < 0
labelText = "Loss: " + str.tostring(tradeProfit)
labelStyle = label.style_label_down
labelColor = color.new(color.red, 0)
label.new(exitBarIndex, exitPrice, text=labelText, style=labelStyle, color=labelColor, size=size.tiny)
lastClosedTradeCount := currentClosedCount