यह रणनीति ईहर्स द्वारा प्रस्तावित साइबर चक्र सिद्धांत के आधार पर चिकनी मूल्य संकेत की गणना करती है। यह प्रभावी रूप से बाजार शोर को फ़िल्टर कर सकती है और अधिक विश्वसनीय ट्रेडिंग संकेत उत्पन्न कर सकती है।
मूल मूल्य संकेत src को दूसरे क्रम के चिकनाई के साथ चिकनी करें ताकि चिकनी सिग्नल मिल सके।
समतल संकेत के आधार पर चक्रात्मक संकेतक चक्र की गणना की जाती है। गणना विधि हैः चक्र:= (1 -.5अल्फा) (1 - .5 अल्फा)(चमकदार - 2)चिकनी[1] + चिकनी[2]) + 2(1 - अल्फा)चक्र[1] - (1 - अल्फा)(1-अल्फा) * चक्र[2]
जहां α चिकनाई पैरामीटर है।
अंतिम ट्रेडिंग सिग्नल सिग्नल प्राप्त करने के लिए पहले क्रम के चिकनाई के साथ चक्रात्मक संकेतक को तेजी से चिकना करें। गणना विधि हैः संकेत:= अल्फा2चक्र + (1 - अल्फा2)nz ((सिग्नल[1])
जहां α2 प्रथम क्रम की चिकनाई पैरामीटर है।
सिग्नल के ऊपर से गुजरते समय लंबा[1]; सिग्नल के नीचे से गुजरते समय छोटा[1]।
मूल्य संकेत की दूसरी श्रेणी की चिकनाई उच्च आवृत्ति शोर को प्रभावी ढंग से फ़िल्टर कर सकती है और व्यापार संकेतों को अधिक विश्वसनीय बना सकती है।
एहलर्स के साइबर चक्र सिद्धांत को लागू करने से बाजार के रुझानों के मोड़ को अधिक सटीक रूप से निर्धारित किया जा सकता है।
प्रथम-क्रम के घातीय समतल करने से अधिक विश्वसनीय ट्रेडिंग संकेतों का उत्पादन करने के लिए चक्रीय संकेतक में कुछ शोर को फ़िल्टर किया जाता है।
रणनीति की पूरी प्रक्रिया उचित और वैज्ञानिक है, जिसमें बड़े पैरामीटर अनुकूलन स्थान और उत्कृष्ट वास्तविक प्रदर्शन है।
अन्य तकनीकी सूचक रणनीतियों की तरह, यह रणनीति भी प्रणालीगत बाजार जोखिम के प्रति अपेक्षाकृत संवेदनशील है। यह ब्लैक स्वान घटनाओं की स्थिति में बड़े नुकसान का कारण बन सकती है।
जटिल गणना प्रक्रिया के कारण, गलत पैरामीटर सेटिंग्स से गणना में देरी हो सकती है, जिससे वास्तविक प्रदर्शन प्रभावित होता है। वैज्ञानिक और उचित सेटिंग्स सुनिश्चित करने के लिए मापदंडों का सावधानीपूर्वक परीक्षण करने की आवश्यकता है।
सुचारू प्रसंस्करण से व्यापारिक संकेतों में भी विलंब होता है, जो समय पर बाजार के महत्वपूर्ण बिंदुओं को पकड़ने में विफल हो सकते हैं और इस प्रकार अवसरों को खो देते हैं। सुचारू मापदंडों की स्थापना में संतुलन की आवश्यकता होती है।
विभिन्न प्रकार के चिकनाई एल्गोरिदम का परीक्षण किया जा सकता है, जैसे प्रथम क्रम के घातीय चिकनाई, चलती औसत चिकनाई, आदि, इष्टतम चिकनाई योजना खोजने के लिए।
रणनीति की मजबूती में सुधार के लिए बाजार की स्थितियों के आधार पर पैरामीटर को गतिशील रूप से समायोजित करने के लिए एक अनुकूलनशील पैरामीटर ट्यूनिंग तंत्र पेश किया जा सकता है।
स्टॉप लॉस और टेक प्रॉफिट रणनीतियों को एकल हानि के जोखिम को कम करने और एक ही समय में मुनाफे में लॉक करने के लिए डिज़ाइन किया जा सकता है।
इसे अन्य मशीन लर्निंग मॉडल के साथ मिलाकर मॉडल पोर्टफोलियो प्राप्त किया जा सकता है और अन्य मॉडल का उपयोग ट्रेडिंग संकेतों को फ़िल्टर करने के लिए किया जा सकता है।
यह रणनीति एक ट्रेडिंग सिग्नल को डिजाइन करती है जो मूल्य सिग्नल चिकनाई और एहलर्स साइबर चक्र संकेतक गणना के माध्यम से एहलर्स साइबर चक्र ट्रेडिंग रणनीति को चिकनी करती है। यह प्रभावी रूप से शोर को फ़िल्टर कर सकती है और अधिक विश्वसनीय ट्रेडिंग संकेत उत्पन्न कर सकती है। साथ ही, पैरामीटर स्पेस बड़ा है और वास्तविक प्रदर्शन अच्छा है। अनुकूलन तंत्र, स्टॉप लॉस रणनीतियों और अन्य अनुकूलन को पेश करके, रणनीति की स्थिरता और प्रभावशीलता को और बढ़ाया जा सकता है।
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Ehlers Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1) src = input(hl2, title = "Source") alpha = input(.07, title = "Alpha") lag = input(9, title = "Lag") smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6 cycle = na if na(cycle[7]) cycle := (src - 2 * src[1] + src[2]) / 4 else cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2] alpha2 = 1 / (lag + 1) signal = na signal := alpha2 * cycle + (1 - alpha2) * nz(signal[1]) oppositeTrade = input(true) barsSinceEntry = 0 barsSinceEntry := nz(barsSinceEntry[1]) + 1 if strategy.position_size == 0 barsSinceEntry := 0 if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1])) strategy.entry("Long", strategy.long) barsSinceEntry := 0 if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1])) strategy.entry("Short", strategy.short) barsSinceEntry := 0 if strategy.openprofit < 0 and barsSinceEntry > 8 strategy.close_all() barsSinceEntry := 0 plot(0, title="ZeroLine", color=gray) plotSrc = signal cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue) triggerPlot = plot(plotSrc[1], title = "Trigger", color = green) fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)