गति गतिशील औसत क्रॉसओवर ट्रेंड रणनीति का पालन करना

लेखक:चाओझांग, दिनांक: 2023-10-24 12:31:44
टैगः

img

अवलोकन

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

रणनीति तर्क

इस रणनीति का मूल तर्क एमए क्रॉसओवर से ट्रेंड सिग्नल और गति संकेतक से ट्रेंड रिवर्स सिग्नल पर आधारित है।

  1. त्वरित एमए मूल्य1 (5-अवधि एचएमए) और धीमी एमए मूल्य2 (7-अवधि एचएमए) की गणना करें।

  2. मूल्य1 मूल्य2 से ऊपर पार करने के साथ स्वर्ण क्रॉस एक लंबा संकेत उत्पन्न करता है। मूल्य1 मूल्य2 से नीचे पार करने के साथ मृत्यु क्रॉस एक छोटा संकेत उत्पन्न करता है। यह एमए का सामान्य उपयोग है।

  3. लंबे संकेत के बाद, यदि मूल्य1 की गति roc1 फिर से दिखाई देती है, तो प्रवृत्ति को जारी माना जाता है और लंबी स्थिति को बनाए रखा जाएगा।

  4. जब गति roc1 कम हो जाती है, तो इसे प्रवृत्ति उलट माना जाता है और मौजूदा स्थिति बंद हो जाएगी।

  5. ADX थ्रेशोल्ड को ट्रेंडिंग स्टेट में नहीं होने पर गलत सिग्नल से बचने के लिए इनपुट करें। सिग्नल तभी उत्पन्न होते हैं जब ADX थ्रेशोल्ड से ऊपर होता है।

लाभ विश्लेषण

सरल एमए रणनीतियों की तुलना में, इस रणनीति का सबसे बड़ा लाभ गति संकेतक की शुरूआत है ताकि तेजी से और सटीक रूप से रुझान उलटने का पता लगाया जा सके। विशिष्ट लाभः

  1. एमए खुद मूल्य परिवर्तनों में देरी करते हैं, जबकि गति संकेतक समय पर स्टॉप लॉस या रिवर्स ट्रेडिंग के लिए रिवर्स सिग्नल को जल्दी से पकड़ सकते हैं।

  2. गति के आधार पर रिवर्स सिग्नल अधिक विश्वसनीय होते हैं, ट्रेंड ट्रेडिंग के दौरान अनावश्यक ओपन/क्लोज ऑर्डर से बचते हैं।

  3. एडीएक्स गैर-ट्रेंडिंग बाजारों में गलत संकेतों से बचता है, रणनीति को उच्च जीत की संभावना वाले रुझानों पर अधिक केंद्रित रखता है।

  4. तर्क सरल और समझने में आसान है, अल्गो ट्रेडिंग के शुरुआती लोगों के लिए उपयुक्त है।

  5. विभिन्न बाजारों के लिए एमए अवधि, गति मापदंड आदि को समायोजित करके अनुकूलन के लिए बड़ा स्थान।

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

इस रणनीति के मुख्य जोखिम निम्नलिखित से आते हैंः

  1. एमए की विलंबित प्रकृति, जो विलंबित संकेतों का कारण बन सकती है, सर्वोत्तम प्रवेश बिंदुओं को याद करती है।

  2. अनावश्यक प्रविष्टियों या निकासों का कारण बनने वाले झूठे ब्रेकआउट। पैरामीटर या अतिरिक्त फ़िल्टर के आगे अनुकूलन की आवश्यकता है।

  3. रुझान उलट का पता लगाना गति पर निर्भर करता है, जो बाजार में भारी उतार-चढ़ाव के दौरान अस्थिर हो सकता है।

  4. ADX रुझानों और समेकन का पता लगाने में अपूर्ण है। अनुचित सीमा सेटिंग्स समस्याओं का कारण बन सकती हैं।

  5. ट्रेडिंग लागतों पर विचार नहीं किया गया है। वास्तविक ट्रेडिंग में लागू होने पर उचित स्टॉप लॉस सेट किया जाना चाहिए।

अनुकूलन दिशाएँ

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

  1. बेहतर चिकनाई प्रभाव के लिए अन्य प्रकार के एमए की कोशिश करें या एमए मापदंडों को समायोजित करें।

  2. मूल्य उलटों को पकड़ने के लिए उच्च संवेदनशीलता के लिए गति संकेतक की लंबाई को अनुकूलित करें।

  3. अल्पकालिक उतार-चढ़ाव से गुमराह होने से बचने के लिए गति उलटा होने पर मूल्य फ़िल्टर सेट करें।

  4. विभिन्न ADX स्तरों पर अलग-अलग मापदंडों का उपयोग करके ADX उपयोग को बढ़ाएं।

  5. सिग्नल की गुणवत्ता में सुधार और झूठे ब्रेकआउट को फ़िल्टर करने के लिए वॉल्यूम इंडिकेटर आदि की शुरूआत करें।

  6. एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस तंत्र जोड़ें। उचित लाभ लक्ष्य और स्टॉप लॉस निर्धारित करने के लिए यथार्थवादी व्यापार लागतों का मूल्यांकन करें।

सारांश

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


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy with MA Turning Point Exits", overlay=true)
src = input(open, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(5, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA"])

ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA"])

adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
adxthreshold = input(20, title="ADX threshold")

dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	
sig = adx(dilen, adxlen)

//study("Average Directional Index", shorttitle="ADX", format=format.price, precision=2, resolution="")

//plot(sig, color=color.red, title="ADX")

f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))
price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        f_hma(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    if (type2 == "EMA")
        ema(price, ma2)
    else
        f_hma(price, ma2)

//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


//longCondition = price1> price2
longCondition = price1> price2 and sig > adxthreshold
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = price1 < price2 and sig > adxthreshold
if (shortCondition)
    strategy.entry("Short", strategy.short)

lookback1 = input(1, "Lookback 1")
roc1 = roc(price1, lookback1)

ma1up = false
ma1down = false
ma2up = false
ma2down = false

ma1up := nz(ma1up[1])
ma1down := nz(ma1down[1])
ma2up := nz(ma2up[1])
ma2down := nz(ma2down[1])

trendStrength1 = input(2, title="Minimum slope magnitude * 100", type=float) * 0.01

if crossover(roc1, trendStrength1)
    ma1up := true
    ma1down := false
    
if crossunder(roc1, -trendStrength1) 
    ma1up := false
    ma1down := true

shortexitCondition = ma1up and ma1down[1] and sig > adxthreshold
if (shortexitCondition)
    strategy.close("Short")

longexitCondition = ma1down and ma1up[1] and sig > adxthreshold
if (longexitCondition)
    strategy.close("Long")
    
    



अधिक