
ट्रेंड ट्रैकिंग मोबाइल स्टॉप रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो ट्रेंड-फैकिंग इंडिकेटर और मोबाइल स्टॉप तंत्र को जोड़ती है। यह रणनीति सुपरट्रेंड इंडिकेटर का उपयोग कर वर्तमान ट्रेंड की दिशा का आकलन करती है और ट्रेंड ट्रैकिंग और जोखिम नियंत्रण के लिए मोबाइल स्टॉप लाइन का उपयोग करके वास्तविक समय में मूल्य परिवर्तन को ट्रैक करती है।
यह रणनीति पहले सुपरट्रेंड सूचक की गणना करती है ताकि यह पता लगाया जा सके कि क्या वर्तमान में एक उछाल या गिरावट की प्रवृत्ति है। सुपरट्रेंड सूचक एटीआर सूचक और केंद्र बिंदुओं के साथ मिलकर ट्रेंड की दिशा को अधिक सटीक रूप से निर्धारित कर सकता है। यदि सुपरट्रेंड सूचक को उछाल के रूप में माना जाता है, तो यह एक खरीद संकेत उत्पन्न करता है; यदि यह गिरावट की प्रवृत्ति है, तो यह एक बिक्री संकेत उत्पन्न करता है।
खरीद संकेत उत्पन्न करने पर, रणनीति अधिक स्थिति खोलती है; साथ ही, यह वास्तविक समय में एक चलती रोकथाम लाइन की गणना करती है, जो कि एटीआर सूचक के मूल्य को घटाकर केंद्र बिंदु के रूप में गणना की जाती है। जब तक कि वर्तमान समापन मूल्य उस रोकथाम लाइन से अधिक है, रोकथाम लाइन वास्तविक समय में स्थानांतरित हो जाती है, हमेशा उचित रोकथाम स्थिति में रहती है। यदि कीमत रोकथाम लाइन से नीचे जाती है, तो स्टॉप लॉस को समतल किया जाता है।
यह रणनीति एडीएक्स और आरएसआई संकेतक के संयोजन के साथ अनुचित व्यापारिक संकेतों को फ़िल्टर करती है। केवल जब एडीएक्स सेट थ्रेशोल्ड से बड़ा होता है और आरएसआई उचित स्तर पर होता है, तो सुपरट्रेंडिंग संकेतक के संकेतों का पालन किया जाता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह प्रवृत्ति की दिशा को अच्छी तरह से पकड़ने और प्रवृत्ति को ट्रैक करने में सक्षम है। सुपर ट्रेंडिंग सूचक सरल चलती औसत की तुलना में अधिक सटीक है, और टर्निंग पॉइंट को जल्दी से निर्धारित कर सकता है। साथ ही, मोबाइल स्टॉप लॉस तंत्र स्वचालित रूप से स्टॉप लॉस को समायोजित कर सकता है, अधिकतम लाभ को लॉक कर सकता है, और जोखिम को प्रभावी ढंग से नियंत्रित कर सकता है।
इसके अलावा, यह रणनीति एडीएक्स और आरएसआई सूचकांकों को शामिल करती है, जिससे बाजार में अधिक उतार-चढ़ाव के दौरान गलत ट्रेडों से बचा जा सकता है। एडीएक्स सूचकांक पर्याप्त प्रवृत्ति की गारंटी देता है, आरएसआई सूचकांक ओवरबॉय ओवरसोल की घटना से बचता है, जिससे लाभ की संभावना बढ़ जाती है।
इस रणनीति का सबसे बड़ा जोखिम यह है कि प्रवृत्ति गलत है, सुपरट्रेंड संकेतक गलत संकेत भेजने की संभावना है। हालांकि सुपरट्रेंड संकेतक सरल चलती औसत की तुलना में बेहतर है, लेकिन जटिल परिस्थितियों में भी गलतफहमी अपरिहार्य है। इस मामले में, नुकसान को नियंत्रित करने के लिए रोकथाम तंत्र पर भरोसा करना आवश्यक है।
इसके अलावा, रणनीति पैरामीटर की गलत सेटिंग कुछ जोखिम भी लाती है। उदाहरण के लिए, एटीआर पैरामीटर के अधिवेशन ने रोकथाम को बहुत अधिक कठोरता से समायोजित किया है। एडीएक्स और आरएसआई के लिए पैरामीटर की गलत सेटिंग से ट्रेडिंग के अवसरों को याद किया जा सकता है या गलत ट्रेडों की संभावना बढ़ सकती है।
इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः
अन्य रुझान निर्धारकों जैसे कि डीएमआई, केडीजे आदि को सुपरट्रेंड निर्धारकों के साथ संयोजन करके एक बहु-कारक कंक्रीट निर्धारक प्रणाली बनाने की कोशिश करना, निर्णय की सटीकता में सुधार कर सकता है।
एटीआर, एडीएक्स, आरएसआई, आदि को वास्तविक समय के बाजार के आधार पर समायोजित करने के लिए मशीन सीखने पर आधारित अनुकूलन पैरामीटर अनुकूलन मॉड्यूल को जोड़ना।
भावनात्मक संकेतकों जैसे वैकल्पिक आरएसआई संकेतकों को पेश करना, संकेतों को फ़िल्टर करना। आरएसआई संकेतक जटिल स्थितियों का न्याय करने के लिए आदर्श नहीं हैं, जबकि सामाजिक भावनात्मक संकेतक बाजार की गर्मी को बेहतर तरीके से निर्धारित कर सकते हैं।
स्थिति प्रबंधन मॉड्यूल जोड़ें, स्टॉपलॉस लाइन वर्तमान मूल्य से दूरी के आधार पर स्थिति आकार को गतिशील रूप से समायोजित करें। स्टॉपलॉस लाइन से जितनी दूर, उतनी ही अधिक स्थिति बढ़ाएं, लाभ कमाने के लिए।
ट्रेंड ट्रैकिंग मोबाइल स्टॉप रणनीति व्यापक रूप से प्रवृत्ति विश्लेषण, मोबाइल स्टॉप और बहु-कारक फ़िल्टरिंग जैसी विधियों का उपयोग करती है, जो प्रवृत्ति को पकड़ने के साथ-साथ जोखिम को सख्ती से नियंत्रित करने के लिए एक परिपक्व मात्रात्मक रणनीति है। इस रणनीति में अनुकूलन के लिए बहुत जगह है और इसे और अधिक जटिल बाजार के वातावरण के अनुकूल बनाने के लिए आगे की जांच के लायक है।
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bendre ADX Sup Trend", overlay = true)
///////////////////////////
// SuperTrend + Pivot Point
//////////////////////////
src = input(close, title="EMA Source")
PPprd = input(defval = 2, title="Pivot Point Period")
AtrFactor=input(defval = 2, title = "ATR Factor")
AtrPd=input(defval = 18, title = "ATR Period")
StartDate = input(timestamp("1 Dec 2022"), title="Start Date")
EndDate = input(timestamp("12 Jan 2023"), title="End Date")
var float ph = na
var float pl = na
ph := ta.pivothigh(PPprd, PPprd)
pl :=ta.pivotlow(PPprd, PPprd)
float center = na
center := center[1]
// float lastpp = ph ? ph : pl ? pl : 0.0
float lastpp = na(ph) ? na(pl) ? na : pl : ph
if lastpp > 0
if na(center)
center := lastpp
else
center := (center * 2 + lastpp) / 3
Up = center - (AtrFactor * ta.atr(AtrPd))
Dn = center + (AtrFactor * ta.atr(AtrPd))
var float TUp = na
var float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown
// Lines
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend")
bsignalSSPP = close > Trailingsl
ssignalSSPP = close < Trailingsl
///////
// ADX
//////
lenADX = 14
th = 14
TrueRange = math.max(math.max(high-low, math.abs(high-nz(close[1]))), math.abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? math.max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? math.max(nz(low[1])-low, 0): 0
SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/lenADX) + TrueRange
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/lenADX) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/lenADX) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = math.abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = ta.sma(DX, lenADX)
//////
// MA
/////
lenMA = 21
srcMA = input(close, title="Source")
// offsetMA = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
offsetMA = input(0, title="Offset")
outMA = ta.sma(srcMA, lenMA)
//
// RSI
//
length = input( 14 )
overSold = input( 30 )
overBought = input( 65 )
price = close
vrsi = ta.rsi(price, length)
// Buy - Sell Entries
buy = bsignalSSPP and outMA < close and ADX > th
sell = ssignalSSPP
if (buy and vrsi > overBought)
// .order // Tuned version
strategy.entry("Buy", strategy.long)
// strategy.close("Sell", "close Sell")
if (sell) and (strategy.position_size > 0)
// strategy.entry("Sell", strategy.short)
strategy.close("Buy", "Close Buy")
// if(sell and vrsi < overSold )
// strategy.entry("Sell", strategy.short)
// if(buy) and (strategy.position_size > 0)
// strategy.close("Sell", "close Sell")