ब्रेकआउट रणनीति को पार करना

लेखक:चाओझांग, दिनांक: 2023-10-12 16:47:55
टैगः

अवलोकन

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

रणनीति तर्क

यह रणनीति प्रवेश और निकास बिंदुओं को निर्धारित करने के लिए चलती औसत के स्वर्ण क्रॉस और मृत्यु क्रॉस पर आधारित है। कोड दो बुलियन इनपुट मापदंडों का उपयोग करता हैupOrDownऔरlongOrShortलम्बा या छोटा निर्धारित करने के लिए;percentInputमूल्य परिवर्तन की सीमा प्रतिशत निर्धारित करने के लिए;closePositionDaysस्थिति रखने के लिए दिनों की संख्या निर्धारित करने के लिए।

मूल तर्क यह हैः कल के सापेक्ष आज की वृद्धि/घटाव की गणना करें। यदि यह इनपुट सीमा प्रतिशत तक पहुंचता है, तो एक ट्रेडिंग सिग्नल ट्रिगर किया जाता है। यदि यह एक लंबा संकेत है, तो जब आज की कीमत कल के सापेक्ष सीमा से अधिक बढ़ जाती है, तो लंबी हो जाती है। यदि यह एक छोटा संकेत है, जब आज की कीमत कल के सापेक्ष सीमा से अधिक घटती है, तो छोटी हो जाती है।

लंबे/लघु जाने के बाद, प्रवेश दिवस और अगले 4 दिनों को चार्ट पर रंगों से चिह्नित किया जाएगा। 4 दिनों के बाद स्थिति स्वचालित रूप से बंद हो जाएगी।

लाभ

  • प्रवृत्ति निर्धारित करने के लिए चलती औसत क्रॉसओवर का उपयोग करना एक परिपक्व और विश्वसनीय विधि है
  • सरल और स्पष्ट रणनीति तर्क, समझने और लागू करने में आसान
  • आवृत्ति को पैरामीटर को समायोजित करके नियंत्रित किया जा सकता है
  • स्वचालित स्टॉप लॉस तंत्र जोखिमों को प्रभावी ढंग से नियंत्रित करता है

जोखिम

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

जोखिम प्रबंधन:

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

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

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

सारांश

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


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

//@version=3
//  Created by Leon Ross

strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=true, initial_capital=100000)
  
//Inputs
longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false
upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day
percentInput = input(title="Percent", type=float, defval=4.5)
closePositionDays = input(title="How Many Days to Close Position", defval=4)

//Conditions
//percentUpValue = (close / close[1]) - 1
//percentUp = percentUpValue >= (percentInput/100.0)
//upConditions = percentUp
//percentDownValue = 1- (close / close[1])
//percentDown = percentDownValue >= (percentInput/100.0)
//downConditions = percentDown
upValue = (close / close[1]) - 1
downValue = 1 - (close / close[1])
allConditions = if(upOrDown)
    upValue >= (percentInput/100.0)
else
    downValue >= (percentInput/100.0)
    
//Plots
bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70)
bgcolor(allConditions ? silver : na, transp=70, offset=1)
bgcolor(allConditions ? silver : na, transp=70, offset=2)
bgcolor(allConditions ? silver : na, transp=70, offset=3)
bgcolor(allConditions ? silver : na, transp=70, offset=4)
//bgcolor(downConditions == 1 ? red : na, transp=70)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4)

//Entires
if(longOrShort)
    strategy.entry(id = "Long", long = true, when = allConditions) 
else
    strategy.entry(id = "Short", long = false, when = allConditions)

//Exits
if (barssince(allConditions) == closePositionDays)
    if(longOrShort)
        strategy.close("Long")
    else
        strategy.close("Short")




अधिक