दोहरी चलती औसत रिवर्सल ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-04 16:39:13
टैगः

img

अवलोकन

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

सिद्धांत

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

इसके अतिरिक्त, रणनीति गलत संकेत उत्पन्न करने से बचने के लिए दिशा परिवर्तन और निरंतर वृद्धि / गिरावट निर्धारित करने के लिए शर्तें भी निर्धारित करती है। और यह विभिन्न रंगों में कीमतों के उदय और गिरावट को दर्शाता है। जब कीमतें बढ़ती रहती हैं, तो movavg रेखा हरे रंग में प्रदर्शित होती है, और लाल रंग में जब कीमतें गिरती हैं।

लाभ विश्लेषण

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

प्रतिक्रिया पैरामीटर रणनीति को लचीला और विभिन्न चक्रों और किस्मों के अनुकूल होने की अनुमति देता है। रणनीतिक प्रक्रिया सहज और सरल, समझने और अनुकूलित करने में आसान है।

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

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

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

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

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

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

सारांश

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


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle="MA_color strategy", title="Moving Average Color", overlay=true)

// === INPUTS

ma_type   = input(defval="HullMA", title="MA Type: ", options=["SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "ZEMA", "TMA", "SSMA"])
ma_len    = input(defval=32, title="MA Lenght", minval=1)
ma_src    = input(close, title="MA Source")
reaction  = input(defval=2, title="MA Reaction", minval=1)

// SuperSmoother filter
// © 2013  John F. Ehlers
variant_supersmoother(src,len) =>
    a1 = exp(-1.414*3.14159 / len)
    b1 = 2*a1*cos(1.414*3.14159 / len)
    c2 = b1
    c3 = (-a1)*a1
    c1 = 1 - c2 - c3
    v9 = 0.0
    v9 := c1*(src + nz(src[1])) / 2 + c2*nz(v9[1]) + c3*nz(v9[2])
    v9
    
variant_smoothed(src,len) =>
    v5 = 0.0
    v5 := na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len
    v5

variant_zerolagema(src,len) =>
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    v10 = ema1+(ema1-ema2)
    v10
    
variant_doubleema(src,len) =>
    v2 = ema(src, len)
    v6 = 2 * v2 - ema(v2, len)
    v6

variant_tripleema(src,len) =>
    v2 = ema(src, len)
    v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len)              
    v7
    
variant(type, src, len) =>
    type=="EMA"     ? ema(src,len) : 
      type=="WMA"   ? wma(src,len): 
      type=="VWMA"  ? vwma(src,len) : 
      type=="SMMA"  ? variant_smoothed(src,len) : 
      type=="DEMA"  ? variant_doubleema(src,len): 
      type=="TEMA"  ? variant_tripleema(src,len): 
      type=="HullMA"? wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) :
      type=="SSMA"  ? variant_supersmoother(src,len) : 
      type=="ZEMA"  ? variant_zerolagema(src,len) : 
      type=="TMA"   ? sma(sma(src,len),len) : sma(src,len)


// === Moving Average
ma_series = variant(ma_type,ma_src,ma_len)

direction = 0
direction := rising(ma_series,reaction) ? 1 : falling(ma_series,reaction) ? -1 : nz(direction[1])
change_direction= change(direction,1)
change_direction1= change(direction,1)

pcol = direction>0 ? lime : direction<0 ? red : na
plot(ma_series, color=pcol,style=line,join=true,linewidth=3,transp=10,title="MA PLOT")

/////// Alerts ///////

alertcondition(change_direction,title="Change Direction MA",message="Change Direction MA")


longCondition = direction>0
shortCondition = direction<0
if (longCondition)
    strategy.entry("BUY", strategy.long)
if (shortCondition)
    strategy.entry("SELL", strategy.short)



अधिक