यह रणनीति मूल्य प्रवृत्तियों में परिवर्तन को पकड़ने के लिए दो घातीय चलती औसत (ईएमए) का उपयोग करती है। जब अल्पकालिक ईएमए नीचे से दीर्घकालिक ईएमए से ऊपर की ओर जाता है, तो एक खरीद संकेत उत्पन्न होता है; जब अल्पकालिक ईएमए ऊपर से दीर्घकालिक ईएमए से नीचे की ओर जाता है, तो एक बिक्री संकेत उत्पन्न होता है। रणनीति एकल-दिवसीय नुकसान और लाभ को नियंत्रित करने के लिए दैनिक स्टॉप-लॉस और ले-प्रॉफिट सीमाएं भी निर्धारित करती है।
ईएमए ड्यूल मूविंग एवरेज क्रॉसओवर रणनीति ट्रेंडिंग बाजारों के लिए उपयुक्त एक सरल, समझने में आसान ट्रेडिंग रणनीति है। तेज और धीमी गति से चलती औसत के क्रॉसओवर का उपयोग करके, यह अपेक्षाकृत अच्छी तरह से मूल्य रुझानों में परिवर्तन को पकड़ सकता है। साथ ही, दैनिक स्टॉप-लॉस और टेक-प्रॉफिट सेटिंग्स जोखिमों को प्रभावी ढंग से नियंत्रित कर सकती हैं। हालांकि, रणनीति चंचल बाजारों में या ट्रेंड रिवर्स के दौरान खराब प्रदर्शन कर सकती है और अन्य तकनीकी संकेतकों और विश्लेषण विधियों को जोड़कर अनुकूलित और सुधार की आवश्यकता है।
/*backtest start: 2023-06-01 00:00:00 end: 2024-06-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © DD173838 //@version=5 strategy("Moving Average Strategy with Daily Limits", overlay=true) // Moving Average settings shortMaLength = input.int(9, title="Short MA Length") longMaLength = input.int(21, title="Long MA Length") // Calculate MAs shortMa = ta.ema(close, shortMaLength) longMa = ta.ema(close, longMaLength) // Plot MAs plot(shortMa, title="9 EMA", color=color.blue) plot(longMa, title="21 EMA", color=color.red) // Strategy conditions crossUp = ta.crossover(shortMa, longMa) crossDown = ta.crossunder(shortMa, longMa) // Debug plots to check cross conditions plotshape(series=crossUp, title="Cross Up", location=location.belowbar, color=color.green, style=shape.labelup, text="UP") plotshape(series=crossDown, title="Cross Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="DOWN") // Entry at cross signals if (crossUp) strategy.entry("Long", strategy.long) if (crossDown) strategy.entry("Short", strategy.short) // Daily drawdown and profit limits var float startOfDayEquity = na if (na(startOfDayEquity) or ta.change(time('D')) != 0) startOfDayEquity := strategy.equity maxDailyLoss = 50000 * 0.0025 maxDailyProfit = 50000 * 0.02 currentDailyPL = strategy.equity - startOfDayEquity if (currentDailyPL <= -maxDailyLoss) strategy.close_all(comment="Max Daily Loss Reached") if (currentDailyPL >= maxDailyProfit) strategy.close_all(comment="Max Daily Profit Reached")