
یہ حکمت عملی ایک مقداری تجارتی نظام ہے جس کی بنیاد موونگ ایوریج، RSI انڈیکیٹر اور ٹریلنگ اسٹاپ نقصان پر ہے۔ یہ تکنیکی تجزیہ میں ٹرینڈ ٹریکنگ اور مومینٹم انڈیکیٹرز کو یکجا کرتا ہے تاکہ سخت داخلے اور اخراج کی شرائط طے کر کے خطرے پر قابو پانے والے لین دین کو حاصل کیا جا سکے۔ حکمت عملی کی بنیادی منطق یہ ہے کہ مارکیٹ میں اضافے کے رجحان میں داخل ہونے کے لیے اوور سیلڈ مواقع تلاش کریں اور منافع کے تحفظ کے لیے ٹریلنگ اسٹاپ لاسز کا استعمال کریں۔
یہ حکمت عملی 200 دن کی سادہ موونگ ایوریج (SMA) کو ٹرینڈ ججمنٹ کے لیے بنیادی لائن کے طور پر استعمال کرتی ہے اور تجارتی سگنلز پیدا کرنے کے لیے اسے رشتہ دار طاقت انڈیکس (RSI) کے ساتھ جوڑتی ہے۔ خاص طور پر:
یہ ایک مکمل ساخت اور واضح منطق کے ساتھ ایک مقداری تجارتی حکمت عملی ہے۔ یہ خطرات کو کنٹرول کرتے ہوئے مستحکم منافع حاصل کرنے کے لیے متعدد تکنیکی اشاریوں کو یکجا کرتا ہے۔ اگرچہ اصلاح کی گنجائش موجود ہے، لیکن بنیادی فریم ورک میں اچھی عملییت اور اسکیل ایبلٹی ہے۔ یہ حکمت عملی درمیانی اور طویل مدتی سرمایہ کاروں کے لیے موزوں ہے اور مارکیٹ کے مختلف ماحول کے لیے اچھی موافقت رکھتی ہے۔
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("200 SMA Crossover Strategy", overlay=false)
// Define inputs
smaLength = input.int(200, title="SMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiThreshold = input.float(40, title="RSI Threshold")
trailStopPercent = input.float(5.0, title="Trailing Stop Loss (%)")
waitingPeriod = input.int(10, title="Waiting Period (Days)")
// Calculate 200 SMA
sma200 = ta.sma(close, smaLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Plot the 200 SMA and RSI
plot(sma200, color=color.blue, linewidth=2, title="200 SMA")
plot(rsi, color=color.purple, title="RSI", display=display.none)
// Define buy and sell conditions
var isLong = false
var float lastExitTime = na
var float trailStopPrice = na
// Explicitly declare timeSinceExit as float
float timeSinceExit = na(lastExitTime) ? na : (time - lastExitTime) / (24 * 60 * 60 * 1000)
canEnter = na(lastExitTime) or timeSinceExit > waitingPeriod
buyCondition = close > sma200 and rsi < rsiThreshold and canEnter
if (buyCondition and not isLong)
strategy.entry("Buy", strategy.long)
trailStopPrice := na
isLong := true
// Update trailing stop loss if long
if (isLong)
trailStopPrice := na(trailStopPrice) ? close * (1 - trailStopPercent / 100) : math.max(trailStopPrice, close * (1 - trailStopPercent / 100))
// Check for trailing stop loss or sell condition
if (isLong and (close < trailStopPrice or close < sma200))
strategy.close("Buy")
lastExitTime := time
isLong := false
// Plot buy and sell signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=(isLong and close < trailStopPrice) or close < sma200, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")