डबल मूविंग एवरेज गोल्डन क्रॉस और डेथ क्रॉस एल्गोरिथम ट्रेडिंग रणनीति


निर्माण तिथि: 2024-01-29 15:11:58 अंत में संशोधित करें: 2024-01-29 15:11:58
कॉपी: 0 क्लिक्स: 590
1
ध्यान केंद्रित करना
1617
समर्थक

डबल मूविंग एवरेज गोल्डन क्रॉस और डेथ क्रॉस एल्गोरिथम ट्रेडिंग रणनीति

अवलोकन

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

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

इस रणनीति का मुख्य तर्क दो चलती औसत को 3 समय अवधि में ट्रैक करना है (१८० मिनट, ६० मिनट, १२० मिनट) (१० दिन की रेखा और २०० दिन की रेखा) । जब तेज रेखा नीचे की ओर से धीमी रेखा को पार करती है, तो एक गोल्डन फोर्क सिग्नल उत्पन्न होता है, जो कि किस्मों को बहुमुखी व्यवहार में प्रवेश करने का प्रतिनिधित्व करता है; जब तेज रेखा ऊपर की ओर से धीमी रेखा को पार करती है, तो एक मृत फोर्क सिग्नल उत्पन्न होती है, जो कि किस्मों को खाली सिर व्यवहार में प्रवेश करने का प्रतिनिधित्व करती है।

रणनीति पहले 180 मिनट और 60 मिनट की अवधि में क्रमशः 10 दिन की रेखा और 200 दिन की रेखा की गणना करती है। जब 180 मिनट की 10 दिन की रेखा 200 दिन की रेखा को नीचे से पार करती है, तो एक गोल्ड फोर्क सिग्नल उत्पन्न होता है; जब यह ऊपर से नीचे से गुजरती है, तो एक डेड फोर्क सिग्नल उत्पन्न होता है। यह तेजी से चक्र के लिए ट्रेडिंग सिग्नल के बराबर है।

फिर, रणनीति 120 मिनट की अवधि में 200 दिन की रेखा को नियंत्रण रेखा के रूप में पेश करती है। केवल जब गोल्ड फोर्क या डेड फोर्क होता है, तो यह निर्णय लेने के लिए कि क्या 60 मिनट की अवधि में 200 दिन की रेखा 120 मिनट की अवधि में 200 दिन की रेखा से अधिक या कम है, व्यापार शुरू करने के लिए कुछ झूठे संकेतों को खत्म करने के लिए।

उदाहरण के लिए, जब 180 मिनट में गोल्ड फोर्क होता है, तो यदि 60 मिनट की 200 दिन की रेखा 120 मिनट की 200 दिन की रेखा से अधिक है, तो अधिक देखें; केवल इस शर्त के तहत, एक अधिक खाता खोला जाएगा। इसके विपरीत, यदि 60 मिनट की 200 दिन की रेखा 120 मिनट की 200 दिन की रेखा से कम है, तो अधिक न देखें और न ही स्थिति खोलें।

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

रणनीतिक लाभ

  • बहु-चक्र सत्यापन, संकेत की सटीकता में सुधार करता है। एकल-चक्र निर्णय की तुलना में, इस रणनीति को 180 मिनट, 60 मिनट और 120 मिनट के तीन चक्रों के औसत संबंध की पुष्टि करने के लिए उपयोग किया जाता है, जिससे झूठे संकेतों को काफी कम किया जा सकता है और ट्रेडिंग सिग्नल की गुणवत्ता में सुधार किया जा सकता है।

  • मध्यम परिचालन आवृत्ति. उच्च आवृत्ति ट्रेडिंग रणनीतियों की तुलना में, इस रणनीति की ट्रेडिंग आवृत्ति कम है, अक्सर परिचालन की आवश्यकता नहीं है, और मैनुअल ब्यूरो के लिए अधिक उपयुक्त है।

  • सरल और आसानी से समझने योग्य। इस रणनीति का उपयोग केवल औसत दर्जे का है, इसमें कोई जटिल तर्क नहीं है, इसे आसानी से समझना आसान है, और शुरुआती अभ्यास के लिए उपयुक्त है।

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

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

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

  • बड़े पैमाने पर उतार-चढ़ाव वाले बाजारों में आसानी से बंद हो जाता है। जब बाजार में बड़े पैमाने पर उतार-चढ़ाव होता है, तो औसत रेखा संबंध अक्सर पार हो सकते हैं, जिससे अक्सर स्थिति खुलती है और बंद हो जाती है। इससे लेनदेन की लागत और नुकसान का जोखिम बढ़ जाता है।

  • पैरामीटर अनुकूलन पर बहुत अधिक निर्भरता, ओवरफिट के लिए आसान। यह रणनीति मुख्य रूप से पैरामीटर अनुकूलन के माध्यम से अल्फा प्राप्त करती है। इस तरह के एकल डेटासेट परिणामों पर निर्भरता से अति-अनुकूलन और ओवरफिट की समस्या हो सकती है।

जोखिम के लिए समाधान इस प्रकार हैं:

  • उचित रूप से औसत रेखीय मापदंडों को छोटा करें, प्रतिक्रिया की गति को तेज करें।

  • यह भी कहा गया है, “इसके अलावा, हम एक और कदम उठाने जा रहे हैं।

  • विभिन्न प्रजातियों और समय अवधि के लिए डेटा का परीक्षण करें और पैरामीटर की स्थिरता का आकलन करें।

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

इस रणनीति में अभी भी सुधार की गुंजाइश हैः

  • विभिन्न चक्र संयोजनों और औसत रेखा मापदंडों के साथ प्रयास करें और बेहतर मापदंडों की तलाश करें। बेहतर मापदंडों के संयोजनों की तलाश में, आप अतिशयोक्ति अनुकूलन और मशीन सीखने के तरीकों का उपयोग कर सकते हैं।

  • वॉल्यूम और बड़े पैमाने पर रुझान संकेतकों की पुष्टि को जोड़ना। यह झूठे संकेतों को और फ़िल्टर कर सकता है, जैसे कि वॉल्यूम की कमी के दौरान स्थिति नहीं खोलना।

  • गहरी शिक्षा मॉडल के साथ भविष्यवाणी वक्र की आकृति। आरएनएन जैसे गहरी शिक्षा मॉडल का उपयोग भविष्य की कीमतों की भविष्यवाणी करने के लिए, निर्णय लेने में सहायता के लिए किया जाता है।

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

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "ALGO 3-1-2", title="ALGO 3h, 1h, 2h", overlay=true)

bool startLONGBOTandDEAL = false
bool stopLONGBOTandDEAL = false
bool openLONG = false
bool closeLONG = false
bool startSHORTBOTandDEAL = false
bool stopSHORTBOTandDEAL = false
bool openSHORT = false
bool closeSHORT = false

MA1Period = ema(close, 10)
MA2Period = ema(close, 200)
MA3Period = ema(close, 200)

MA1 = security(syminfo.tickerid, "180", MA1Period)
MA2 = security(syminfo.tickerid, "60", MA2Period)
MA3 = security(syminfo.tickerid, "120", MA3Period)

MA12Crossover = crossover(MA1, MA2)
MA12Crossunder = crossunder(MA1, MA2)
MA23Crossover = crossover(MA2, MA3)
MA23Crossunder = crossunder(MA2, MA3)

if MA23Crossover
    startLONGBOTandDEAL := true //stop shortBOT and DEAL code in the TV alert as well, probably stop first w/ a delay on startlong
    lblBull = label.new(bar_index, na, ' BULL Time Open LONG', color=color.blue, textcolor=color.black, style=label.style_label_up, size=size.small)
    label.set_y(lblBull, MA2)  
    strategy.close("go Short")
    strategy.entry("go Long", strategy.long, comment="go Long")
if MA23Crossunder
    //not sure if i should set alert for stop and start each bot, or just put start appropriate bot and stop its opposite in the same alert.
    startSHORTBOTandDEAL := true
    lblBull = label.new(bar_index, na, ' BEAR Time - Open SHORT', color=color.orange, textcolor=color.black, style=label.style_label_down, size=size.small)
    label.set_y(lblBull, MA2)
    strategy.close("go Long")
    strategy.entry("go Short", strategy.short, comment="go Short")
if MA12Crossover
    if MA2 >= MA3
        openLONG := true
        lup1 = label.new(bar_index, na, ' OPEN LONG ', color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small, yloc=yloc.belowbar)
        strategy.entry("go Long", strategy.long, comment="go Long")
    if MA2 <= MA3
        closeSHORT := true
        lup1 = label.new(bar_index, na, ' CLOSE SHORT ', color=color.gray, textcolor=color.black, style=label.style_label_up, size=size.small, yloc=yloc.belowbar)
        strategy.close("go Short")
    
if MA12Crossunder
    if MA2 >= MA3
        closeLONG := true
        lun1 = label.new(bar_index, na, ' CLOSE LONG ', color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small, yloc=yloc.abovebar)
        strategy.close("go Long")
    if MA2 <= MA3
        openSHORT := true
        lun1 = label.new(bar_index, na, ' OPEN SHORT ', color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small, yloc=yloc.abovebar)
        strategy.entry("go Short", strategy.short, comment="go Short")


plot(MA1, color=color.green, linewidth=2, title="MA1")
plot(MA2, color=color.yellow, linewidth=3, title="MA2")
plot(MA3, color=color.red, linewidth=4, title="MA3")


alertcondition(startLONGBOTandDEAL, title="Start LONG BOT and DEAL", message="Start Long Bot and Deal")
alertcondition(stopLONGBOTandDEAL, title="Stop LONG BOT and DEAL", message="Stop Long Bot and Deal")
alertcondition(openLONG, title="Open LONG DEAL", message="Open Long Deal")
alertcondition(closeLONG, title="Close LONG DEAL", message="Close Long Deal")
alertcondition(stopSHORTBOTandDEAL, title="Stop SHORT BOT and DEAL", message="Stop Short Bot and Deal")
alertcondition(openSHORT, title="Open SHORT DEAL", message="Open Short Deal")
alertcondition(closeSHORT, title="Close SHORT DEAL", message="Close Short Deal")