चलती औसत प्रवृत्ति व्यापार रणनीति

लेखक:चाओझांग, दिनांक: 2023-10-09 16:00:02
टैगः

अवलोकन

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

रणनीति तर्क

रणनीति SMA फंक्शन का उपयोग करके लंबाई len के साथ चलती औसत रेखा ma की गणना करती है। फिर यह 3 अतिरिक्त चलती औसत रेखाओं longline1, longline2, longline3 की गणना करती है जो क्रमशः ma के आधार पर -4%, -5%, -6% स्थानांतरित होती हैं।

लंबे सिग्नल जनरेशन के लिए, यदि वर्तमान स्थिति फ्लैट है, तो यह 1 लॉट के साथ लंबे समय तक जाता है जब कीमत लॉन्गलाइन से ऊपर जाती है1. यदि पहले से ही 1 लॉट लंबा है, तो यह 1 और लॉट जोड़ता है जब कीमत लॉन्गलाइन से ऊपर जाती है2. यदि पहले से ही 2 लॉट लंबा है, तो यह 1 और लॉट जोड़ता है जब कीमत लॉन्गलाइन से ऊपर जाती है3. अधिकतम लंबी स्थिति 3 लॉट है।

लघु संकेत उत्पादन के लिए, यदि पहले से ही लंबी है, तो यह सभी लंबी स्थिति से बाहर निकलता है जब कीमत एमए से नीचे जाती है।

चरणबद्ध प्रविष्टि रणनीति को प्रवृत्ति का पालन करने की अनुमति देती है।

लाभ

  • रुझान की दिशा निर्धारित करने के लिए चलती औसत का उपयोग करना बाजार के शोर को फ़िल्टर करता है और स्थिर लाभ की अनुमति देता है
  • चरणबद्ध लंबी/छोटी प्रविष्टियां रुझानों से अधिक लाभ उठा सकती हैं
  • प्रवेश बिंदुओं के रूप में शिफ्ट मूविंग एवरेज का उपयोग करने से रुझानों को बेहतर ढंग से पकड़ लिया जाता है
  • अपेक्षाकृत कम लाभ, अधिकतम लाभ 20% के आसपास नियंत्रित

जोखिम

  • शुद्ध प्रवृत्ति के बाद की रणनीति सीमा-बंद बाजारों के दौरान चुस्त होती है
  • चलती औसत से पीछे रहने वाले संकेत ट्रेंड टर्निंग पॉइंट्स को मिस कर सकते हैं
  • चरणबद्ध लंबी प्रविष्टियां उच्च कीमतों का पीछा कर सकती हैं और जोखिम बढ़ा सकती हैं
  • कोई स्टॉप लॉस तंत्र अचानक घटनाओं से बड़े नुकसान का कारण नहीं बन सकता है

जोखिम समाधान:

  • रुझान मोड़ बिंदुओं को निर्धारित करने के लिए अन्य संकेतक जोड़ें
  • उचित रूप से चलती औसत मापदंडों को सेट करें, बहुत लंबे समय तक नहीं ताकि बहुत पिछड़े संकेतों से बचा जा सके
  • उच्च कीमतों का पीछा करने से बचने के लिए चरणबद्ध लंबे प्रवेश बैचों को कम करें
  • घाटे को सीमित करने के लिए चलती स्टॉप हानि जोड़ें

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

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

  1. प्रवृत्ति की ताकत निर्धारित करने के लिए एमएसीडी जैसे अन्य संकेतक जोड़ें

  2. सबसे अच्छा संयोजन खोजने के लिए चलती औसत मापदंडों का अनुकूलन करें

  3. उच्च कीमतों का पीछा करने से बचने के लिए चरणबद्ध प्रवेश बैच आकार और अनुपात को समायोजित करें

  4. एटीआर पर आधारित चलती स्टॉप लॉस तंत्र जोड़ें

  5. बाजार की अस्थिरता के आधार पर स्थिति के आकार को गतिशील रूप से समायोजित करें, अस्थिरता अधिक होने पर आकार को कम करें

  6. इष्टतम प्रतीक खोजने के लिए विभिन्न उत्पादों पर परीक्षण मापदंड

  7. कुछ पैटर्न पर लाभ लेने पर विचार करने के लिए एक्जिट मॉड्यूल विकसित करें

सारांश

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


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)
    

अधिक