
حکمت عملی ایک سے زیادہ ہموار موونگ ایوریجز پر مبنی ایک رجحان کی پیروی کرنے والا نظام ہے، جو RSI مومینٹم انڈیکیٹر، ATR اتار چڑھاؤ کے اشارے، اور ٹریڈنگ سگنلز کی تصدیق کے لیے 200 مدت کے EMA ٹرینڈ فلٹر کو ملا کر مارکیٹ کے شور کو فلٹر کرنے کے لیے ٹرپل اسموتھنگ کا استعمال کرتا ہے۔ حکمت عملی 1 گھنٹے کی مدت کا استعمال کرتی ہے، جو ایک ایسا ٹائم فریم ہے جو ادارہ جاتی تجارتی رویے سے مطابقت رکھتے ہوئے ٹریڈنگ کی فریکوئنسی اور رجحان کی وشوسنییتا کو مؤثر طریقے سے متوازن کرتا ہے۔
حکمت عملی کا بنیادی مقصد قیمت کو تین بار ہموار کرکے مین ٹرینڈ لائن کی تعمیر کرنا ہے اور تجارتی سگنل پیدا کرنے کے لیے اسے عبور کرنے کے لیے مختصر مدت کی سگنل لائن کا استعمال کرنا ہے۔ تجارتی سگنل صرف اس صورت میں نافذ کیے جائیں گے جب درج ذیل شرائط کو ایک ہی وقت میں پورا کیا جائے:
یہ ایک مکمل ساخت اور سخت منطق کے ساتھ رجحان کی پیروی کرنے والی حکمت عملی ہے۔ متعدد ہموار کرنے کے عمل اور متعدد تصدیقی میکانزم کے ذریعے، تجارتی سگنلز کی وشوسنییتا مؤثر طریقے سے بہتر ہوتی ہے۔ متحرک رسک مینجمنٹ میکانزم اسے انتہائی قابل موافق بناتا ہے۔ اگرچہ ایک خاص وقفہ ہے، لیکن پیرامیٹر کی اصلاح اور معاون اشاریوں کو شامل کرنے کے ذریعے حکمت عملی میں بہتری کی کافی گنجائش باقی ہے۔
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=6
strategy("Optimized Triple Smoothed MA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// === Input Settings ===
slength = input.int(7, "Main Smoothing Length", group="Moving Average Settings")
siglen = input.int(12, "Signal Length", group="Moving Average Settings")
src = input.source(close, "Data Source", group="Moving Average Settings")
mat = input.string("EMA", "Triple Smoothed MA Type", ["EMA", "SMA", "RMA", "WMA"], group="Moving Average Settings")
mat1 = input.string("EMA", "Signal Type", ["EMA", "SMA", "RMA", "WMA"], group="Moving Average Settings")
// === Trend Confirmation (Higher Timeframe Filter) ===
useTrendFilter = input.bool(true, "Enable Trend Filter (200 EMA)", group="Trend Confirmation")
trendMA = ta.ema(close, 200)
// === Momentum Filter (RSI Confirmation) ===
useRSIFilter = input.bool(true, "Enable RSI Confirmation", group="Momentum Confirmation")
rsi = ta.rsi(close, 14)
rsiThreshold = input.int(50, "RSI Threshold", group="Momentum Confirmation")
// === Volatility Filter (ATR) ===
useATRFilter = input.bool(true, "Enable ATR Filter", group="Volatility Filtering")
atr = ta.atr(14)
atrMa = ta.sma(atr, 14)
// === Risk Management (ATR-Based Stop Loss) ===
useAdaptiveSL = input.bool(true, "Use ATR-Based Stop Loss", group="Risk Management")
atrMultiplier = input.float(1.5, "ATR Multiplier for SL", minval=0.5, maxval=5, group="Risk Management")
takeProfitMultiplier = input.float(2, "Take Profit Multiplier", group="Risk Management")
// === Moving Average Function ===
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"RMA" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
// === Triple Smoothed Calculation ===
tripleSmoothedMA = ma(ma(ma(src, slength, mat), slength, mat), slength, mat)
signalLine = ma(tripleSmoothedMA, siglen, mat1)
// === Crossovers (Entry Signals) ===
bullishCrossover = ta.crossunder(signalLine, tripleSmoothedMA)
bearishCrossover = ta.crossover(signalLine, tripleSmoothedMA)
// === Additional Confirmation Conditions ===
trendLongCondition = not useTrendFilter or (close > trendMA) // Only long if price is above 200 EMA
trendShortCondition = not useTrendFilter or (close < trendMA) // Only short if price is below 200 EMA
rsiLongCondition = not useRSIFilter or (rsi > rsiThreshold) // RSI above 50 for longs
rsiShortCondition = not useRSIFilter or (rsi < rsiThreshold) // RSI below 50 for shorts
atrCondition = not useATRFilter or (atr > atrMa) // ATR must be above its MA for volatility confirmation
// === Final Trade Entry Conditions ===
longCondition = bullishCrossover and trendLongCondition and rsiLongCondition and atrCondition
shortCondition = bearishCrossover and trendShortCondition and rsiShortCondition and atrCondition
// === ATR-Based Stop Loss & Take Profit ===
longSL = close - (atr * atrMultiplier)
longTP = close + (atr * takeProfitMultiplier)
shortSL = close + (atr * atrMultiplier)
shortTP = close - (atr * takeProfitMultiplier)
// === Strategy Execution ===
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", stop=longSL, limit=longTP)
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", stop=shortSL, limit=shortTP)
// === Plots ===
plot(tripleSmoothedMA, title="Triple Smoothed MA", color=color.blue)
plot(signalLine, title="Signal Line", color=color.red)
plot(trendMA, title="200 EMA", color=color.gray)
// === Alerts ===
alertcondition(longCondition, title="Bullish Signal", message="Triple Smoothed MA Bullish Crossover Confirmed")
alertcondition(shortCondition, title="Bearish Signal", message="Triple Smoothed MA Bearish Crossover Confirmed")