मूविंग एवरेज क्रॉसओवर रणनीति

SMA MA
निर्माण तिथि: 2024-06-03 11:25:43 अंत में संशोधित करें: 2024-06-03 11:25:43
कॉपी: 0 क्लिक्स: 643
1
ध्यान केंद्रित करना
1617
समर्थक

मूविंग एवरेज क्रॉसओवर रणनीति

अवलोकन

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

रणनीति सिद्धांत

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

रणनीतिक लाभ

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

रणनीतिक जोखिम

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

रणनीति अनुकूलन दिशा

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

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © syam-mohan-vs @ T7 - wwww.t7wealth.com www.t7trade.com
//This is an educational code done to describe the fundemantals of pine scritpting language and integration with Indian discount broker Dhan. This strategy is not tested or recommended for live trading. 

//@version=5
strategy("Pine & Dhan - Moving Average Crossover Strategy", overlay=true)

//Remove excess signals
exrem(condition1, condition2) =>
    temp = false
    temp := na(temp[1]) ? false : not temp[1] and condition1 ? true : temp[1] and condition2 ? false : temp[1]
    ta.change(temp) == true ? true : false

// Define MA period
ma_period = input(20, title = "MA Length")

// Define target and stop loss levels
target_percentage = input.float(title="Target Profit (%)", defval=2.0)
stop_loss_percentage = input.float(title="Stop Loss (%)", defval=1.0)

// Calculate the MA
ma = ta.sma(close, ma_period)

// Entry conditions
long_entry = close >= ma
short_entry = close < ma

// Calculate target and stop loss prices
target_price = long_entry ? strategy.position_avg_price + (close * (target_percentage / 100)) : strategy.position_avg_price - (close * (target_percentage / 100)) 
stop_loss_price = short_entry ? strategy.position_avg_price + (close * (stop_loss_percentage/ 100)) : strategy.position_avg_price - (close * (stop_loss_percentage / 100)) 

long_entry := exrem(long_entry,short_entry)
short_entry := exrem(short_entry,long_entry)

// Plot the MA
plot(ma, color=color.blue, linewidth=2, title="MA")

// Plot the entry and exit signals
plotshape(long_entry, style=shape.arrowup, color=color.green, size=size.small,location = location.belowbar)
plotshape(short_entry, style=shape.arrowdown, color=color.red, size=size.small,location = location.abovebar)

//Find absolute value of positon size to exit position properly
size = math.abs(strategy.position_size)

//Replace these four JSON strings with those generated from user Dhan account
long_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"B","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"I","sort_order":"1","price":"0"}]}'
long_exit_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"S","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"M","sort_order":"1","price":"0"}]}'
short_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"S","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"M","sort_order":"1","price":"0"}]}'
short_exit_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"B","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"M","sort_order":"1","price":"0"}]}'

// Submit orders based on signals
if(strategy.position_size == 0)
    if long_entry 
        strategy.order("Long", strategy.long,alert_message=long_msg)          

    if short_entry
        strategy.order("Short", strategy.short,alert_message=short_msg)        
    
if(strategy.position_size > 0)
    
    if(short_entry)
        strategy.order("Short", strategy.short, qty = size, alert_message=short_msg)     
    else
        strategy.exit("Long Exit", from_entry="Long", qty = size, stop=stop_loss_price, limit= target_price, alert_message=long_exit_msg)

if(strategy.position_size < 0)
    
    if(long_entry)
        strategy.order("Long", strategy.long, qty = size, alert_message=long_msg)    
    else           
        strategy.exit("Short Exit", from_entry="Short", qty = size, stop=stop_loss_price, limit= target_price, alert_message=short_exit_msg)