यह रणनीति विभिन्न पैरामीटर सेटिंग्स के साथ दो चलती औसत के क्रॉसओवर के आधार पर खरीद और बिक्री संकेत उत्पन्न करती है। जब छोटी अवधि चलती औसत नीचे से लंबी अवधि चलती औसत के ऊपर पार करती है, तो एक खरीद संकेत उत्पन्न होता है। जब छोटी अवधि चलती औसत ऊपर से लंबी अवधि चलती औसत से नीचे पार करती है, तो एक बिक्री संकेत उत्पन्न होता है।
रणनीति पाइन लिपि में लिखी गई है. यह पहले दो चलती औसत, नामित p1 और p2 को परिभाषित करता है, जिसमें इनपुट के माध्यम से अनुकूलन योग्य प्रकार, लंबाई और मूल्य स्रोत होता है. यहाँ p1 छोटी अवधि MA का प्रतिनिधित्व करता है और p2 लंबी अवधि MA का प्रतिनिधित्व करता है.
क्रॉसओवर और क्रॉसअंडर फ़ंक्शन का उपयोग दो एमए के बीच क्रॉसओवर का पता लगाने के लिए किया जाता है। जब p1 नीचे से p2 के ऊपर से गुजरता है, तो एक खरीद संकेत उत्पन्न होता है। जब p1 ऊपर से p2 के नीचे से गुजरता है, तो एक बिक्री संकेत उत्पन्न होता है।
ट्रेडों को निष्पादित करने के लिए, सिग्नल ट्रिगर होने पर strategy.entry का उपयोग करके रणनीति लंबी या छोटी स्थिति में प्रवेश करती है। यदि shortOnly इनपुट सक्षम है, तो केवल बिक्री संकेतों का व्यापार किया जाएगा।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
इस रणनीति के साथ कुछ जोखिम भी हैंः
एमए लंबाई को समायोजित करके, फिल्टर स्थितियों आदि को जोड़कर जोखिमों को कम किया जा सकता है। बाजार पूर्वाग्रह निर्धारित करने के लिए रुझान संकेतक भी जोड़े जा सकते हैं।
इस रणनीति को निम्नलिखित पहलुओं से बढ़ाया जा सकता हैः
क्रॉसओवर संकेतों को अधिक विश्वसनीय बनाने के लिए मूल्य स्रोत के रूप में वीडब्ल्यूएपी या विशिष्ट मूल्य का उपयोग करें।
अल्पकालिक गलत क्रॉसिंग से बचने के लिए एक वैधता अवधि जोड़ें।
बाजार की अस्थिरता के अनुसार अधिकतम स्वीकार्य हानि के आधार पर एटीआर स्टॉप को शामिल करें।
इष्टतम संयोजन खोजने के लिए वक्र फिटिंग के माध्यम से पैरामीटर अनुकूलन।
केवल उच्च समय सीमा के रुझानों की दिशा में संकेतों पर विचार करें।
डबल एमए क्रॉसओवर रणनीति को समझना और लागू करना आसान है, दो एमए क्रॉसओवर से उच्च अनुकूलन क्षमता के साथ व्यापार संकेत उत्पन्न करना। लेकिन यह चंचल बाजारों के दौरान अत्यधिक अमान्य संकेत भी उत्पन्न कर सकता है। पैरामीटर और तर्क अनुकूलन के माध्यम से जोखिमों को कम किया जा सकता है, जिसमें व्यापक सुधार के अवसर हैं, आगे के शोध के लायक हैं।
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © RafaelPiccolo //@version=4 strategy("Double MA Cross", overlay=true) type1 = input("SMA", "MA Type 1", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"]) len1 = input(10, minval=1, title="Length 1") src1 = input(close, "Source 1", type=input.source) type2 = input("SMA", "MA Type 2", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"]) len2 = input(50, minval=2, title="Length 2") src2 = input(close, "Source 2", type=input.source) shortOnly = input(false, "Short only") tema(src, len)=> ema1 = ema(src, len) ema2 = ema(ema1, len) ema3 = ema(ema2, len) return = 3 * (ema1 - ema2) + ema3 getPoint(type, len, src)=> return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len) p1 = getPoint(type1, len1, src1) p2 = getPoint(type2, len2, src2) shortCondition = crossunder(p1, p2) longCondition = crossover(p1, p2) if (shortCondition) strategy.entry("Short", strategy.short) if (longCondition) if (shortOnly) strategy.close("Short") else strategy.entry("Long", strategy.long) plot(p1, "MA 1", p1 < p2 ? color.red : color.green) plot(p2, "MA 2", color.blue)