
यह रणनीति तेजी से ईएमए लाइन और धीमी गति से ईएमए लाइन के क्रॉसिंग को खरीदने और बेचने के संकेत के रूप में उपयोग करती है, जिससे औसत रेखा के क्रॉसिंग के आधार पर स्वचालित व्यापार किया जा सकता है। तेजी से ईएमए लाइन मूल्य परिवर्तन को कसती है, धीमी गति से ईएमए लाइन मूल्य परिवर्तन को चिकनी करती है। जब तेजी से ईएमए लाइन धीमी गति से ईएमए लाइन को पार करती है, तो एक खरीद संकेत उत्पन्न होता है; जब तेजी से ईएमए लाइन धीमी गति से ईएमए लाइन को तोड़ती है, तो एक बिक्री संकेत उत्पन्न होती है। यह रणनीति लचीली है और इसे धीमी गति से ईएमए के मापदंडों को समायोजित करके खरीद और बिक्री संकेतों को अनुकूलित करने के लिए समायोजित किया जा सकता है।
यह रणनीति मुख्य रूप से तेजी से ईएमए और धीमी गति से ईएमए लाइनों की गणना करके और दो समान लाइनों के बीच संबंधों की तुलना करके एक व्यापार संकेत उत्पन्न करती है।
सबसे पहले, इनपुट पैरामीटर में फास्ट ईएमए की अवधि को ईएमए फास्ट 1 पर सेट करें ताकि फास्ट ईएमए मूल्य परिवर्तन को चिपका सके। साथ ही धीमी ईएमए की अवधि सेट करें, ईएमए स्लोबॉय को खरीद संकेत उत्पन्न करने के लिए और ईएमए स्लोसेल को बेचने के लिए।
फिर, इनपुट की अवधि के आधार पर, तेजी से ईएमए और धीमी गति से ईएमए की गणना की जाती है। तेजी से ईएमए की अवधि 1 है, कीमतों का पालन करें; धीमी गति से ईएमए एक समायोज्य पैरामीटर है, कीमतों के डेटा को चिकना करें।
इसके बाद, तेजी से ईएमए और धीमी गति से ईएमए के आकार के संबंध की तुलना करें, क्रॉसिंग की स्थिति का न्याय करें। यदि तेजी से ईएमए नीचे से धीमी गति से ईएमए को पार करता है, तो गोल्डन फोर्क उत्पन्न होता है, खरीदारी की स्थिति को पूरा करता है; यदि तेजी से ईएमए ऊपर से धीमी गति से ईएमए को तोड़ता है, तो डेड फोर्क उत्पन्न होता है, बिक्री की स्थिति को पूरा करता है।
अंत में, जब खरीद और बेच की शर्तें पूरी हो जाती हैं, तो ट्रेडों को पूरा करने के लिए संबंधित स्टॉक और स्टॉक निर्देशों को निष्पादित करें। साथ ही, जांचें कि क्या वर्तमान समय रिट्रेसमेंट समय सीमा के भीतर है, ताकि तारीख सीमा से परे गलत ट्रेडों से बचा जा सके।
जोखिम के लिए, निम्नलिखित अनुकूलन उपायों पर विचार किया जा सकता हैः
अन्य संकेतकों के साथ संयोजन में ईएमए क्रॉस सिग्नल को फ़िल्टर करें और गलत सिग्नल से बचें
बाजार में उतार-चढ़ाव के आधार पर ईएमए पैरामीटर को समायोजित करना, ट्रेडिंग की आवृत्ति को कम करना
स्टॉप लॉस और रोकथाम के लिए अधिक विचार, जोखिम नियंत्रण
तेजी से ईएमए के चक्र का अनुकूलन, विशेष बाजार स्थितियों में अधिक उपयुक्त पैरामीटर का उपयोग करना
प्रवृत्ति के बारे में अधिक निर्णय लेने के लिए और अस्थिर बाजारों में ओवर-ट्रेडिंग से बचने के लिए
इस रणनीति को निम्नलिखित दिशाओं में और अधिक अनुकूलित किया जा सकता हैः
विभिन्न एमाफ़ास्ट और एमास्लो पैरामीटरों के माध्यम से, चरणबद्ध अनुकूलन या यादृच्छिक अनुकूलन के तरीकों का उपयोग करके, ऐतिहासिक डेटा रीट्रेसिंग में सबसे अच्छा प्रदर्शन करने वाले पैरामीटर संयोजनों का पता लगाया जा सकता है।
उदाहरण के लिए, MACD, KDJ, और ब्रिन बैंड जैसे संकेतकों के संयोजन से, ईएमए क्रॉसिंग को गलत संकेत देने से बचा जा सकता है।
औसत वास्तविक तरंगों की गणना करें और अन्य संकेतकों का उपयोग करें ताकि आप समझ सकें कि प्रवृत्ति मजबूत या कमजोर है, और बाजार में उतार-चढ़ाव से बचें
नुकसान के जोखिम को नियंत्रित करने के लिए सबसे अच्छा स्टॉपआउट का अध्ययन करें, और लाभ को अधिकतम करने के लिए उचित स्टॉपआउट निर्धारित करें।
न केवल धीमी गति से ईएमए संयोजनों का परीक्षण करें, बल्कि बेहतर पैरामीटर खोजने के लिए दो ईएमए, तीन ईएमए और यहां तक कि बहु ईएमए संयोजनों का भी परीक्षण करें।
अधिक प्रवृत्ति वाले बाजारों के लिए ईएमए चक्र को उचित रूप से तेज किया जा सकता है, जबकि अस्थिर बाजार ईएमए चक्र को धीमा कर सकते हैं।
ईएमए क्रॉसिंग रणनीति की समग्र सोच स्पष्ट और समझने योग्य है, जो परिपक्व तकनीकी संकेतकों का उपयोग करके बिक्री और खरीद का समय निर्धारित करती है। रणनीति अनुकूलन योग्य है, ईएमए मापदंडों को समायोजित करके अनुकूलित की जा सकती है, जिससे विभिन्न बाजार स्थितियों के लिए व्यापार रणनीति बनाई जा सकती है। लेकिन ईएमए सिग्नल में देरी है, सर्वोत्तम पैरामीटर संयोजन खोजने के लिए बार-बार परीक्षण की आवश्यकता होती है। इसके अलावा, जोखिम के लिए अनुकूलन की आवश्यकता होती है, अन्य संकेतकों के साथ संयोजन में सिग्नल सत्यापन, और स्टॉप-लॉस स्टॉप को अनुकूलित करना, जिससे वापसी को कम किया जा सके और लाभप्रदता में सुधार हो सके। यदि परीक्षण को लगातार अनुकूलित किया जाए, तो रणनीति को अच्छा व्यापार प्रदर्शन प्राप्त करने की उम्मीद है।
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(
"EMA Cross Strategy with Custom Buy/Sell Conditions",
overlay=true
)
// INPUT:
// Options to enter fast Exponential Moving Average (EMA) value
emaFast = 1
// Options to enter slow EMAs for buy and sell signals
slowEMABuy = input(title="Slow EMA for Buy Signals", defval=20, minval=1, maxval=9999)
slowEMASell = input(title="Slow EMA for Sell Signals", defval=30, minval=1, maxval=9999)
// Option to select trade directions
tradeDirection = input(title="Trade Direction", options=["Long", "Short", "Both"], defval="Both")
// Options that configure the backtest date range
startDate = input(title="Start Date", type=input.time, defval=timestamp("01 Jan 2018 00:00"))
endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2025 23:59"))
// CALCULATIONS:
// Use a fixed fast EMA of 1 and calculate slow EMAs for buy and sell signals
fastEMA = ema(close, emaFast)
slowEMABuyValue = ema(close, slowEMABuy)
slowEMASellValue = ema(close, slowEMASell)
// PLOT:
// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.orange, linewidth=2)
plot(series=slowEMABuyValue, color=color.blue, linewidth=2, title="Slow EMA for Buy Signals")
plot(series=slowEMASellValue, color=color.red, linewidth=2, title="Slow EMA for Sell Signals")
// CONDITIONS:
// Check if the close time of the current bar falls inside the date range
inDateRange = true
// Translate input into trading conditions for buy and sell signals
buyCondition = crossunder(slowEMABuyValue, fastEMA)
sellCondition = crossover(slowEMASellValue, fastEMA)
// Translate input into overall trading conditions
longOK = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")
// ORDERS:
// Submit entry (or reverse) orders based on buy and sell conditions
if (buyCondition and inDateRange)
strategy.entry("Buy", strategy.long)
if (sellCondition and inDateRange)
strategy.close("Buy")
// Submit exit orders based on opposite trade conditions
if (strategy.position_size > 0 and sellCondition)
strategy.close("Sell")
if (strategy.position_size < 0 and buyCondition)
strategy.close("Sell")