एटीआर और एमए संयोजन पर आधारित सुपरट्रेंड ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-01 16:40:27
टैगः

img

अवलोकन

सुपरट्रेंड ट्रेडिंग रणनीति औसत सच्ची सीमा (एटीआर) और चलती औसत (एमए) पर आधारित एक प्रवृत्ति-अनुसरण रणनीति है। इसमें मध्यवर्ती प्रवृत्ति दिशा की पहचान करने और प्रवृत्ति परिवर्तनों के आधार पर ट्रेडिंग संकेत उत्पन्न करने के लिए प्रवृत्ति ट्रैकिंग और ब्रेकआउट ट्रेडिंग दोनों के फायदे शामिल हैं।

इस रणनीति के पीछे मुख्य विचार यह है कि जब कीमत सुपरट्रेंड चैनल के माध्यम से टूटती है, तो यह एक रुझान उलट का संकेत देती है। यह लाभ और नियंत्रण जोखिमों में लॉक करने के लिए स्टॉप लॉस और लाभ स्तर भी निर्धारित करता है।

यह रणनीति कैसे काम करती है

सुपरट्रेंड की गणना में कई चरण शामिल हैंः

  1. एटीआर की गणना करें। एटीआर एक समय अवधि में औसत अस्थिरता को दर्शाता है।
  2. उच्चतम उच्च और निम्नतम निम्न के आधार पर मध्य रेखा की गणना करें। मध्य रेखा की गणना इस प्रकार की जाती हैः (उच्चतम उच्च + निम्नतम निम्न) /2
  3. व्यापारी द्वारा निर्धारित एटीआर और एटीआर गुणक के आधार पर ऊपरी और निचले चैनल की गणना की जाती है। ऊपरी चैनल की गणना निम्नानुसार की जाती हैः मिडलाइन + (एटीआर × गुणक) । निचले चैनल की गणना निम्नानुसार की जाती हैः मिडलाइन - (एटीआर × गुणक) ।
  4. प्रवृत्ति की दिशा निर्धारित करने के लिए ऊपर/नीचे चैनल के साथ समापन मूल्य की तुलना करें। यदि बंद ऊपरी चैनल से ऊपर है, तो प्रवृत्ति ऊपर है। यदि बंद निचले चैनल से नीचे है, तो प्रवृत्ति नीचे है।
  5. चैनल के ऊपर या नीचे एक ब्रेकआउट रिवर्स ट्रेडिंग सिग्नल उत्पन्न करता है। उदाहरण के लिए, ऊपरी चैनल के ऊपर एक ब्रेकआउट लंबी प्रविष्टि का संकेत देता है जबकि निचले चैनल के नीचे एक ब्रेकआउट छोटी प्रविष्टि का संकेत देता है।

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

ताकत

सुपरट्रेंड रणनीति में निम्नलिखित ताकतें हैंः

1. मध्यवर्ती रुझान को ट्रैक करें

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

2. समय पर उलटापन का पता लगाएं

चैनल से मूल्य ब्रेकआउट तेजी से ट्रेडिंग सिग्नल उत्पन्न करते हैं ताकि समय पर प्रमुख रुझान उलटने पर कब्जा किया जा सके। इससे उचित रीपोजिशनिंग की अनुमति मिलती है ताकि अवरोधन से बचा जा सके।

3. स्टॉप लॉस और ले लाभ

यह रणनीति पूर्वनिर्धारित स्टॉप लॉस सेट करती है और जोखिम नियंत्रण के साथ स्वतः बाहर निकलने के लिए लाभ स्तर लेती है। इससे अत्यधिक स्टॉप लॉस का जोखिम काफी कम हो जाता है और बेहतर ट्रेंड फॉलो करने की अनुमति मिलती है।

4. लागू करने में आसान

यह रणनीति मुख्य रूप से एमए और एटीआर जैसे बुनियादी संकेतकों का उपयोग करती है। इससे इसे समझने और लाइव ट्रेडिंग के लिए लागू करना काफी आसान हो जाता है।

**5. उच्च पूंजी दक्षता **

मध्यवर्ती रुझानों को ट्रैक करके और व्यक्तिगत फिसलन को नियंत्रित करके, सुपरट्रेंड रणनीति समग्र उच्च पूंजी दक्षता प्रदान करती है।

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

सुपरट्रेंड रणनीति में कुछ संभावित कमजोरियां भी हैंः

1. बाजार में निम्न प्रदर्शन

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

2. पैरामीटर अनुकूलन के लिए संवेदनशील

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

3. देरी की समस्याएं हो सकती हैं

सुपरट्रेंड चैनल की गणना में कुछ समस्याएं हो सकती हैं, जिससे समय से पहले संकेत उत्पन्न होता है।

4. सख्त स्टॉप लॉस प्रबंधन की आवश्यकता

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

सुधार के क्षेत्र

इस सुपरट्रेंड रणनीति को अनुकूलित करने के लिए और अधिक जगह हैः

1. कई एटीआर अवधि को मिलाएं

विभिन्न अवधियों जैसे 10 दिन और 20 दिन की अवधि में एटीआर रीडिंग को मिलाकर एक समग्र संकेतक बनाया जाता है, जो संवेदनशीलता और पिछड़े मुद्दों में सुधार करने में मदद करता है।

2. स्टॉप लॉस मॉड्यूल जोड़ें

अधिक परिष्कृत स्टॉप लॉस तंत्र जैसे ट्रिपल स्टॉप लॉस, अस्थिरता स्टॉप लॉस और अनुक्रमिक स्टॉप लॉस को जोड़ने से जोखिम नियंत्रण और ड्रॉडाउन में कमी को मजबूत किया जा सकता है।

3. पैरामीटर अनुकूलन

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

4. मशीन लर्निंग मॉडल को एकीकृत करें

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

निष्कर्ष

सुपरट्रेंड ट्रेडिंग रणनीति एमए और एटीआर संकेतकों का उपयोग करके मध्यवर्ती प्रवृत्ति दिशा की पहचान करती है, और स्वचालित स्टॉप लॉस / टेक प्रॉफिट कार्यान्वयन के साथ प्रवृत्ति उलट के आसपास व्यापार प्रवेश और निकास संकेत उत्पन्न करती है। जबकि प्रमुख प्रवृत्तियों को बनाए रखते हुए, यह कुछ उलट अवसरों को भी पकड़ती है। मुख्य फायदे मध्यवर्ती प्रवृत्ति ट्रैकिंग, प्रवृत्ति उलट पहचान और स्टॉप लॉस / टेक प्रॉफिट के माध्यम से जोखिम नियंत्रण में निहित हैं।

हालांकि, अपर्याप्त रेंज-बाउंड मार्केट कैप्चर और लेगिंग समस्याओं के संबंध में कुछ कमियां भी मौजूद हैं। कंपोजिट एटीआर का उपयोग करना, स्टॉप लॉस मॉड्यूल, ट्यूनिंग मापदंडों को मजबूत करना और मशीन लर्निंग मॉडल को एकीकृत करना सहित कई आयामों में आगे के अनुकूलन का पता लगाया जा सकता है। ये सुधार सुपरट्रेंड रणनीति की स्थिरता और दक्षता में सुधार करेंगे।


/*backtest
start: 2022-11-30 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:",  defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth   = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2039, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10)) 
Atr = atrValue
if(decimals == 5)
    Atr := atrValue * 10000
if(decimals == 4)
    Atr := atrValue * 1000
if(decimals == 3)
    Atr := atrValue * 100
if(decimals == 2)
    Atr := atrValue * 10


//VJ2 Supertrend

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))

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

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

linecolor = Trend == 1 ? green : red

plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "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)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

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




//Strategy 
Trend_buy = Trend == 1 
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1 
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na

strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)

strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)

bought = strategy.position_size > strategy.position_size 
sold = strategy.position_size < strategy.position_size 

longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0) 
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0) 
longProfit = factor_profit * longStop 
shortProfit = factor_profit * shortStop 


if(decimals == 5) 
    longStop := longStop *100000 
    longProfit := longProfit *100000 
if(decimals == 4) 
    longStop := longStop * 10000 
    longProfit := longProfit * 10000 
if(decimals == 3) 
    longStop := longStop * 1000 
    longProfit := longProfit * 1000 
if(decimals == 2) 
    longStop := longStop * 100 
    longProfit := longProfit *100 
if(decimals == 5) 
    shortStop := shortStop * 100000 
    shortProfit := shortProfit * 100000 
if(decimals == 4) 
    shortStop := shortStop * 10000 
    shortProfit := shortProfit * 10000 
if(decimals == 3) 
    shortStop := shortStop * 1000 
    shortProfit := shortProfit * 1000 
if(decimals == 2) 
    shortStop := shortStop * 100 
    shortProfit := shortProfit * 100 

strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit) 
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit) 


अधिक