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

लेखक:चाओझांग, दिनांक: 2023-11-27 15:32:57
टैगः

img

अवलोकन

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

रणनीति तर्क

रणनीति पाइन लिपि में लिखी गई है. यह पहले दो चलती औसत, नामित p1 और p2 को परिभाषित करता है, जिसमें इनपुट के माध्यम से अनुकूलन योग्य प्रकार, लंबाई और मूल्य स्रोत होता है. यहाँ p1 छोटी अवधि MA का प्रतिनिधित्व करता है और p2 लंबी अवधि MA का प्रतिनिधित्व करता है.

क्रॉसओवर और क्रॉसअंडर फ़ंक्शन का उपयोग दो एमए के बीच क्रॉसओवर का पता लगाने के लिए किया जाता है। जब p1 नीचे से p2 के ऊपर से गुजरता है, तो एक खरीद संकेत उत्पन्न होता है। जब p1 ऊपर से p2 के नीचे से गुजरता है, तो एक बिक्री संकेत उत्पन्न होता है।

ट्रेडों को निष्पादित करने के लिए, सिग्नल ट्रिगर होने पर strategy.entry का उपयोग करके रणनीति लंबी या छोटी स्थिति में प्रवेश करती है। यदि shortOnly इनपुट सक्षम है, तो केवल बिक्री संकेतों का व्यापार किया जाएगा।

लाभ विश्लेषण

इस रणनीति के लाभों में निम्नलिखित शामिल हैंः

  1. स्पष्ट नियम, समझने और लागू करने में आसान
  2. एमए क्रॉसओवर एक क्लासिक और व्यापक रूप से ज्ञात ट्रेडिंग संकेत है
  3. अत्यधिक अनुकूलन योग्य एमए प्रकार, लंबाई और मूल्य स्रोत
  4. केवल कम ट्रेडिंग आवृत्ति के संकेत बेच सकते हैं

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

इस रणनीति के साथ कुछ जोखिम भी हैंः

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

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

बढ़ोतरी के अवसर

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

  1. क्रॉसओवर संकेतों को अधिक विश्वसनीय बनाने के लिए मूल्य स्रोत के रूप में वीडब्ल्यूएपी या विशिष्ट मूल्य का उपयोग करें।

  2. अल्पकालिक गलत क्रॉसिंग से बचने के लिए एक वैधता अवधि जोड़ें।

  3. बाजार की अस्थिरता के अनुसार अधिकतम स्वीकार्य हानि के आधार पर एटीआर स्टॉप को शामिल करें।

  4. इष्टतम संयोजन खोजने के लिए वक्र फिटिंग के माध्यम से पैरामीटर अनुकूलन।

  5. केवल उच्च समय सीमा के रुझानों की दिशा में संकेतों पर विचार करें।

सारांश

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


/*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)


अधिक