दोहरी चलती औसत सुपरट्रेंड मात्रात्मक ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-05 12:05:10
टैगः

img

अवलोकन

यह रणनीति व्यापार संकेतों का निर्माण करने के लिए दोहरी चलती औसत और सुपरट्रेंड संकेतकों को जोड़ती है और उच्च लाभप्रदता प्राप्त करने के लिए विभिन्न चक्र संयोजनों के माध्यम से प्रवृत्ति की दिशा का न्याय करती है।

सिद्धांत

यह रणनीति बाजार में प्रवेश के समय को निर्धारित करने के लिए एमएसीडी और सुपरट्रेंड संकेतकों का उपयोग करती है। एमएसीडी दोहरी चलती औसत अल्पकालिक प्रवृत्ति दिशा निर्धारित करती है, जबकि सुपरट्रेंड मध्यम से दीर्घकालिक प्रवृत्ति दिशा निर्धारित करती है।

जब तेज रेखा धीमी रेखा को ऊपर की ओर तोड़ती है, तो यह एक खरीद संकेत है। इस समय, यदि मध्यम से दीर्घकालिक सुपरट्रेंड भी एक ऊपर की प्रवृत्ति है, तो अंतिम खरीद संकेत लंबा होने के लिए उत्पन्न होता है। इसके विपरीत, जब तेज रेखा धीमी रेखा को नीचे की ओर तोड़ती है, तो यह एक बिक्री संकेत है। इस समय, यदि मध्यम से दीर्घकालिक सुपरट्रेंड भी एक नीचे की प्रवृत्ति है, तो अंतिम बिक्री संकेत छोटा होने के लिए उत्पन्न होता है।

स्टॉप लॉस और टेक प्रॉफिट को निश्चित मानों पर सेट किया जाता है।

लाभ विश्लेषण

इस रणनीति का सबसे बड़ा लाभ यह है कि यह बाजार की दिशा निर्धारित करने के लिए डबल मूविंग एवरेज और सुपरट्रेंड दोनों का उपयोग करता है, निर्णय दक्षता में काफी सुधार करने और झूठे ब्रेकआउट से बचने के लिए मध्यम अल्पकालिक और मध्यम दीर्घकालिक विश्लेषणों को जोड़ता है। इसके अलावा, सुपरट्रेंड बाजार के उतार-चढ़ाव के अनुसार मापदंडों को समायोजित कर सकता है ताकि बाजार के वातावरण की एक विस्तृत श्रृंखला के अनुकूल हो सके।

जोखिम विश्लेषण

इस रणनीति का मुख्य जोखिम यह है कि फिक्स्ड स्टॉप लॉस और टेक प्रॉफिट सेटिंग्स अधिक लाभ के अवसरों को याद कर सकती हैं। इसके अलावा, यदि मध्यम-अल्पकालिक और मध्यम-लंबी अवधि के निर्णयों के बीच विचलन है, तो रणनीति ठीक से काम नहीं करेगी। हम फ्लोटिंग स्टॉप लॉस और टेक प्रॉफिट सेटिंग्स के माध्यम से इस जोखिम को कम कर सकते हैं।

अनुकूलन दिशाएँ

इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः

  1. स्टॉप लॉस और टेक प्रॉफिट के लिए गतिशील समायोजन तंत्र को बढ़ाएं और बाजार की अस्थिरता और रुझानों के अनुसार स्टॉप लॉस और टेक प्रॉफिट सेट करें।

  2. लक्ष्य विविधता के लिए अधिक उपयुक्त चलती औसत मापदंडों को खोजने के लिए एमएसीडी मापदंडों का अनुकूलन करें।

  3. बाजार के प्रति अपनी संवेदनशीलता को समायोजित करने के लिए सुपरट्रेंड मापदंडों को अनुकूलित करें।

  4. अधिक आयामी संकेत प्रदान करने और रणनीति प्रदर्शन में सुधार करने के लिए निर्णय के लिए अन्य संकेतकों को बढ़ाएं।

सारांश

यह रणनीति सफलतापूर्वक दोहरी चलती औसत और सुपरट्रेंड संकेतकों के लाभों को जोड़ती है। विभिन्न चक्र निर्णयों को जोड़कर, यह गलत संकेतों को फ़िल्टर करता है और ट्रेंडिंग बाजारों में बेहतर रिटर्न प्राप्त करता है। हम पैरामीटर अनुकूलन और तंत्र समायोजन के माध्यम से इस रणनीति की स्थिरता और लाभप्रदता को और बढ़ा सकते हैं।


/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

strategy("Super Trend 2 MACD", overlay=true)
// MACD input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)

Macd = fastMA - slowMA
Signal = sma(Macd, signalLength)


res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=request.security(syminfo.tickerid,res,close)

TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 and Macd > Signal
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 and Macd < Signal

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)


अधिक