एकाधिक चलती औसत ट्रैकिंग रणनीति और गतिशील स्थिति प्रबंधन प्रणाली

EMA ATR
निर्माण तिथि: 2025-02-27 10:20:18 अंत में संशोधित करें: 2025-02-27 10:20:18
कॉपी: 0 क्लिक्स: 478
2
ध्यान केंद्रित करना
319
समर्थक

एकाधिक चलती औसत ट्रैकिंग रणनीति और गतिशील स्थिति प्रबंधन प्रणाली एकाधिक चलती औसत ट्रैकिंग रणनीति और गतिशील स्थिति प्रबंधन प्रणाली

अवलोकन

मल्टीपल एवरेज लाइन ट्रैकिंग रणनीति और डायनामिक पोजीशन मैनेजमेंट सिस्टम एक मात्रात्मक ट्रेडिंग रणनीति है जो मल्टीपल इंडेक्स मूविंग एवरेज (ईएमए) पर आधारित है। यह रणनीति पांच अलग-अलग चक्रों (१२, १४४, १६९, ५७६ और ६७६) के ईएमए संकेतकों की निगरानी करके एक पूर्ण ट्रेडिंग सिस्टम का निर्माण करती है, जिसमें ट्रेंड निर्णय, प्रवेश सिग्नल पहचान, बैच निर्माण, स्टॉप लॉस और डायनामिक स्टॉप शामिल हैं। यह रणनीति न केवल कई बार स्टॉकिंग ऑपरेशन का समर्थन करती है, बल्कि अधिकतम ५ ट्रेडिंग पोजीशन भी स्थापित कर सकती है, लेकिन प्रत्येक पोजीशन के लिए स्वतंत्र जोखिम नियंत्रण उपाय भी हैं। सिस्टम ईएमए संकेतकों की पदानुक्रम और कीमतों को प्रमुख लाइन औसत के साथ क्रॉस-रिलेशन के माध्यम से, बाजार की प्रवृत्ति के मोड़ को सटीक रूप से पकड़ती है, और प्रवृत्ति को बनाए रखने के आधार पर बैच निर्माण और बैच लाभ प्राप्त करती है।

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

इस रणनीति का मुख्य तर्क कई ईएमए के बीच स्थितियों के संबंध और महत्वपूर्ण ईएमए के साथ मूल्य की बातचीत पर आधारित हैः

  1. रुझान निर्धारण तंत्र:

    • EMA12 > EMA144 > EMA169 > EMA576 > EMA676
    • ओवरहेड रुझान की स्थितिः ईएमए12 < ईएमए144 < ईएमए169 < ईएमए576 < ईएमए676
  2. प्रवेश सिग्नल:

    • मल्टीहेड प्रविष्टिः मल्टीहेड रुझान को पूरा करने के आधार पर, जब ईएमए 144 के निचले स्तर को तोड़ दिया जाता है और समापन मूल्य ईएमए 169 से ऊपर होता है
    • शून्य प्रविष्टिः शून्य प्रवृत्ति को पूरा करने के आधार पर, जब उच्चतम ईएमए 144 को तोड़ता है और समापन मूल्य ईएमए 169 के नीचे होता है
  3. बैचों में निर्माण:

    • पहली स्थितिः प्रवेश संकेत के अनुरूप और कोई स्थिति नहीं
    • दूसरा स्थानः प्रवेश संकेत को पूरा करता है और वर्तमान में एक स्थान रखता है
    • तीन से पांच बार गोदाम स्थापित करनाः प्रवेश संकेतों को पूरा करने के आधार पर, अंतिम गोदाम से 50 से अधिक K लाइनों का अंतराल भी आवश्यक है
  4. गतिशील रोकथाम:

    • प्रत्येक स्थिति में एक गतिशील स्टॉपलॉस होता है, जो कि 12 के लाइनों के लिए न्यूनतम मूल्य (बहु हेड) या उच्चतम मूल्य (खाली हेड) पर आधारित होता है
    • सममित स्टॉप रणनीति का उपयोग करके, लक्ष्य मूल्य “प्रवेश मूल्य + (प्रवेश मूल्य - स्टॉप लॉस मूल्य) ” है
    • बैच लाभः प्रत्येक स्थिति को स्टॉपलॉस तक पहुंचने पर, पहले 50% को बंद करें, और शेष को स्टॉपलॉस तक रखने के लिए रखें
  5. समग्र जोखिम नियंत्रण:

    • जब ईएमए 12 और ईएमए 144 संकेतक के साथ पार होता है ((ईएमए 12 मल्टीहेड ट्रेंड में ईएमए 144 से नीचे गिरता है, या ईएमए 12 को ईएमए 144 से ऊपर की ओर ट्रेंड करता है), तो पूरी तरह से ब्लीच

कुल मिलाकर, यह रणनीति कई ईएमए की व्यवस्था के माध्यम से बाजार के रुझान की दिशा निर्धारित करती है, ईएमए 144 के साथ कीमतों की बातचीत के माध्यम से प्रवेश का समय निर्धारित करती है, और हालिया मूल्य उतार-चढ़ाव के क्षेत्रों के माध्यम से गतिशील स्टॉप-लॉस स्टॉप पॉइंट्स सेट करती है, जबकि बैचों के निर्माण के माध्यम से धन प्रबंधन को अनुकूलित करती है और लाभ को मंजूरी देती है, अंततः एक पूर्ण व्यापार प्रणाली का गठन करती है।

रणनीतिक लाभ

  1. प्रवृत्ति का निर्धारण करना:

    • पांच अलग-अलग चक्रों के ईएमए का उपयोग करके त्रि-आयामी प्रवृत्ति निर्णय प्रणाली, झूठे ब्रेकडाउन के जोखिम को कम करना
    • ईएमए सूचकांक के वर्गीकृत पोर्टफोलियो प्रवृत्ति की ताकत और कमजोरी के लिए एक मात्रात्मक मानक प्रदान करते हैं, जिससे व्यापार निर्णय अधिक निष्पक्ष होते हैं
  2. सटीक प्रवेश तंत्र:

    • प्रवेश के लिए ट्रिगर के रूप में मूल्य और औसत रेखा के साथ क्रॉस-एक्टिविटी, प्रवेश की समयबद्धता में सुधार
    • प्रवेश संकेतों को 12 के-लाइनों के भीतर पुष्टि करने की आवश्यकता है, जिससे लेन-देन के जोखिम को कम किया जा सके
  3. स्मार्ट धन प्रबंधन:

    • विभिन्न बाजार विकास चरणों के लिए 5 गोदामों तक के गोदामों का समर्थन करने के लिए बैचों का निर्माण
    • बाद के निर्माण के लिए न्यूनतम समय अंतराल को पूरा करने की आवश्यकता है ((50 के लाइन), कम समय में अत्यधिक निर्माण से बचें
  4. लचीली मुनाफा कमाने की रणनीति:

    • प्रवेश मूल्य और स्टॉपलॉस गतिशीलता के आधार पर लाभ प्राप्त करने के लिए “सैमट्रिक स्टॉप” सिद्धांत का उपयोग करना
    • शेयरों में मुनाफा ((50% स्थिति), ऊपर जाने के लिए जगह बनाए रखने के साथ-साथ कुछ मुनाफे को लॉक करना
  5. सख्त जोखिम नियंत्रण:

    • प्रत्येक स्थिति के लिए एक स्वतंत्र स्टॉपलॉस सेट किया जाता है, जो हाल के उतार-चढ़ाव की सीमा पर आधारित होता है (12 के लाइन)
    • ट्रेंड रिवर्स सिग्नल (ईएमए 12 और ईएमए 144 के क्रॉसिंग) ने पूरी तरह से ब्लीच को ट्रिगर किया, समय पर स्टॉप लॉस
  6. अत्यधिक अनुकूलनीय:

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

रणनीतिक जोखिम

  1. औसत रेखा के पीछे का जोखिम:

    • ईएमए सूचकांक में कुछ पिछड़ापन है, जो बाजार में भारी उतार-चढ़ाव के दौरान प्रवेश या निकास के समय को खराब कर सकता है
    • शमन विधिः सिस्टम की प्रतिक्रिया की गति को बढ़ाने के लिए एक सहायक के रूप में अल्पकालिक गतिशीलता के संकेतकों के साथ संयोजन पर विचार किया जा सकता है
  2. बैचों में भंडारण के लिए वित्तीय दबाव:

    • अधिकतम 5 पदों के लिए समर्थन करने वाली स्टॉक-अप रणनीति से पूंजी की अत्यधिक एकाग्रता हो सकती है
    • शमन विधि: धन के संतुलित वितरण को सुनिश्चित करने के लिए कुल धन की मात्रा के आधार पर प्रत्येक भंडार के लिए धन का उचित अनुपात निर्धारित किया जाना चाहिए
  3. निश्चित चक्र मापदंडों की सीमाएँ:

    • कोड में ईएमए चक्र (१२, १४४, १६९, ५७६, ६७६) एक निश्चित मूल्य है, जो सभी बाजार स्थितियों के लिए लागू नहीं हो सकता है
    • शमन विधिः अनुकूलन चक्र की गणना के लिए एक विधि का परिचय, या विभिन्न किस्मों के लिए एक विशेष पैरामीटर अनुकूलन प्रक्रिया का निर्माण
  4. समरूपता रोकथाम की संभावित समस्या:

    • मजबूत रुझान वाले बाजारों में, सममित स्टॉप को अधिक लाभ के लिए समय से पहले लाभ मिल सकता है
    • कम करने का तरीकाः मजबूत रुझानों के लिए ट्रेडिंग स्टॉप को शेष 50% के लिए सेट करने पर विचार किया जा सकता है
  5. प्रवेश की शर्तें बहुत सख्त हैं:

    • बहु शर्तों का संयोजन ((समानांतर संरेखण + मूल्य क्रॉसिंग + समापन की पुष्टि) के परिणामस्वरूप कुछ प्रभावी संकेतों को याद किया जा सकता है
    • शमन विधिः विभिन्न बाजार चरणों के लिए वैकल्पिक प्रवेश तंत्र सेट किया जा सकता है, जिससे सिग्नल कैप्चर की संवेदनशीलता बढ़ जाती है
  6. डेटा निर्भरता जोखिम:

    • रणनीति लंबी अवधि ईएमए पर निर्भर करती है (जैसे 576, 676), और इसे प्रभावी ढंग से संचालित करने के लिए पर्याप्त लंबे समय तक ऐतिहासिक डेटा की आवश्यकता होती है
    • कम करने की विधिः डेटा की कमी के मामले में, वैकल्पिक संकेतकों का उपयोग करने या लंबी अवधि के ईएमए की गणना के लिए समायोजित करने पर विचार किया जा सकता है

रणनीति अनुकूलन दिशा

  1. अनुकूली पैरामीटर तंत्र का परिचय:

    • निश्चित ईएमए चक्रों (१२, १४४, १६९, ५७६, ६७६) को बाजार में उतार-चढ़ाव के आधार पर अनुकूलन मानकों में बदलना
    • अनुकूलन कारणः विभिन्न बाजार स्थितियों में इष्टतम ईएमए चक्र में उल्लेखनीय अंतर है, अनुकूलन तंत्र रणनीति की सार्वभौमिकता को बढ़ा सकता है
  2. सिग्नल फ़िल्टरिंग में सुधार:

    • इनपुट सिग्नल के लिए अतिरिक्त पुष्टिकरण शर्तें जोड़ने के लिए टर्नओवर, बाजार में उतार-चढ़ाव की दर (जैसे एटीआर) जैसे संकेतक का संयोजन
    • अनुकूलन कारणः शुद्ध सम-रेखा पार सिग्नल बाजार के शोर के लिए अतिसंवेदनशील है, अतिरिक्त फ़िल्टरिंग शर्तें सिग्नल की गुणवत्ता में सुधार करती हैं
  3. धन प्रबंधन प्रणाली में सुधार:

    • खाते की कुल पूंजी और बाजार में उतार-चढ़ाव के आधार पर गतिशील रूप से समायोजित प्रत्येक स्थिति के लिए पूंजी का अनुपात
    • अनुकूलन कारणः वर्तमान रणनीति में निधि आवंटन का अनुपात स्थिर है, जो जोखिम के स्तर के अनुसार स्वचालित रूप से समायोजित नहीं किया जा सकता है, गतिशील निधि प्रबंधन की शुरूआत से निधि उपयोग की दक्षता में सुधार हो सकता है
  4. स्टॉप लॉस तंत्र का अनुकूलन:

    • विभिन्न गोदाम स्थानों के लिए डिज़ाइन की गई अलग-अलग स्टॉप-लॉस रणनीतियाँ, जैसे कि पहले गोदाम में एक निश्चित अनुपात स्टॉप, और बाद के गोदामों में ट्रैक-लॉस
    • अनुकूलन कारणः एक एकीकृत स्टॉप-लॉस रणनीति को विभिन्न बाजार चरणों की जरूरतों के लिए अनुकूलित करना मुश्किल है, जबकि विभेदक रणनीति बाजार में बदलाव के लिए अधिक लचीली है
  5. समय फ़िल्टर जोड़ें:

    • ट्रेडिंग समय फ़िल्टरिंग को लागू करें, उच्च अस्थिरता के समय (जैसे कि पूर्व-खुला, पूर्व-बंद) या महत्वपूर्ण डेटा रिलीज के दौरान
    • अनुकूलन कारणः बाजार में उतार-चढ़ाव के लिए एक निश्चित समय अवधि में अक्सर दिशा की कमी होती है, समय फ़िल्टरिंग को जोड़ने से अनावश्यक लेनदेन से बचा जा सकता है
  6. प्रवृत्ति की ताकत का आकलन जोड़ें:

    • प्रवृत्ति की ताकत के संकेतकों का विकास, केवल ट्रेडिंग की अनुमति दी जाती है जब प्रवृत्ति की ताकत सीमा तक पहुंच जाती है
    • अनुकूलन कारणः वर्तमान रणनीति कमजोर प्रवृत्ति वातावरण में भी संकेत उत्पन्न करती है, प्रवृत्ति की ताकत का आकलन करने से अस्थिर बाजारों में झूठे संकेत कम हो सकते हैं
  7. एक बहु-चक्र समन्वय प्रणाली का निर्माण:

    • ट्रेडिंग दिशा फिल्टर के रूप में उच्च समय अवधि के साथ प्रवृत्ति निर्णय
    • अनुकूलन कारणः एकल चक्र ट्रेडिंग सिस्टम अल्पकालिक उतार-चढ़ाव के लिए अतिसंवेदनशील है, बहु-चक्र समन्वय प्रणाली की स्थिरता को बढ़ाता है

संक्षेप

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

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

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

रणनीति स्रोत कोड
/*backtest
start: 2024-09-08 00:00:00
end: 2024-12-08 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("专业级交易系统", overlay=false, close_entries_rule = "ANY")
x1 = input.float(1.5,"atr倍数",step=0.1)
x2 = input.int(50,"k线数量",step=1)
s1 = strategy.opentrades.entry_price(0)
s2 = strategy.opentrades.entry_price(1)
s3 = strategy.opentrades.entry_price(2)
s4 = strategy.opentrades.entry_price(3)
s5 = strategy.opentrades.entry_price(4)
s6 = strategy.opentrades.entry_price(5)
s7 = strategy.opentrades.entry_price(6)
s8 = strategy.opentrades.entry_price(7)
s9 = strategy.opentrades.entry_price(8)
c = strategy.position_size,o = strategy.opentrades
ema12_len = input.int(12,"EMA12长度")
ema144_len = input.int(144, "EMA144长度")
ema169_len = input.int(169,"EMA169长度")
ema576_len = input.int(376, "EMA576长度")
ema676_len = input.int(576,"EMA676长度")
ema12 = ta.ema(close,ema12_len)
ema144 = ta.ema(close, ema144_len)
ema169 = ta.ema(close, ema169_len)
ema576 = ta.ema(close, ema576_len)
ema676 = ta.ema(close, ema676_len)
e3 = ta.valuewhen(o ==2 and o[1] == 1 and c > 0,bar_index,0)
e4 = ta.valuewhen(o ==3 and o[1] == 2 and c > 0,bar_index,0)
e5 = ta.valuewhen(o ==4 and o[1] == 3 and c > 0,bar_index,0)
le1 = false
le1 := c <= 0 and ema12 > ema144 and ema144 > ema169 and ema169 > ema576 and ema576 > ema676 and low < ema144 and low[1] > ema144 and close > ema169? true :  close < ema169 or ema12 < ema144 ? false : le1[1]
le11 = false
le11 := le1 and bar_index - ta.valuewhen(low < ema144 and low[1] > ema144,bar_index,0) < 12 ? true : false
le2 = false
le2 := c > 0 and o == 1 and o[1] == 1 and ema12 > ema144 and ema144 > ema169 and ema169 > ema576 and ema576 > ema676 and low < ema144 and low[1] > ema144 and close > ema169? true :  close < ema169 or ema12 < ema144 or o < 1? false : le2[1]
le21 = false
le21 := le2 and bar_index - ta.valuewhen(low < ema144 and low[1] > ema144 and o == 1 and o[1]==1,bar_index,0) < 12 ? true : false
le3 = false
le3 := c > 0 and o == 2 and o[1] == 2 and ema12 > ema144 and ema144 > ema169 and ema169 > ema576 and ema576 > ema676 and low < ema144 and low[1] > ema144 and close > ema169? true :  close < ema169 or ema12 < ema144 or o < 2? false : le3[1]
le31 = false
le31 := le3 and bar_index - e3 > 50 and bar_index - ta.valuewhen(low < ema144 and low[1] > ema144 and o == 2 and o[1]==2,bar_index,0) < 12 ? true : false
le4 = false
le4 := c > 0 and o == 3 and o[1] == 3 and ema12 > ema144 and ema144 > ema169 and ema169 > ema576 and ema576 > ema676 and low < ema144 and low[1] > ema144 and close > ema169? true :  close < ema169 or ema12 < ema144 or o < 3? false : le4[1]
le41 = false
le41 := le4 and bar_index - e4 > 50 and bar_index - ta.valuewhen(low < ema144 and low[1] > ema144 and o == 3 and o[1]==3,bar_index,0) < 12 ? true : false
le5 = false
le5 := c > 0 and o == 4 and o[1] == 4 and ema12 > ema144 and ema144 > ema169 and ema169 > ema576 and ema576 > ema676 and low < ema144 and low[1] > ema144 and close > ema169? true :  close < ema169 or ema12 < ema144 or o < 4? false : le5[1]
le51 = false
le51 := le5 and bar_index - e5 > 50 and bar_index - ta.valuewhen(low < ema144 and low[1] > ema144 and o == 4 and o[1]==4,bar_index,0) < 12 ? true : false
d1 = ta.valuewhen(o == 1 and o[1] == 0 and c > 0,ta.lowest(12),0)
d2 = ta.valuewhen(o == 2 and o[1] == 1 and c > 0,ta.lowest(12),0)
d3 = ta.valuewhen(o == 3 and o[1] == 2 and c > 0,ta.lowest(12),0)
d4 = ta.valuewhen(o == 4 and o[1] == 3 and c > 0,ta.lowest(12),0)
d5 = ta.valuewhen(o == 5 and o[1] == 4 and c > 0,ta.lowest(12),0)
if le11 and close > ema12 and o == 0
    strategy.order("l1",strategy.long,comment="第一单")
if c > 0 and o > 0
    strategy.exit("出场1","l1",limit = 2*s1- d1,stop= d1,qty_percent = 50)
    strategy.exit("出场11","l1",stop= d1)

if le21 and close > ema12 and o == 1
    strategy.order("l2",strategy.long,comment="第二单")
if c > 0 and o == 2
    strategy.exit("出场2","l2",limit = 2*s2- d2,stop= d2,qty_percent = 50)
    strategy.exit("出场21","l2",stop= d2)

if le31 and close > ema12 and o == 2
    strategy.order("l3",strategy.long,comment="第三单")
if c > 0 and o == 3
    strategy.exit("出场3","l3",limit = 2*s3- d3,stop= d3,qty_percent = 50)
    strategy.exit("出场31","l3",stop= d3)

if le41 and close > ema12 and o == 3
    strategy.order("l4",strategy.long,comment="第四单")
if c > 0 and o == 4 
    strategy.exit("出场4","l4",limit = 2*s4- d4,stop= d4,qty_percent = 50)
    strategy.exit("出场41","l4",stop= d4)

if le51 and close > ema12 and o == 4
    strategy.order("l5",strategy.long,comment="第五单")
if c > 0 and o == 5
    strategy.exit("出场5","l5",limit = 2*s5- d5,stop= d5,qty_percent = 50)
    strategy.exit("出场51","l5",stop= d5)
bgcolor(le2?color.red:na)
if c > 0 and ema12 < ema144
    strategy.close_all("跌破均线全部出场")

//做空
es3 = ta.valuewhen(o ==2 and o[1] == 1 and c < 0,bar_index,0)
es4 = ta.valuewhen(o ==3 and o[1] == 2 and c < 0,bar_index,0)
es5 = ta.valuewhen(o ==4 and o[1] == 3 and c < 0,bar_index,0)
se1 = false
se1 := c >= 0 and ema12 < ema144 and ema144 < ema169 and ema169 < ema576 and ema576 < ema676 and high > ema144 and high[1] < ema144 and close < ema169? true :  close > ema169 or ema12 > ema144 ? false : se1[1]
se11 = false
se11 := se1 and bar_index - ta.valuewhen(high > ema144 and high[1] < ema144,bar_index,0) < 12 ? true : false
se2 = false
se2 := c < 0 and o == 1 and o[1] == 1 and ema12 < ema144 and ema144 < ema169 and ema169 < ema576 and ema576 < ema676 and high > ema144 and high[1] < ema144 and close < ema169? true :  close > ema169 or ema12 > ema144 or o < 1? false : se2[1]
se21 = false
se21 := se2 and bar_index - ta.valuewhen(high > ema144 and high[1] < ema144 and o == 1 and o[1]==1,bar_index,0) < 12 ? true : false
se3 = false
se3 := c < 0 and o == 2 and o[1] == 2 and ema12 < ema144 and ema144 < ema169 and ema169 < ema576 and ema576 < ema676 and high > ema144 and high[1] < ema144 and close < ema169 ? true :  close > ema169 or ema12 > ema144 or o < 2? false : se3[1]
se31 = false
se31 := se3 and bar_index - es3 > 50 and bar_index - ta.valuewhen(high > ema144 and high[1] < ema144 and o == 2 and o[1]==2,bar_index,0) < 12 ? true : false
se4 = false
se4 := c < 0 and o == 3 and o[1] == 3 and ema12 < ema144 and ema144 < ema169 and ema169 < ema576 and ema576 < ema676 and high > ema144 and high[1] < ema144 and close < ema169? true :  close > ema169 or ema12 > ema144 or o < 3? false : se4[1]
se41 = false
se41 := se4 and bar_index - es4 > 50 and bar_index - ta.valuewhen(high > ema144 and high[1] < ema144 and o == 3 and o[1]==3,bar_index,0) < 12 ? true : false
se5 = false
se5 := c < 0 and o == 4 and o[1] == 4 and ema12 < ema144 and ema144 < ema169 and ema169 < ema576 and ema576 < ema676 and high > ema144 and high[1] < ema144 and close < ema169 ? true :  close > ema169 or ema12 > ema144 or o < 4? false : se5[1]
se51 = false
se51 := se5 and bar_index - es5 > 50 and bar_index - ta.valuewhen(high > ema144 and high[1] < ema144 and o == 4 and o[1]==4,bar_index,0) < 12 ? true : false
ds1 = ta.valuewhen(o == 1 and o[1] == 0 and c < 0 ,ta.highest(12),0)
ds2 = ta.valuewhen(o == 2 and o[1] == 1 and c < 0,ta.highest(12),0)
ds3 = ta.valuewhen(o == 3 and o[1] == 2 and c < 0,ta.highest(12),0)
ds4 = ta.valuewhen(o == 4 and o[1] == 3 and c < 0,ta.highest(12),0)
ds5 = ta.valuewhen(o == 5 and o[1] == 4 and c < 0,ta.highest(12),0)
if se11 and close < ema12 and o == 0
    strategy.order("s1",strategy.short,comment="第一单")
if c < 0 and o > 0
    strategy.exit("出场1","s1",limit = 2*s1- ds1,stop= ds1,qty_percent = 50)
    strategy.exit("出场11","s1",stop= ds1)

if se21 and close < ema12 and o == 1
    strategy.order("s2",strategy.short,comment="第二单")
if c < 0 and o == 2
    strategy.exit("出场2","s2",limit = 2*s2- ds2,stop= ds2,qty_percent = 50)
    strategy.exit("出场21","s2",stop= ds2)

if se31 and close < ema12 and o == 2
    strategy.order("s3",strategy.short,comment="第三单")
if c < 0 and o == 3
    strategy.exit("出场3","s3",limit = 2*s3- ds3,stop= ds3,qty_percent = 50)
    strategy.exit("出场31","s3",stop= ds3)

if se41 and close < ema12 and o == 3
    strategy.order("s4",strategy.short,comment="第四单")
if c < 0 and o == 4 
    strategy.exit("出场4","s4",limit = 2*s4- ds4,stop= ds4,qty_percent = 50)
    strategy.exit("出场41","s4",stop= ds4)

if se51 and close < ema12 and o == 4
    strategy.order("s5",strategy.short,comment="第五单")
if c < 0 and o == 5
    strategy.exit("出场5","s5",limit = 2*s5- ds5,stop= ds5,qty_percent = 50)
    strategy.exit("出场51","s5",stop= ds5)
bgcolor(se1?color.red:na)
if c < 0 and ema12 > ema144
    strategy.close_all("跌破均线全部出场")
kaiguan = input.bool(true,"均线开关")
plot(ema12,force_overlay=true)
plot(ema144, "EMA144", color=color.new(#008000, 0),force_overlay=true)
plot(ema169, "EMA169", color=color.red,force_overlay=true)
plot(kaiguan?ema576:na,color=color.yellow,force_overlay=true)
plot(kaiguan?ema676:na,color=color.yellow,force_overlay=true)
//plotshape(series=entrySignal,title="买入信号",location=location.belowbar,color=color.new(color.green, 0),style=shape.labelup,text="BUY",textcolor=color.new(color.white, 0))