स्वर्ण क्रॉस मृत्यु क्रॉस रणनीति

लेखक:चाओझांग, दिनांक: 2023-10-11 16:33:18
टैगः

अवलोकन

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

रणनीति तर्क

रणनीति पहले बैकटेस्टिंग समय सीमा को परिभाषित करती है, फिर दो चलती औसत के लिए गणना मापदंडों को निर्धारित करती है, जिसमें एमए प्रकार और अवधि की लंबाई शामिल है।

getMAType))) फ़ंक्शन दो एमए के मानों की गणना करता है. fastMA छोटी अवधि का एमए है, और slowMA लंबी अवधि का एमए है.

मूल तर्कः

  • जब fastMA slowMA के ऊपर से गुजरता है, तो एक लंबा संकेत ट्रिगर होता है।

  • जब fastMA slowMA से नीचे जाता है, तो एक छोटा संकेत ट्रिगर होता है।

अंत में, बैकटेस्टिंग के दौरान, लंबे संकेत देखने पर लंबी स्थिति लें, और लघु संकेत देखने पर छोटी स्थिति लें।

लाभ विश्लेषण

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

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

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

जोखिमों के विरुद्ध संभावित अनुकूलन:

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

  2. स्टॉप लॉस को प्रति ट्रेड लॉस की राशि के लिए नियंत्रण में जोड़ें।

  3. व्हीपसा बाजारों से बचने के लिए वॉल्यूम संकेतक जोड़ें।

  4. स्वचालित रूप से इष्टतम पैरामीटर सेट खोजने के लिए पैरामीटर अनुकूलन तंत्र का निर्माण करें।

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

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

  1. हानि को नियंत्रित करने के लिए निश्चित स्टॉप लॉस पॉइंट या ट्रेलिंग स्टॉप लॉस जैसी स्टॉप लॉस रणनीतियों को जोड़ें।

  2. ट्रेडिंग जोखिमों को नियंत्रित करने के लिए निश्चित या गतिशील स्थिति आकार जैसी स्थिति आकार रणनीति जोड़ें।

  3. प्रवृत्तियों की पहचान करने और जीत दर में सुधार करने के लिए अन्य तकनीकी संकेतकों के साथ संयोजन करके फ़िल्टर जोड़ें।

  4. इष्टतम मानों को खोजने के लिए ग्रिड खोज और रैखिक प्रतिगमन जैसे तरीकों से मापदंडों का अनुकूलन करें।

  5. प्रवेश रणनीतियों का विस्तार करें जैसे कि ब्रेकआउट पॉलबैक, व्यापारिक रणनीति को समृद्ध करने के लिए आदेशों में स्केल करें।

  6. व्हीपसा बाजारों से बचने के लिए वॉल्यूम संकेतक जोड़ें।

  7. शेयर सूचकांक, विदेशी मुद्रा, क्रिप्टोकरेंसी आदि के लिए उत्पादों का विस्तार करें।

सारांश

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


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

//@version=4
//strategy("Golden X BF Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2010, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() =>  true

///////////// MA Params /////////////
source1 = input(title="MA Source 1", defval=close)
maType1 = input(title="MA Type 1", defval="sma", options=["sma", "ema", "swma", "wma"])
length1 = input(title="MA Length 1", defval=50)

source2 = input(title="MA Source 2", defval=close)
maType2 = input(title="MA Type 2", defval="sma", options=["sma", "ema", "swma", "wma"])
length2 = input(title="MA Length 2", defval=200)

///////////// Get MA Function /////////////
getMAType(maType, sourceType, maLen) => 
    res = sma(close, 1)
    
    if maType == "ema"
        res := ema(sourceType, maLen)
    if maType == "sma"
        res := sma(sourceType, maLen)
    if maType == "swma"
        res := swma(sourceType)
    if maType == "wma"
        res := wma(sourceType, maLen)
    res
    
///////////// MA /////////////
fastMA = getMAType(maType1, source1, length1)
slowMA = getMAType(maType2, source2, length2)

long = crossover(fastMA, slowMA)
short = crossunder(fastMA, slowMA)

/////////////// Plotting /////////////// 
checkColor() => fastMA > slowMA
colCheck = checkColor() ? color.lime : color.red
p1 = plot(fastMA, color = colCheck, linewidth=1)
p2 = plot(slowMA, color = colCheck, linewidth=1)
fill(p1, p2, color = checkColor() ? color.lime : color.red)
bgcolor(long ? color.lime : short ? color.red : na, transp=20)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long", strategy.long, when=long)
    strategy.entry("Short", strategy.short, when=short)

अधिक