इस रणनीति का मूल व्यापार संकेतों के रूप में घातीय चलती औसत क्रॉसओवर का उपयोग कर रहा है, जो मुनाफे में लॉक करने और जोखिमों को नियंत्रित करने के लिए ट्रैलिंग स्टॉप लॉस और प्रतिशत स्टॉप लॉस के साथ संयुक्त है। रणनीति को लागू करना सरल है और मात्रात्मक व्यापार के लिए स्टॉक और अन्य वित्तीय उत्पादों पर लागू होता है।
तेजी से ईएमए और धीमी ईएमए की गणना करें, जिसमें तेजी से ईएमए अवधि 20 दिन और धीमी ईएमए अवधि 50 दिन है। जब तेजी से ईएमए धीमी ईएमए से ऊपर जाता है तो खरीद संकेत उत्पन्न करें, और जब तेजी से ईएमए धीमी ईएमए से नीचे जाता है तो संकेत बेचें।
प्रवेश के बाद, होल्डिंग दिशा के आधार पर ट्रेलिंग स्टॉप लॉस सेट करें, उदाहरण के लिए लंबी स्थिति के लिए 7% और छोटी स्थिति के लिए 7%। ट्रेलिंग स्टॉप लॉस अधिकतम संभव लाभ में लॉक करने के लिए प्रत्येक बार को समायोजित करता है।
इसी समय, प्रवेश मूल्य और होल्डिंग दिशा के आधार पर स्टॉप लॉस मूल्य निर्धारित करें, उदाहरण के लिए, लंबे व्यापार के लिए प्रवेश मूल्य से 2% नीचे और लघु व्यापार के लिए प्रवेश मूल्य से 2% ऊपर। अत्यधिक हानि को रोकने के लिए स्टॉप लॉस मूल्य अपरिवर्तित रहता है।
स्टॉप लॉस मूल्य और स्टॉप लॉस मूल्य की तुलना करें, इस व्यापार के लिए अंतिम स्टॉप लॉस के रूप में बाजार मूल्य के करीब एक का उपयोग करें, स्टॉप लॉस ऑर्डर भेजें।
सरल और लागू करने में आसान चलती औसत व्यापार संकेत।
अनुवर्ती स्टॉप लॉस लाभों में यथासंभव अधिक मात्रा में लॉक करता है, जबकि झूठे संकेतों से अनावश्यक नुकसान से बचा जाता है।
व्यापार प्रति अधिकतम हानि को नियंत्रित करने के लिए प्रतिशत स्टॉप लॉस सहज और समायोजित करने में आसान है।
ट्रेलिंग स्टॉप्स और फिक्स्ड स्टॉप्स को मिलाकर दोनों लाभ में ताले लगाते हैं और जोखिमों को नियंत्रित करते हैं।
चलती औसत आसानी से झूठे संकेत उत्पन्न कर सकते हैं, वॉल्यूम जैसे अतिरिक्त फ़िल्टर जोड़ सकते हैं।
कभी-कभी बहुत जल्दी ट्रिगर हो जाता है, ट्रिगर प्रतिशत को थोड़ा आराम दें।
गलत फिक्स्ड स्टॉप लॉस सेटिंग बहुत आक्रामक या रूढ़िवादी हो सकती है, प्रतिशत पैरामीटर को परीक्षण और समायोजित करने की आवश्यकता है।
यांत्रिक स्टॉप लॉस एक्जिट्स बाजार रिवर्स के अवसरों को याद कर सकते हैं, स्टॉप ट्रिगर का न्याय करने के लिए तकनीकी संकेतकों को शामिल कर सकते हैं।
इष्टतम संतुलन खोजने के लिए विभिन्न ईएमए संयोजनों का प्रयास करें।
झूठे संकेतों को फ़िल्टर करने के लिए वॉल्यूम जैसे संकेतक जोड़ें।
उपयुक्त स्टॉप लॉस प्रतिशत खोजने के लिए अधिक शेयरों का परीक्षण करें।
बाजार की स्थितियों के अनुसार अनुकूलनशील स्टॉप का प्रयास करें।
स्टॉप लॉस समय निर्धारित करने के लिए आरएसआई जैसे संकेतकों को शामिल करें।
यह रणनीति मूविंग एवरेज ट्रेडिंग सिग्नल, ट्रेलिंग स्टॉप और प्रतिशत स्टॉप को एकीकृत करती है। पैरामीटर अनुकूलन के माध्यम से, यह विभिन्न स्टॉक और कमोडिटी में सख्त जोखिम नियंत्रण के साथ स्थिर लाभ प्राप्त कर सकती है, जो क्वांट ट्रेडर्स के लिए शोध और निरंतर सुधार के लायक है।
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © wouterpruym1828 //@version=5 strategy(title=" Combining Trailing Stop and Stop loss (% of instrument price)", overlay=true, pyramiding=1, shorttitle="TSL&SL%") //INDICATOR SECTION // Indicator Input options+ i_FastEMA = input.int(title = "Fast EMA period", minval = 0, defval = 20) i_SlowEMA = input.int(title = "Slow EMA period", minval = 0, defval = 50) // Calculate moving averages fastEMA = ta.ema(close, i_FastEMA) slowEMA = ta.ema(close, i_SlowEMA) // Plot moving averages plot(fastEMA, title="Fast SMA", color=color.blue) plot(slowEMA, title="Slow SMA", color=color.orange) //STRATEGY SECTION // Calculate trading conditions buy = ta.crossover(fastEMA, slowEMA) sell = ta.crossunder(fastEMA, slowEMA) // STEP 1: // Configure trail stop loss level with input options (optional) longTrailPerc = input.float(title="Long Trailing Stop (%)", minval=0.0, step=0.1, defval=7) * 0.01 shortTrailPerc = input.float(title="Short Trailing Stop (%)", minval=0.0, step=0.1, defval=7) * 0.01 //Configure stop loss level with input options (optional) longStopPerc = input.float(title="Long Stop Loss (%)", minval=0.0, step=0.1, defval=2)*0.01 shortStopPerc = input.float(title="Short Stop Loss (%)", minval=0.0, step=0.1, defval=2)*0.01 // STEP 2: // Determine trail stop loss prices longTrailPrice = 0.0, shortTrailPrice = 0.0 longTrailPrice := if (strategy.position_size > 0) stopValue = high * (1 - longTrailPerc) math.max(stopValue, longTrailPrice[1]) else 0 shortTrailPrice := if (strategy.position_size < 0) stopValue = low * (1 + shortTrailPerc) math.min(stopValue, shortTrailPrice[1]) else 999999 // Determine stop loss prices entryPrice = 0.0 entryPrice := strategy.opentrades.entry_price(strategy.opentrades - 1) longLossPrice = entryPrice * (1 - longStopPerc) shortLossPrice = entryPrice * (1 + shortStopPerc) // Plot stop loss values for confirmation plot(series=(strategy.position_size > 0) ? longTrailPrice : na, color=color.fuchsia, style=plot.style_cross, linewidth=2, title="Long Trail Stop") plot(series=(strategy.position_size < 0) ? shortTrailPrice : na, color=color.fuchsia, style=plot.style_cross, linewidth=2, title="Short Trail Stop") plot(series=(strategy.position_size > 0) ? longLossPrice : na, color=color.olive, style=plot.style_cross, linewidth=2, title="Long Stop Loss") plot(series=(strategy.position_size < 0) ? shortLossPrice : na, color=color.olive, style=plot.style_cross, linewidth=2, title="Short Stop Loss") // Submit entry orders if (buy) strategy.entry("Buy", strategy.long) if (sell) strategy.entry("Sell", strategy.short) //Evaluating trailing stop or stop loss to use longStopPrice = longTrailPrice < longLossPrice ? longLossPrice : longTrailPrice shortStopPrice = shortTrailPrice > shortLossPrice ? shortLossPrice : shortTrailPrice // STEP 3: // Submit exit orders for stop price if (strategy.position_size > 0) strategy.exit(id="Buy Stop", stop=longStopPrice) if (strategy.position_size < 0) strategy.exit(id="Sell Stop", stop=shortStopPrice)