
यह रणनीति 5-दिवसीय एक्सपोनेंशियल मूविंग एवरेज (EMA) पर आधारित एक ट्रेंड ट्रैकिंग ट्रेडिंग सिस्टम है। यह कीमत और EMA के बीच स्थितीय संबंध का विश्लेषण करता है और बाजार की प्रवृत्ति को समझने के लिए स्टॉप लॉस और लाभ लक्ष्यों के गतिशील समायोजन को जोड़ता है। यह रणनीति प्रतिशत स्थिति प्रबंधन पद्धति को अपनाती है और लेनदेन लागत कारकों को ध्यान में रखती है, जिससे यह अत्यधिक व्यावहारिक और लचीली बन जाती है।
इस रणनीति का मुख्य तर्क मूल्य और 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