होली ग्रैल रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो एडीएक्स संकेतक के साथ एक दोहरी चलती औसत प्रणाली को जोड़ती है। इसका उद्देश्य प्रवृत्ति की दिशा और ताकत की पहचान करना और प्रवृत्ति उलटों पर व्यापार करना है।
यह रणनीति प्रवेश के अवसरों की पहचान करने के लिए 20-दिवसीय घातीय चलती औसत (ईएमए) और एडीएक्स संकेतक दोनों का उपयोग करती है। विशेष रूप से, यह निम्नलिखित दो मामलों में व्यापार संकेत जारी करेगीः
जब एडीएक्स मूल्य 30 से नीचे हो (जो एक कमजोर प्रवृत्ति का संकेत देता है), और कीमत नीचे से 20 दिन के ईएमए को तोड़ती है, तो लंबी अवधि में जाएं;
जब एडीएक्स मूल्य 30 से ऊपर हो (जो एक मजबूत प्रवृत्ति का संकेत देता है), और कीमत ऊपर से 20 दिन के ईएमए को तोड़ती है, तो शॉर्ट करें।
यह देखा जा सकता है कि यह रणनीति प्रवृत्ति की ताकत और दिशा का न्याय करने के लिए ADX पर निर्भर करती है, और फिर उलट अवसरों की तलाश करने के लिए चलती औसत के समर्थन और प्रतिरोध को जोड़ती है। यह प्रवृत्ति के बाद और औसत प्रतिगमन की अवधारणाओं को एकीकृत करती है।
होली ग्रैल रणनीति का सबसे बड़ा लाभ यह है कि यह प्रवृत्ति की दिशा और शक्ति दोनों को ध्यान में रखती है, जो प्रभावी रूप से झूठे ब्रेकआउट से बच सकती है और स्टॉप लॉस की संभावना को कम कर सकती है। विशेष रूप से इस रणनीति के निम्नलिखित फायदे हैंः
पवित्र ग्रैल रणनीति में कुछ जोखिम भी हैं, मुख्य रूप से निम्नलिखित क्षेत्रों मेंः
उपरोक्त जोखिमों को कम करने के लिए, सर्वोत्तम प्रभाव प्राप्त करने के लिए मापदंडों को समायोजित किया जा सकता है। एकल नुकसान को नियंत्रित करने के लिए स्टॉप लॉस भी सेट किया जा सकता है। इसके अलावा, विभिन्न किस्मों और चक्रों पर रणनीतियों का परीक्षण करना भी आवश्यक है।
अभी भी पवित्र ग्रैल रणनीति के लिए कई अनुकूलन दिशाएं हैंः
मापदंडों को समायोजित करना या नए संकेतक जोड़ना रणनीति की लाभप्रदता या जीत दर को बढ़ा सकता है। लेकिन किसी भी अनुकूलन को इसकी मजबूती सुनिश्चित करने के लिए पर्याप्त बैकटेस्टिंग की आवश्यकता होती है।
संक्षेप में, पवित्र ग्रैल रणनीति डबल मूविंग एवरेज और एडीएक्स संकेतक के लाभों को जोड़ती है, और प्रवृत्ति उलट को पकड़ने के लिए स्पष्ट व्यापार नियमों का उपयोग करती है। इसमें अच्छा प्रदर्शन करने की क्षमता है। हालांकि, व्यापारियों को अभी भी विभिन्न बाजार वातावरणों के अनुकूल होने के लिए पैरामीटर संयोजन और स्टॉप लॉस नियमों को अनुकूलित करने की आवश्यकता है। इसके अलावा, चाहे कितना भी बेहतर हो, स्टॉप लॉस से पूरी तरह से बचना असंभव है, जो हर ट्रेडिंग रणनीति का सामना करने वाली दुविधा है।
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("LAT Holy Grail v3", overlay=true) /////////////TEST TIME //////////////////////// testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(4, "Backtest Start Month") testStartDay = input(15, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2018, "Backtest Stop Year") testStopMonth = input(5, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false ////////////////////////////////////////////////////////////////////// myema= ema(close, 20) plot(myema, color=green, title="eMA", linewidth=3) //longCondition = (crossover(close, myema)) //and adx3 < target //if (longCondition) //strategy.entry("My Long Entry Id", strategy.long) //shortCondition = (crossunder(close, myema)) //and adx3 > target //if (shortCondition) //strategy.entry("My Short Entry Id", strategy.short) ////////////////////////////////////////////////////////// /////////////////////////////////////// DMI /////////////////////////////////////////////// len3 = input(14, minval=1, title="DI Length") ///////////////////// lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50) //////////////////// up3 = change(high) /////////////////// down3 = -change(low) ////////////////// plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0) ///////////////// minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0) //////////////// trur3 = rma(tr, len3) /////////////// plus3 = fixnan(100 * rma(plusDM3, len3) / trur3) ////////////// minus3 = fixnan(100 * rma(minusDM3, len3) / trur3) ///////////// sum3 = plus3 + minus3 //////////// adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3) /////////// //plot(plus3, color=green, style=circles, linewidth=2, title="+DI") ////////// //plot(minus3, color=red, style=circles, linewidth=2, title="-DI") ///////// plot(adx3, color=aqua, style=line, linewidth=3, title="ADX") //////// target = input(30, title=" ADX Target Line") /////// plot(target, color=yellow, title="ADX Target Line") ////// ///////////////////////////////////////////////////////////////////////////////////////////////// plot(hl2) /////////////////////////////////////////////// eMA SIGNAL LINE /////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// HOLY GRAIL STRATEGY /////////////////////////////////////////////////////////////////// if (adx3 <= target) and crossover(close, myema) strategy.entry("HolyGrail", strategy.long, comment="Long") if (adx3 >= target) and crossunder(close, myema) strategy.entry("HolyGrail", strategy.short, comment="Short")