तेज़ और धीमी गति से चलने वाली औसत की क्रॉसओवर रणनीति पर आधारित


निर्माण तिथि: 2023-11-22 16:38:26 अंत में संशोधित करें: 2023-11-22 16:38:26
कॉपी: 0 क्लिक्स: 622
1
ध्यान केंद्रित करना
1617
समर्थक

तेज़ और धीमी गति से चलने वाली औसत की क्रॉसओवर रणनीति पर आधारित

अवलोकन

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

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

इस रणनीति का मूल तर्क यह है कि बाजार की प्रवृत्ति का न्याय करने के लिए चलती औसत का उपयोग किया जाता है। चलती औसत के पास अपने आप में हिलने वाले यादृच्छिक बाजार के शोर का कार्य होता है। तेजी से चलती औसत मूल्य परिवर्तनों के लिए तेजी से प्रतिक्रिया करता है, जो नवीनतम रुझानों को दर्शाता है; जबकि धीमी गति से चलती औसत नवीनतम मूल्य परिवर्तनों के लिए धीमी गति से प्रतिक्रिया करता है, जो मध्यम और दीर्घकालिक रुझानों का प्रतिनिधित्व करता है। धीमी गति से चलने वाली लाइन को तोड़ने का मतलब है कि अल्पकालिक रुझान मध्यम और दीर्घकालिक के अनुरूप हैं, इसलिए एक व्यापारिक संकेत उत्पन्न करते हैं।

विशेष रूप से, यह रणनीति सबसे पहले एक तेजी से चलती औसत sig1 और एक धीमी गति से चलती औसत sig2 को परिभाषित करती है। और फिर sig1 और sig2 के क्रॉस-रिलेशन के आधार पर एक खरीद और बिक्री बिंदु को निर्धारित करती है। जब sig1 नीचे से sig2 को तोड़ता है तो एक खरीद संकेत longCondition उत्पन्न होता है; जब sig1 ऊपर से नीचे से sig2 को तोड़ता है तो एक बेचने का संकेत shortCondition उत्पन्न होता है। रणनीति तब खरीद और बेचने की शर्तों को पूरा करने के लिए ऑर्डर करती है और स्टॉप-लॉस और स्टॉप-आउट ऑर्डर सेट करती है।

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

इस रणनीति के फायदे स्पष्ट हैंः

  1. सरल तर्क, समझने में आसान और लागू करने में आसान
  2. विभिन्न बाजार स्थितियों के लिए लचीला पैरामीटर समायोजन
  3. स्थिरता बढ़ाने के लिए अन्य संकेतकों के साथ फ़िल्टर सिग्नल के संयोजन
  4. अच्छा प्रदर्शन, उदाहरण के लिए EMA15-EMA30 युग्म EURCHF डेटलाइन डेटा पर 83% तक जीतता है

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

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

  1. whipsaw प्रभाव गंभीर है, और रोकथाम सेटिंग्स महत्वपूर्ण हैं
  2. बड़े शेयरों के झटके का असर नहीं हुआ
  3. विभिन्न किस्मों और चक्रों के लिए समायोजन के लिए बार-बार परीक्षण की आवश्यकता होती है

अनुकूलन उपाय:

  1. अन्य मापदंडों को जोड़ें, whipsaw से बचें
  2. विभिन्न किस्मों के लिए चलती औसत के प्रकार और मापदंडों को समायोजित करना
  3. स्टॉप लॉस स्टॉप अनुपात का अनुकूलन करें, जोखिम को नियंत्रित करें

संक्षेप

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

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

//@version=3
// Simple yet effective MA cross strategy.
// You'll have to tune the parameters to get an optimal win ratio.
// If JPY or XAU or any other currency with pips defined as the 
// second decimal digit are involved, do not forget to set the respective flag on.
//
// Created by vitelot/yanez/Vts, who's the same fellow with different user names
// December 2018 -- Merry Xmas
//
strategy("MA cross strategy Vts", overlay=true, initial_capital=1000, currency="EUR", pyramiding=0)

yr  = input(2016, title="Starting year to analyse")
src = input(close, title="Source")
maType = input( defval="EMA", title="MA Type", options=["SMA","EMA","HMA","McG","WMA"])
//
isJPY = input(false, title="Is JPY or XAU involved?") // JPY and Gold have the pips defined as the 2 decimal digit

maPar1 = input(26, minval=1, title="MA fast period")
maPar2 = input(51, minval=2, title="MA slow period")

atrPar = input(14,minval=1, title="ATR period")
atrMulSL = input(1.5, title="SL ATR multiplicator")
atrMulTP = input(1.0, title="TP ATR multiplicator")

hma(sig, n) => // Hull moving average definition
    wma( 2*wma(sig,round(n/2))-wma(sig,n), round(sqrt(n)))

mcg(sig,length) => // Mc Ginley MA definition
    mg = 0.0
    mg := na(mg[1]) ? ema(sig, length) : mg[1] + (sig - mg[1]) / (length * pow(sig/mg[1], 4))

ma(t,sig,len) =>
    if t =="SMA"
        sma(sig,len)
    else
        if t == "EMA"
            ema(sig,len)
        else
            if t == "HMA"
                hma(sig,len)
            else
                if t == "McG" // Mc Ginley
                    mcg(sig,len)
                else
                    wma(sig,len)
                    
        
sig1 = ma(maType, src, maPar1)
sig2 = ma(maType, src, maPar2)

tickFactor = isJPY? 1e3: 1e5
sl = atrMulSL*atr(atrPar)*tickFactor
tp = atrMulTP*atr(atrPar)*tickFactor

plot(sig1, color=aqua, title="MA1", linewidth=2)
plot(sig2, color=orange, title="MA2", linewidth=2)

longCondition = crossunder(sig2, sig1) and year>=yr // change the >= to == if you like exact years not a range
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1) // exit trade when SL and TP are hit
    strategy.exit("Exit Long", "Long", loss=sl, profit=tp)
if (crossunder(sig1, sig2)) // or when the short condition is met
    strategy.close("Long")

shortCondition = crossover(sig2,sig1) and year>=yr // change the >= to == if you like exact years not a range
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=1)
    strategy.exit("Exit Short", "Short", loss=sl, profit=tp)
if (crossover(sig1,sig2))
    strategy.close("Short")