मूविंग एवरेज और MACD संकेतकों पर आधारित मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-11-15 15:58:19 अंत में संशोधित करें: 2023-11-15 15:58:19
कॉपी: 1 क्लिक्स: 846
1
ध्यान केंद्रित करना
1617
समर्थक

मूविंग एवरेज और MACD संकेतकों पर आधारित मात्रात्मक ट्रेडिंग रणनीति

अवलोकन

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

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

इस रणनीति में मुख्य रूप से निम्नलिखित घटक शामिल हैंः

  1. तेज ZLSMA औसत और धीमी ZLSMA औसतः विभिन्न चक्रों की ZLSMA औसत की तुलना करके, समग्र प्रवृत्ति की दिशा का न्याय करें। तेज रेखा 32 चक्र ZLSMA से बनी है, धीमी रेखा 400 चक्र ZLSMA से बनी है। जब तेज रेखा पर धीमी रेखा से गुजरती है, तो अधिक रूपों को देखें, इसके विपरीत।

  2. MACD सूचकः 12 वीं ईएमए को 12 वीं ईएमए से घटाकर 26 वीं ईएमए को अलग-थलग करने के लिए एमएसीडी प्राप्त करें, और फिर 9 वीं ईएमए को सिग्नल लाइन प्राप्त करें। जब एमएसीडी पर सिग्नल लाइन को खरीदने के लिए संकेत दिया जाता है, तो इसे बेचने के लिए संकेत दिया जाता है।

  3. ट्रेडिंग सिग्नलः केवल जब ZLSMA रूप और MACD सिग्नल समोच्च होते हैं, तो खरीद या बेचने का संकेत दिया जाता है। यानी, जब एक बहुमुखी प्रवृत्ति और एक MACD गोल्डफ़ॉर्क खरीदते हैं, तो एक खाली प्रवृत्ति और एक MACD डेडफ़ॉर्क बेचते हैं।

  4. स्टॉप लॉस स्टॉपः इस रणनीति को अभी तक स्टॉप लॉजिक में शामिल नहीं किया गया है और आगे के अनुकूलन की आवश्यकता है।

उपरोक्त संयोजन औसत रेखा का उपयोग करते हैं और बड़े रुझानों का आकलन करते हैं, MACD प्रवेश के समय का आकलन करता है, और अल्पकालिक बाजार के शोर से भ्रमित होने से बचने के लिए झूठे ब्रेकआउट को प्रभावी ढंग से फ़िल्टर कर सकता है।

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

इस रणनीति के मुख्य फायदे हैंः

  1. प्रवृत्ति पकड़नाः विभिन्न चक्रों के औसत रेखा संयोजनों के माध्यम से प्रवृत्ति की दिशा का आकलन करें, जो मध्यम और लंबी रेखा प्रवृत्ति को प्रभावी ढंग से पकड़ने में मदद कर सकता है।

  2. फ़िल्टरिंग शोरः एमएसीडी सूचकांक का उपयोग अल्पकालिक बाजार के शोर को फ़िल्टर करने के लिए किया जाता है ताकि छोटे पैमाने पर उतार-चढ़ाव से भ्रामक रूप से बचा जा सके।

  3. पैरामीटर समायोज्यः औसत रेखा चक्र और MACD पैरामीटर अनुकूलित किया जा सकता है और विभिन्न बाजारों के लिए अनुकूलित किया जा सकता है।

  4. लागू करने में आसानीः सभी सूचकांक सामान्य रूप से उपयोग किए जाने वाले तकनीकी सूचकांक हैं, संयोजन तर्क सरल और स्पष्ट है, समझने और लागू करने में आसान है।

  5. जोखिम नियंत्रणः एक स्पष्ट स्टॉप-लॉस और स्टॉप-स्टॉप रणनीति के साथ, आप प्रत्येक व्यापार के लिए जोखिम और लाभ अनुपात को नियंत्रित कर सकते हैं।

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

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

  1. महाप्रवृत्ति में गलतफहमीः यदि महाप्रवृत्ति की दिशा में गलतफहमी हो, तो सभी ट्रेडों को खो दिया जा सकता है।

  2. पैरामीटर अनुकूलन अनुचितः औसत रेखा पैरामीटर और MACD पैरामीटर का विस्तृत परीक्षण और अनुकूलन किया जाना चाहिए, अन्यथा यह खराब हो सकता है।

  3. स्टॉप लॉस मैकेनिज्म का अभावः वर्तमान में स्टॉप लॉस मैकेनिज्म नहीं है, जिससे बहुत अधिक नुकसान होने का खतरा है।

  4. लाभ के लिए सीमित स्थानः एक प्रवृत्ति ट्रैकिंग रणनीति के रूप में, प्रत्येक लेनदेन के लिए लाभ के लिए सीमित स्थान है, उच्च लाभ प्राप्त करने के लिए संख्या की आवश्यकता होती है।

  5. अत्यधिक लेनदेन की आवृत्ति: अनुचित पैरामीटर सेटिंग्स के कारण अत्यधिक लेनदेन की आवृत्ति हो सकती है, जिससे लेनदेन की लागत और स्लाइड पॉइंट की लागत बढ़ जाती है।

अनुकूलन दिशा

इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः

  1. स्टॉप लॉस मैकेनिज्म में शामिल होनाः एक उचित स्टॉप लॉस सेट करें, एक एकल लेनदेन के लिए अधिकतम नुकसान को सख्ती से नियंत्रित करें।

  2. ऑप्टिमाइज़ेशन पैरामीटरः औसत रेखा और MACD पैरामीटर का सबसे अच्छा संयोजन ढूंढें।

  3. ट्रेडिंग की आवृत्ति को कम करेंः पैरामीटर को समायोजित करें ताकि यह सुनिश्चित किया जा सके कि ट्रेडिंग सिग्नल केवल जब रुझान स्पष्ट हो।

  4. अन्य कारकों के साथ संयोजनः ट्रेडिंग वॉल्यूम में परिवर्तन जैसे अन्य कारकों को ट्रेंड और सिग्नल की पुष्टि करने के लिए जोड़ा जा सकता है।

  5. प्रवेश समय का अनुकूलन करेंः प्रवेश की सटीकता में सुधार के लिए MACD सूचकांकों के उपयोग को और अनुकूलित करें।

  6. बहु-प्रजाति सार्वभौमिकताः पैरामीटर के अनुकूलन के माध्यम से, रणनीति को विभिन्न नस्लों के लिए व्यापक रूप से लागू किया जा सकता है, जो आवेदन की सीमा को बढ़ाता है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-11-07 00:00:00
end: 2023-11-10 05:00:00
period: 1m
basePeriod: 1m
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/
// © veryfid

//@version=5
strategy("Stratégie ZLSMA Bruno", shorttitle="Stratégie ZLSMA Bruno", overlay=false)

source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")

//res = useCurrentRes ? period : resCustom

fastLength = input(12), 
slowLength=input(26)
signalLength=input(9)

fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)

macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
hist = macd - signal

outMacD =  macd
outSignal = signal
outHist =  hist

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

//plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? color.lime : color.red : color.red
//signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime

circleYPosition = outSignal
 
//plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
//plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
//plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and ta.cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=plot.style_circles, linewidth=4, color=macd_color)
hline(0, '0 Line', linestyle=hline.style_solid, linewidth=2, color=color.white)

// Paramètres de la ZLSMA
length = input(32, title="Longueur")
offset = input(0, title="Décalage")
src = input(close, title="Source")
lsma = ta.linreg(src, length, offset)
lsma2 = ta.linreg(lsma, length, offset)
eq = lsma - lsma2
zlsma = lsma + eq

length_slow = input(400, title="Longueur")
offset_slow = input(0, title="Décalage")
lsma_slow = ta.linreg(src, length_slow, offset_slow)
lsma2_slow = ta.linreg(lsma_slow, length_slow, offset_slow)
eq_slow = lsma_slow - lsma2_slow
zlsma_slow = lsma_slow + eq_slow

// Paramètres de la sensibilité
sensitivity = input(0.5, title="Sensibilité")

// Règles de trading
longCondition = zlsma < zlsma_slow and  zlsma_slow < zlsma_slow[1] and zlsma > zlsma[1] and ta.cross(outMacD, outSignal) and  macd_color == color.lime//ta.crossover(zlsma, close) and ta.crossover(zlsma, zlsma[1]) // Croisement vers le haut
shortCondition = zlsma > zlsma_slow and  zlsma_slow > zlsma_slow[1] and zlsma < zlsma[1] and ta.cross(outMacD, outSignal) and  macd_color == color.lime   //ta.crossunder(zlsma, close) and ta.crossunder(zlsma, zlsma[1]) // Croisement vers le bas

// Entrée en position
strategy.entry("Achat", strategy.long, when=longCondition)
strategy.entry("Vente", strategy.short, when=shortCondition)
botifySignalZLSMA = longCondition ? 1 : shortCondition ? -1 : 0
plot(botifySignalZLSMA, title='Botify_signal', display=display.none)
// Sortie de position
strategy.close("Achat", when=ta.crossunder(zlsma, close)) // Close the "Achat" position
strategy.close("Vente", when=ta.crossover(zlsma, close)) // Close the "Vente" position


// Tracé de la courbe ZLSMA
plot(zlsma, color=color.yellow, linewidth=3)
plot(zlsma_slow, color=color.red, linewidth=3)