डबल एमए क्रॉसओवर ट्रेंड फॉलोइंग रणनीति


निर्माण तिथि: 2023-12-21 16:10:22 अंत में संशोधित करें: 2023-12-21 16:10:22
कॉपी: 1 क्लिक्स: 611
1
ध्यान केंद्रित करना
1623
समर्थक

डबल एमए क्रॉसओवर ट्रेंड फॉलोइंग रणनीति

अवलोकन

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

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

  1. एक त्वरित अवधि के लिए n दिनों के लिए औसत ईएमए को अल्पकालिक औसत के रूप में गणना करें;
  2. धीमी गति के दौरान m दिनों के लिए ईएमए औसत को दीर्घकालिक औसत के रूप में गणना करें;
  3. जब दीर्घकालिक औसत नीचे से ऊपर की ओर टूटता है, तो अधिक करें; जब ऊपर से नीचे की ओर टूटता है, तो कम करें;
  4. बराबरी की स्थितिः रिवर्स ब्रेक (यदि आप कई बार तोड़ते हैं, तो रिवर्स ब्रेक बराबरी का है) ।
  5. स्टॉप लॉस, स्टॉप स्टॉप, और स्टॉप लॉस ट्रैकिंग जैसे तरीकों से जोखिम का प्रबंधन करना

श्रेष्ठता विश्लेषण

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

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

  1. एक-तरफा रणनीति झूठी घुसपैठ के लिए अतिसंवेदनशील है और इसे आसानी से रोक लिया जा सकता है।
  2. अनुचित पैरामीटर सेट करने से लेनदेन की आवृत्ति, लेनदेन की लागत और स्लाइड पॉइंट हानि बढ़ सकती है।
  3. रणनीति अपने आप में एक रुझान मोड़ की पहचान नहीं कर सकती है, इसे अन्य संकेतकों के साथ संयोजन में किया जाना चाहिए।
  4. इस प्रकार, यह संकेत देता है कि यह एक व्यापारिक संकेत है, लेकिन वास्तविक लाभप्रदता में कम है।
  5. विभिन्न नस्लों और व्यापारिक परिस्थितियों के लिए पैरामीटर को अनुकूलित करने की आवश्यकता होती है।

जोखिम को निम्न तरीकों से कम किया जा सकता हैः

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

अनुकूलन दिशा

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

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

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Strategy Code Example", shorttitle = "Strategy Code Example", overlay = true)

// Revision:        1
// Author:          @JayRogers
//
// *** THIS IS JUST AN EXAMPLE OF STRATEGY RISK MANAGEMENT CODE IMPLEMENTATION ***

// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 14, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open, title = "Slow MA Source")
maSlowLength   = input(defval = 21, title = "Slow MA Period", minval = 1)

// === STRATEGY RELATED INPUTS ===
tradeInvert     = input(defval = false, title = "Invert Trade Direction?")
// the risk management inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 200, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 200, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)

// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = red, linewidth = 2, style = line, transp = 50)

// === LOGIC ===
// is fast ma above slow ma?
aboveBelow = maFast >= maSlow ? true : false
// are we inverting our trade direction?
tradeDirection = tradeInvert ? aboveBelow ? false : true : aboveBelow ? true : false

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => not tradeDirection[1] and tradeDirection // functions can be used to wrap up and work out complex conditions
exitLong() => tradeDirection[1] and not tradeDirection
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
strategy.close(id = "Long", when = exitLong()) // ...and when to get out
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => tradeDirection[1] and not tradeDirection
exitShort() => not tradeDirection[1] and tradeDirection
strategy.entry(id = "Short", long = false, when = enterShort())
strategy.close(id = "Short", when = exitShort())

// === STRATEGY RISK MANAGEMENT EXECUTION ===
// finally, make use of all the earlier values we got prepped
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)