यह रणनीति 5-दिवसीय घातीय चलती औसत (ईएमए) पर आधारित एक प्रवृत्ति-अनुसरण ट्रेडिंग प्रणाली है, जो बाजार के रुझानों को पकड़ने के लिए मूल्य और ईएमए के बीच संबंध का विश्लेषण करती है। रणनीति में स्टॉप-लॉस और लाभ लक्ष्यों का गतिशील समायोजन शामिल है, प्रतिशत-आधारित स्थिति प्रबंधन का उपयोग करता है, और लेनदेन लागतों पर विचार करता है, जिससे यह अत्यधिक व्यावहारिक और लचीला हो जाता है।
मूल तर्क प्रवेश बिंदुओं को निर्धारित करने के लिए मूल्य और 5-दिवसीय ईएमए के बीच बातचीत पर आधारित है। विशेष रूप से, एक लंबा संकेत तब उत्पन्न होता है जब पिछली अवधि के उच्च ईएमए से नीचे होता है और वर्तमान अवधि में एक सफलता दिखाई देती है। रणनीति में एक वैकल्पिक अतिरिक्त शर्त भी शामिल होती है जिसमें संकेत विश्वसनीयता बढ़ाने के लिए समापन मूल्य को पिछली अवधि से अधिक होना आवश्यक होता है। जोखिम नियंत्रण के लिए, रणनीति दो प्रकार के स्टॉप-लॉस विधियों की पेशकश करती हैः पिछले निचले स्तरों के आधार पर गतिशील स्टॉप-लॉस और निश्चित-बिंदु स्टॉप-लॉस। लाभ लक्ष्य व्यापार लाभ क्षमता सुनिश्चित करने के लिए जोखिम-इनाम अनुपात के आधार पर गतिशील रूप से निर्धारित किए जाते हैं।
यह स्पष्ट तर्क के साथ एक अच्छी तरह से डिज़ाइन की गई प्रवृत्ति-अनुसरण रणनीति है, जो ईएमए संकेतक और मूल्य कार्रवाई के संयोजन के माध्यम से बाजार के रुझानों को प्रभावी ढंग से कैप्चर करती है। रणनीति में जोखिम नियंत्रण और लाभ प्रबंधन के लिए व्यापक तंत्र हैं जबकि कई अनुकूलन दिशाएं प्रदान करती हैं, जो मजबूत व्यावहारिक मूल्य और सुधार के लिए जगह का प्रदर्शन करती हैं। भविष्य के सुधार रणनीति की स्थिरता और लाभप्रदता में और सुधार के लिए बहु-टाइमफ्रेम विश्लेषण जोड़ने और स्टॉप-लॉस तंत्र को समायोजित करने पर ध्यान केंद्रित कर सकते हैं।
/*backtest start: 2024-12-29 00:00:00 end: 2025-01-05 00:00:00 period: 30m basePeriod: 30m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Demo GPT - PowerOfStocks 5EMA", overlay=true) // Inputs enableSL = input.bool(false, title="Enable Extra SL") usl = input.int(defval=5, title="SL Distance in Points", minval=1, maxval=100) riskRewardRatio = input.int(defval=3, title="Risk to Reward Ratio", minval=3, maxval=25) showSell = input.bool(true, title="Show Sell Signals") showBuy = input.bool(true, title="Show Buy Signals") buySellExtraCond = input.bool(false, title="Buy/Sell with Extra Condition") startDate = input(timestamp("2018-01-01 00:00"), title="Start Date") endDate = input(timestamp("2069-12-31 23:59"), title="End Date") // EMA Calculation ema5 = ta.ema(close, 5) // Plot EMA plot(ema5, "EMA 5", color=color.new(#882626, 0), linewidth=2) // Variables for Buy var bool longTriggered = na var float longStopLoss = na var float longTarget = na // Variables for Sell (used for signal visualization but no actual short trades) var bool shortTriggered = na var float shortStopLoss = na var float shortTarget = na // Long Entry Logic if true if (showBuy) longCondition = high[1] < ema5[1] and high[1] < high and (not buySellExtraCond or close > close[1]) if (longCondition and not longTriggered) entryPrice = high[1] stopLoss = enableSL ? low[1] - usl * syminfo.mintick : low[1] target = enableSL ? entryPrice + (entryPrice - stopLoss) * riskRewardRatio : high[1] + (high[1] - low[1]) * riskRewardRatio // Execute Buy Order strategy.entry("Buy", strategy.long, stop=entryPrice) longTriggered := true longStopLoss := stopLoss longTarget := target label.new(bar_index, entryPrice, text="Buy@ " + str.tostring(entryPrice), style=label.style_label_up, color=color.green, textcolor=color.white) // Short Signal Logic (Visual Only) if (true) if (showSell) shortCondition = low[1] > ema5[1] and low[1] > low and (not buySellExtraCond or close < close[1]) if (shortCondition and not shortTriggered) entryPrice = low[1] stopLoss = enableSL ? high[1] + usl * syminfo.mintick : high[1] target = enableSL ? entryPrice - (stopLoss - entryPrice) * riskRewardRatio : low[1] - (high[1] - low[1]) * riskRewardRatio // Visual Signals Only label.new(bar_index, entryPrice, text="Sell@ " + str.tostring(entryPrice), style=label.style_label_down, color=color.red, textcolor=color.white) shortTriggered := true shortStopLoss := stopLoss shortTarget := target // Exit Logic for Buy if longTriggered // Stop-loss Hit if low <= longStopLoss strategy.close("Buy", comment="SL Hit") longTriggered := false // Target Hit if high >= longTarget strategy.close("Buy", comment="Target Hit") longTriggered := false // Exit Logic for Short (Signals Only) if shortTriggered // Stop-loss Hit if high >= shortStopLoss shortTriggered := false // Target Hit if low <= shortTarget shortTriggered := false