मूविंग एवरेज रिवर्सल रणनीति


निर्माण तिथि: 2023-12-21 15:45:23 अंत में संशोधित करें: 2023-12-21 15:45:23
कॉपी: 1 क्लिक्स: 477
1
ध्यान केंद्रित करना
1219
समर्थक

मूविंग एवरेज रिवर्सल रणनीति

इस रणनीति को Mean Reversion Reverse Strategy Based on Moving Average नाम दिया गया है, जिसका मुख्य विचार यह है कि महत्वपूर्ण औसत रेखा के नीचे जाने के बाद खरीदें और पूर्वनिर्धारित लक्ष्य लाभ प्राप्त करने के बाद रुकें।

इस रणनीति का मुख्य सिद्धांत है कि अल्पकालिक औसत रेखा के वापसी का उपयोग करने के लिए, बंद करने की स्थिति में पलटाव के अवसरों को पकड़ने. विशेष रूप से, जब कीमतों में गिरावट की लंबी अवधि के औसत (जैसे 20 दिन की रेखा, 50 दिन की रेखा आदि) के बाद एक मजबूत ओवरबॉलिंग संकेत दिखाया गया है, बाजार में उतार-चढ़ाव की औसत प्रतिगमन की विशेषता के कारण, कीमतों में अक्सर एक निश्चित मात्रा में पलटाव उत्पन्न होता है. इस समय यदि कम अवधि की औसत रेखा (जैसे 10 दिन की रेखा) में एक ऊपर की ओर वापसी का संकेत है, तो यह एक बेहतर खरीदने का समय है। इस रणनीति के अनुरूप है, जब बंद करने की स्थिति 20 दिन की रेखा से नीचे और 50 दिन की रेखा से ऊपर है, तो शॉर्ट लाइन वापसी का उपयोग करें, और अपने उछाल को पकड़ें।

इस रणनीति का विशिष्ट क्रय तर्क यह हैः कीमत 20 दिन की रेखा के नीचे गिरने के बाद 1 हाथ खरीदती है, 50 दिन की रेखा के नीचे गिरने के बाद 1 हाथ बढ़ाती है, 100 दिन की रेखा के नीचे गिरने के बाद 1 हाथ बढ़ाती है, 200 दिन की रेखा के नीचे गिरने के बाद 1 हाथ बढ़ाती है, और 4 हाथ अधिक करती है। पूर्व निर्धारित स्टॉप लक्ष्य को पूरा करने के बाद स्थिति को साफ़ करें। साथ ही समय और स्टॉप शर्तें निर्धारित की गईं।

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

  1. औसत रेखा की प्रतिगामी विशेषताओं का उपयोग करके अल्पकालिक पलटाव के अवसरों की पहचान करना
  2. एक-बिट जोखिम को कम करने के लिए बैचों का निर्माण
  3. स्टॉप कंडीशंस सेट करें, मुनाफे को लॉक करें
  4. खोलने की कीमतों और पिछले निचले स्तरों का उपयोग करके फ़िल्टर करें और झूठे ब्रेक से बचें

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

  1. लंबे समय तक रखने पर, रिवर्स जोखिम हो सकता है। यदि बाजार में गिरावट जारी रहती है, तो नुकसान और भी बढ़ सकता है
  2. औसत रेखा संकेतों में गलतियां हो सकती हैं, जिससे नुकसान हो सकता है
  3. सेट स्टॉप लक्ष्य पूरा नहीं किया जा सकता है, पूरी तरह से या आंशिक रूप से स्टॉप नहीं किया जा सकता है

अनुकूलन दिशा

  1. विभिन्न पैरामीटर सेटिंग्स के तहत रिटर्न और स्थिरता का परीक्षण कर सकते हैं
  2. अन्य संकेतकों जैसे MACD, KD आदि के संयोजन पर विचार करें
  3. अपनी ट्रेडिंग शैली के लिए विभिन्न किस्मों की विशेषताओं के आधार पर चयनित औसत चक्र
  4. गतिशील रूप से अनुकूलित पैरामीटर के लिए मशीन लर्निंग एल्गोरिदम का परिचय

संक्षेप

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

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

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)